diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md
index d9acfde71ca..8340cbb90ef 100644
--- a/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md
+++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.300.md
@@ -6,6 +6,7 @@
* Parser recovers on complex primary constructor patterns, better tree representation for primary constructor patterns. ([PR #16425](https://github.com/dotnet/fsharp/pull/16425))
* Name resolution: keep type vars in subsequent checks ([PR #16456](https://github.com/dotnet/fsharp/pull/16456))
+* Diagnostics: extended data for NoConstructorsAvailableForType ([PR #16543](https://github.com/dotnet/fsharp/pull/16543))
### Changed
diff --git a/src/Compiler/Checking/NameResolution.fs b/src/Compiler/Checking/NameResolution.fs
index 21bfa7a2308..9a57c11c31a 100644
--- a/src/Compiler/Checking/NameResolution.fs
+++ b/src/Compiler/Checking/NameResolution.fs
@@ -2550,6 +2550,8 @@ let ResolveLongIdentAsModuleOrNamespaceThen sink atMostOne amap m fullyQualified
// Bind name used in "new Foo.Bar(...)" constructs
//-------------------------------------------------------------------------
+exception NoConstructorsAvailableForType of TType * DisplayEnv * range
+
let private ResolveObjectConstructorPrim (ncenv: NameResolver) edenv resInfo m ad ty =
let g = ncenv.g
let amap = ncenv.amap
@@ -2570,7 +2572,7 @@ let private ResolveObjectConstructorPrim (ncenv: NameResolver) edenv resInfo m a
[DefaultStructCtor(g, ty)]
else []
if (isNil defaultStructCtorInfo && isNil ctorInfos) || (not (isAppTy g ty) && not (isAnyTupleTy g ty)) then
- raze (Error(FSComp.SR.nrNoConstructorsAvailableForType(NicePrint.minimalStringOfType edenv ty), m))
+ raze (NoConstructorsAvailableForType(ty, edenv, m))
else
let ctorInfos = ctorInfos |> List.filter (IsMethInfoAccessible amap m ad)
let metadataTy = convertToTypeWithMetadataIfPossible g ty
diff --git a/src/Compiler/Checking/NameResolution.fsi b/src/Compiler/Checking/NameResolution.fsi
index c80125f1862..241a43f6106 100755
--- a/src/Compiler/Checking/NameResolution.fsi
+++ b/src/Compiler/Checking/NameResolution.fsi
@@ -673,6 +673,8 @@ exception internal IndeterminateType of range
/// Used to report a warning condition for the use of upper-case identifiers in patterns
exception internal UpperCaseIdentifierInPattern of range
+exception internal NoConstructorsAvailableForType of TType * DisplayEnv * range
+
/// Generate a new reference to a record field with a fresh type instantiation
val FreshenRecdFieldRef: NameResolver -> range -> RecdFieldRef -> RecdFieldInfo
diff --git a/src/Compiler/Driver/CompilerDiagnostics.fs b/src/Compiler/Driver/CompilerDiagnostics.fs
index 3327aa0a635..a31e159399b 100644
--- a/src/Compiler/Driver/CompilerDiagnostics.fs
+++ b/src/Compiler/Driver/CompilerDiagnostics.fs
@@ -216,7 +216,6 @@ type Exception with
// DO NOT CHANGE THESE NUMBERS
| ErrorFromAddingTypeEquation _ -> 1
| FunctionExpected _ -> 2
- | NotAFunctionButIndexer _ -> 3217
| NotAFunction _ -> 3
| FieldNotMutable _ -> 5
| Recursion _ -> 6
@@ -320,7 +319,6 @@ type Exception with
| BadEventTransformation _ -> 91
| HashLoadedScriptConsideredSource _ -> 92
| UnresolvedConversionOperator _ -> 93
- | ArgumentsInSigAndImplMismatch _ -> 3218
// avoid 94-100 for safety
| ObsoleteError _ -> 101
#if !NO_TYPEPROVIDERS
@@ -328,6 +326,9 @@ type Exception with
| TypeProviders.ProvidedTypeResolution _ -> 103
#endif
| PatternMatchCompilation.EnumMatchIncomplete _ -> 104
+ | NoConstructorsAvailableForType _ -> 1133
+ | NotAFunctionButIndexer _ -> 3217
+ | ArgumentsInSigAndImplMismatch _ -> 3218
// Strip TargetInvocationException wrappers
| :? TargetInvocationException as e -> e.InnerException.DiagnosticNumber
@@ -605,6 +606,7 @@ module OldStyleMessages =
let MSBuildReferenceResolutionErrorE () = Message("MSBuildReferenceResolutionError", "%s%s")
let TargetInvocationExceptionWrapperE () = Message("TargetInvocationExceptionWrapper", "%s")
let ArgumentsInSigAndImplMismatchE () = Message("ArgumentsInSigAndImplMismatch", "%s%s")
+ let NoConstructorsAvailableForTypeE () = Message("NoConstructorsAvailableForType", "%s")
#if DEBUG
let mutable showParserStackOnParseError = false
@@ -1857,6 +1859,9 @@ type Exception with
| ArgumentsInSigAndImplMismatch(sigArg, implArg) ->
os.AppendString(ArgumentsInSigAndImplMismatchE().Format sigArg.idText implArg.idText)
+ | NoConstructorsAvailableForType(ty, denv, _) ->
+ os.AppendString(NoConstructorsAvailableForTypeE().Format(NicePrint.stringOfTy denv ty))
+
// Strip TargetInvocationException wrappers
| :? TargetInvocationException as exn -> exn.InnerException.Output(os, suggestNames)
diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt
index 8df6fecfdfb..35512ef7235 100644
--- a/src/Compiler/FSComp.txt
+++ b/src/Compiler/FSComp.txt
@@ -1010,7 +1010,6 @@ lexfltSeparatorTokensOfPatternMatchMisaligned,"The '|' tokens separating rules o
1129,nrRecordDoesNotContainSuchLabel,"The record type '%s' does not contain a label '%s'."
1130,nrInvalidFieldLabel,"Invalid field label"
1132,nrInvalidExpression,"Invalid expression '%s'"
-1133,nrNoConstructorsAvailableForType,"No constructors are available for the type '%s'"
1134,nrUnionTypeNeedsQualifiedAccess,"The union type for union case '%s' was defined with the RequireQualifiedAccessAttribute. Include the name of the union type ('%s') in the name you are using."
1135,nrRecordTypeNeedsQualifiedAccess,"The record type for the record field '%s' was defined with the RequireQualifiedAccessAttribute. Include the name of the record type ('%s') in the name you are using."
1136,ilwriteErrorCreatingPdb,"Unexpected error creating debug information file '%s'"
diff --git a/src/Compiler/FSStrings.resx b/src/Compiler/FSStrings.resx
index e24b4737742..1d4878dea79 100644
--- a/src/Compiler/FSStrings.resx
+++ b/src/Compiler/FSStrings.resx
@@ -1113,6 +1113,9 @@
The argument names in the signature '{0}' and implementation '{1}' do not match. The argument name from the signature file will be used. This may cause problems when debugging or profiling.
+
+ No constructors are available for the type '{0}'
+
keyword 'while!'
diff --git a/src/Compiler/Symbols/FSharpDiagnostic.fs b/src/Compiler/Symbols/FSharpDiagnostic.fs
index 2c27e7e2ff3..92833156971 100644
--- a/src/Compiler/Symbols/FSharpDiagnostic.fs
+++ b/src/Compiler/Symbols/FSharpDiagnostic.fs
@@ -68,8 +68,8 @@ module ExtendedData =
type IFSharpDiagnosticExtendedData = interface end
[]
- type TypeMismatchDiagnosticExtendedData
- internal (symbolEnv: SymbolEnv, dispEnv: DisplayEnv, expectedType: TType, actualType: TType, context: DiagnosticContextInfo) =
+ type TypeMismatchDiagnosticExtendedData(symbolEnv: SymbolEnv, dispEnv: DisplayEnv, expectedType: TType, actualType: TType, context: DiagnosticContextInfo) =
+
interface IFSharpDiagnosticExtendedData
member x.ExpectedType = FSharpType(symbolEnv, expectedType)
@@ -78,35 +78,45 @@ module ExtendedData =
member x.DisplayContext = FSharpDisplayContext(fun _ -> dispEnv)
[]
- type ExpressionIsAFunctionExtendedData
- internal (symbolEnv: SymbolEnv, actualType: TType) =
+ type ExpressionIsAFunctionExtendedData(symbolEnv: SymbolEnv, actualType: TType) =
+
interface IFSharpDiagnosticExtendedData
member x.ActualType = FSharpType(symbolEnv, actualType)
[]
- type FieldNotContainedDiagnosticExtendedData
- internal (symbolEnv: SymbolEnv, implTycon: Tycon, sigTycon: Tycon, signatureField: RecdField, implementationField: RecdField) =
+ type FieldNotContainedDiagnosticExtendedData(symbolEnv: SymbolEnv, implTycon: Tycon, sigTycon: Tycon, signatureField: RecdField, implementationField: RecdField) =
+
interface IFSharpDiagnosticExtendedData
+
member x.SignatureField = FSharpField(symbolEnv, RecdFieldRef.RecdFieldRef(mkLocalTyconRef sigTycon, signatureField.Id.idText))
member x.ImplementationField = FSharpField(symbolEnv, RecdFieldRef.RecdFieldRef(mkLocalTyconRef implTycon, implementationField.Id.idText))
[]
- type ValueNotContainedDiagnosticExtendedData
- internal (symbolEnv: SymbolEnv, signatureValue: Val, implValue: Val) =
+ type ValueNotContainedDiagnosticExtendedData(symbolEnv: SymbolEnv, signatureValue: Val, implValue: Val) =
+
interface IFSharpDiagnosticExtendedData
+
member x.SignatureValue = FSharpMemberOrFunctionOrValue(symbolEnv, mkLocalValRef signatureValue)
member x.ImplementationValue = FSharpMemberOrFunctionOrValue(symbolEnv, mkLocalValRef implValue)
[]
- type ArgumentsInSigAndImplMismatchExtendedData
- internal(sigArg: Ident, implArg: Ident) =
+ type ArgumentsInSigAndImplMismatchExtendedData(sigArg: Ident, implArg: Ident) =
+
interface IFSharpDiagnosticExtendedData
+
member x.SignatureName = sigArg.idText
member x.ImplementationName = implArg.idText
member x.SignatureRange = sigArg.idRange
member x.ImplementationRange = implArg.idRange
+ []
+ type TypeUsageErrorExtendedData(ty: TType, symbolEnv: SymbolEnv) =
+
+ interface IFSharpDiagnosticExtendedData
+
+ member x.Type = FSharpType(symbolEnv, ty)
+
open ExtendedData
type FSharpDiagnostic(m: range, severity: FSharpDiagnosticSeverity, message: string, subcategory: string, errorNum: int, numberPrefix: string, extendedData: IFSharpDiagnosticExtendedData option) =
diff --git a/src/Compiler/Symbols/FSharpDiagnostic.fsi b/src/Compiler/Symbols/FSharpDiagnostic.fsi
index 252a15a33c1..fd7fcdc3780 100644
--- a/src/Compiler/Symbols/FSharpDiagnostic.fsi
+++ b/src/Compiler/Symbols/FSharpDiagnostic.fsi
@@ -46,14 +46,15 @@ module public ExtendedData =
/// Contextually-relevant data to each particular diagnostic
[]
- type public IFSharpDiagnosticExtendedData =
+ type IFSharpDiagnosticExtendedData =
interface
end
/// Additional data for type-mismatch-like (usually with ErrorNumber = 1) diagnostics
[]
- type public TypeMismatchDiagnosticExtendedData =
+ type TypeMismatchDiagnosticExtendedData =
interface IFSharpDiagnosticExtendedData
+
/// Represents F# type expected in the current context
member ExpectedType: FSharpType
/// Represents F# type type actual in the current context
@@ -65,15 +66,17 @@ module public ExtendedData =
/// Additional data for 'This expression is a function value, i.e. is missing arguments' diagnostic
[]
- type public ExpressionIsAFunctionExtendedData =
+ type ExpressionIsAFunctionExtendedData =
interface IFSharpDiagnosticExtendedData
+
/// Represents F# type of the expression
member ActualType: FSharpType
/// Additional data for diagnostics about a field whose declarations differ in signature and implementation
[]
- type public FieldNotContainedDiagnosticExtendedData =
+ type FieldNotContainedDiagnosticExtendedData =
interface IFSharpDiagnosticExtendedData
+
/// Represents F# field in signature file
member SignatureField: FSharpField
/// Represents F# field in implementation file
@@ -81,8 +84,9 @@ module public ExtendedData =
/// Additional data for diagnostics about a value whose declarations differ in signature and implementation
[]
- type public ValueNotContainedDiagnosticExtendedData =
+ type ValueNotContainedDiagnosticExtendedData =
interface IFSharpDiagnosticExtendedData
+
/// Represents F# value in signature file
member SignatureValue: FSharpMemberOrFunctionOrValue
/// Represents F# value in implementation file
@@ -92,6 +96,7 @@ module public ExtendedData =
[]
type ArgumentsInSigAndImplMismatchExtendedData =
interface IFSharpDiagnosticExtendedData
+
/// Argument name in signature file
member SignatureName: string
/// Argument name in implementation file
@@ -101,6 +106,12 @@ module public ExtendedData =
/// Argument identifier range within implementation file
member ImplementationRange: range
+ []
+ type TypeUsageErrorExtendedData =
+ interface IFSharpDiagnosticExtendedData
+
+ member Type: FSharpType
+
open ExtendedData
/// Represents a diagnostic produced by the F# compiler
diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf
index c07ba0d7033..9e2bb196ff4 100644
--- a/src/Compiler/xlf/FSComp.txt.cs.xlf
+++ b/src/Compiler/xlf/FSComp.txt.cs.xlf
@@ -6287,11 +6287,6 @@
Neplatný výraz {0}
-
-
- Pro typ {0} nejsou k dispozici žádné konstruktory.
-
- Typ sjednocení pro případ sjednocení {0} se definoval pomocí atributu RequireQualifiedAccessAttribute. Do jména, které používáte, přidejte název typu sjednocení ({1}).
diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf
index d0feebf9d97..bba17929dd1 100644
--- a/src/Compiler/xlf/FSComp.txt.de.xlf
+++ b/src/Compiler/xlf/FSComp.txt.de.xlf
@@ -6287,11 +6287,6 @@
Ungültiger Ausdruck "{0}".
-
-
- Für den Typ "{0}" sind keine Konstruktoren verfügbar.
-
- Der Union-Typ für Union-Fall "{0}" wurde mit RequireQualifiedAccessAttribute definiert. Fügen Sie den Union-Typnamen ("{1}") in den verwendeten Namen ein.
diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf
index fae7ec8f032..e35c57a8aa0 100644
--- a/src/Compiler/xlf/FSComp.txt.es.xlf
+++ b/src/Compiler/xlf/FSComp.txt.es.xlf
@@ -6287,11 +6287,6 @@
Expresión '{0}' no válida.
-
-
- No hay constructores disponibles para el tipo '{0}'.
-
- El tipo de unión del caso de unión "{0}" se definió con el atributo RequireQualifiedAccessAttribute. Incluya el nombre del tipo de unión ("{1}") en el nombre que esté usando.
diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf
index 4a98252d56f..37c3d2bbb91 100644
--- a/src/Compiler/xlf/FSComp.txt.fr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.fr.xlf
@@ -6287,11 +6287,6 @@
Expression non valide '{0}'
-
-
- Aucun constructeur n'est disponible pour le type '{0}'
-
- Le type union du cas d'union '{0}' a été défini avec RequireQualifiedAccessAttribute. Incluez le nom du type union ('{1}') dans le nom que vous utilisez.
diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf
index 969c6716e2f..7a8e285e89c 100644
--- a/src/Compiler/xlf/FSComp.txt.it.xlf
+++ b/src/Compiler/xlf/FSComp.txt.it.xlf
@@ -6287,11 +6287,6 @@
Espressione '{0}' non valida
-
-
- Nessun costruttore disponibile per il tipo '{0}'
-
- Il tipo di unione per il case di unione '{0}' è stato definito con RequireQualifiedAccessAttribute. Includere il nome del tipo di unione ('{1}') nel nome da usare.
diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf
index 440e83c32b9..2131b4a4e2a 100644
--- a/src/Compiler/xlf/FSComp.txt.ja.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ja.xlf
@@ -6287,11 +6287,6 @@
式 '{0}' は無効です
-
-
- 型 '{0}' に使用できるコンストラクターがありません
-
- 共用体ケース '{0}' の共用体型が RequireQualifiedAccessAttribute によって定義されました。使用中の名前に共用体型 ('{1}') の名前を含めてください。
diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf
index 1a55695d885..b833401011c 100644
--- a/src/Compiler/xlf/FSComp.txt.ko.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ko.xlf
@@ -6287,11 +6287,6 @@
'{0}' 식이 잘못되었습니다.
-
-
- '{0}' 형식에 대해 사용할 수 있는 생성자가 없습니다.
-
- 공용 구조체 케이스 '{0}'에 대한 공용 구조체 형식은 RequireQualifiedAccessAttribute로 정의됩니다. 사용 중인 이름에 공용 구조체 형식('{1}') 이름을 포함하세요.
diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf
index fdf34864db0..fef39fbe44e 100644
--- a/src/Compiler/xlf/FSComp.txt.pl.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pl.xlf
@@ -6287,11 +6287,6 @@
Nieprawidłowe wyrażenie „{0}”
-
-
- Brak konstruktorów dostępnych dla typu „{0}”
-
- Typ unii dla przypadku unii „{0}” został zdefiniowany z użyciem wartości RequireQualifiedAccessAttribute. Uwzględnij nazwę typu unii („{1}”) w używanej nazwie.
diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
index 86ede3eed08..678b6ead6af 100644
--- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
+++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf
@@ -6287,11 +6287,6 @@
Expressão '{0}' inválida
-
-
- Nenhum construtor está disponível para o tipo '{0}'
-
- O tipo de união para o caso de união '{0}' foi definido com o RequireQualifiedAccessAttribute. Inclua o nome do tipo de união ('{1}') no nome que você está usando.
diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf
index e5844060d67..82b8fdbe650 100644
--- a/src/Compiler/xlf/FSComp.txt.ru.xlf
+++ b/src/Compiler/xlf/FSComp.txt.ru.xlf
@@ -6287,11 +6287,6 @@
Недопустимое выражение "{0}"
-
-
- Недоступны конструкторы для типа "{0}"
-
- Тип объединения для ветви объединения "{0}" определен с RequireQualifiedAccessAttribute. Включите имя типа объединения ("{1}") в используемое имя.
diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf
index 6e5505f1b7f..961fd261c9a 100644
--- a/src/Compiler/xlf/FSComp.txt.tr.xlf
+++ b/src/Compiler/xlf/FSComp.txt.tr.xlf
@@ -6287,11 +6287,6 @@
Geçersiz ifade: '{0}'
-
-
- '{0}' türü için kullanılabilir bir oluşturucu yok
-
- {0}' birleşim durumunun birleşim türü RequireQualifiedAccessAttribute ile tanımlanmış. Kullandığınız ada birleşim türünün adını ('{1}') dahil edin.
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
index 3e5248d2115..e3ad246f1bf 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf
@@ -6287,11 +6287,6 @@
表达式“{0}”无效
-
-
- 没有对类型“{0}”可用的构造函数
-
- 使用 RequireQualifiedAccessAttribute 定义联合用例“{0}”的联合类型。包括所使用的名称中联合类型 ('{1}') 的名称。
diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
index a1b3568925f..b551777be3b 100644
--- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
+++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf
@@ -6287,11 +6287,6 @@
無效的運算式 '{0}'
-
-
- 沒有可供類型 '{0}' 使用的建構函式
-
- 聯集 '{0}' 的等位型別由 RequireQualifiedAccessAttribute 定義。請在您使用的名稱中,加入等位型別 '{1}' 的名稱。
diff --git a/src/Compiler/xlf/FSStrings.cs.xlf b/src/Compiler/xlf/FSStrings.cs.xlf
index a3412bfc48c..1f36b0f5ab8 100644
--- a/src/Compiler/xlf/FSStrings.cs.xlf
+++ b/src/Compiler/xlf/FSStrings.cs.xlf
@@ -17,6 +17,11 @@
Nejméně jedna informační zpráva v načteném souboru\n
+
+
+ No constructors are available for the type '{0}'
+
+ Případy sjednocení s malými písmeny jsou povolené jenom při použití atributu RequireQualifiedAccess.
diff --git a/src/Compiler/xlf/FSStrings.de.xlf b/src/Compiler/xlf/FSStrings.de.xlf
index d1028719674..53eef21cfb1 100644
--- a/src/Compiler/xlf/FSStrings.de.xlf
+++ b/src/Compiler/xlf/FSStrings.de.xlf
@@ -17,6 +17,11 @@
Mindestens eine Informationsmeldung in der geladenen Datei.\n
+
+
+ No constructors are available for the type '{0}'
+
+ Diskriminierte Union-Fälle in Kleinbuchstaben sind nur zulässig, wenn das RequireQualifiedAccess-Attribut verwendet wird.
diff --git a/src/Compiler/xlf/FSStrings.es.xlf b/src/Compiler/xlf/FSStrings.es.xlf
index 213872bb8d7..f0494e86815 100644
--- a/src/Compiler/xlf/FSStrings.es.xlf
+++ b/src/Compiler/xlf/FSStrings.es.xlf
@@ -17,6 +17,11 @@
Uno o más mensajes informativos en el archivo cargado.\n
+
+
+ No constructors are available for the type '{0}'
+
+ Los casos de unión discriminada en minúsculas solo se permiten cuando se usa el atributo RequireQualifiedAccess
diff --git a/src/Compiler/xlf/FSStrings.fr.xlf b/src/Compiler/xlf/FSStrings.fr.xlf
index 7539cba3a7b..17ee8603bc9 100644
--- a/src/Compiler/xlf/FSStrings.fr.xlf
+++ b/src/Compiler/xlf/FSStrings.fr.xlf
@@ -17,6 +17,11 @@
Un ou plusieurs messages d’information dans le fichier chargé.\n
+
+
+ No constructors are available for the type '{0}'
+
+ Les cas d’union discriminée en minuscules sont uniquement autorisés lors de l’utilisation de l’attribut RequireQualifiedAccess.
diff --git a/src/Compiler/xlf/FSStrings.it.xlf b/src/Compiler/xlf/FSStrings.it.xlf
index b4e6abe8be9..b07517215c0 100644
--- a/src/Compiler/xlf/FSStrings.it.xlf
+++ b/src/Compiler/xlf/FSStrings.it.xlf
@@ -17,6 +17,11 @@
Uno o più messaggi informativi nel file caricato.\n
+
+
+ No constructors are available for the type '{0}'
+
+ I casi di unione discriminati minuscoli sono consentiti solo quando si usa l'attributo RequireQualifiedAccess
diff --git a/src/Compiler/xlf/FSStrings.ja.xlf b/src/Compiler/xlf/FSStrings.ja.xlf
index d465315dfa1..500d9f54161 100644
--- a/src/Compiler/xlf/FSStrings.ja.xlf
+++ b/src/Compiler/xlf/FSStrings.ja.xlf
@@ -17,6 +17,11 @@
読み込まれたファイル内の 1 つ以上の情報メッセージ。\n
+
+
+ No constructors are available for the type '{0}'
+
+ 小文字で区別される和集合のケースは、RequireQualifiedAccess 属性を使用する場合にのみ許可されます
diff --git a/src/Compiler/xlf/FSStrings.ko.xlf b/src/Compiler/xlf/FSStrings.ko.xlf
index 1e4bb958ae6..6943862f855 100644
--- a/src/Compiler/xlf/FSStrings.ko.xlf
+++ b/src/Compiler/xlf/FSStrings.ko.xlf
@@ -17,6 +17,11 @@
로드된 파일에 하나 이상의 정보 메시지가 있습니다.\n
+
+
+ No constructors are available for the type '{0}'
+
+ 소문자로 구분된 공용 구조체 케이스는 RequireQualifiedAccess 특성을 사용하는 경우에만 허용됩니다.
diff --git a/src/Compiler/xlf/FSStrings.pl.xlf b/src/Compiler/xlf/FSStrings.pl.xlf
index c7087e22b98..a22c5798fbb 100644
--- a/src/Compiler/xlf/FSStrings.pl.xlf
+++ b/src/Compiler/xlf/FSStrings.pl.xlf
@@ -17,6 +17,11 @@
Jeden lub więcej komunikatów informacyjnych w załadowanym pliku.\n
+
+
+ No constructors are available for the type '{0}'
+
+ Przypadki unii z dyskryminatorem z małymi literami są dozwolone tylko w przypadku używania atrybutu RequireQualifiedAccess
diff --git a/src/Compiler/xlf/FSStrings.pt-BR.xlf b/src/Compiler/xlf/FSStrings.pt-BR.xlf
index ba29b433934..fc389f7261d 100644
--- a/src/Compiler/xlf/FSStrings.pt-BR.xlf
+++ b/src/Compiler/xlf/FSStrings.pt-BR.xlf
@@ -17,6 +17,11 @@
Uma ou mais mensagens informativas no arquivo carregado.\n
+
+
+ No constructors are available for the type '{0}'
+
+ Os casos de união discriminados em letras minúsculas só são permitidos ao usar o atributo RequireQualifiedAccess
diff --git a/src/Compiler/xlf/FSStrings.ru.xlf b/src/Compiler/xlf/FSStrings.ru.xlf
index ecd597b4349..7bbd42e4eb8 100644
--- a/src/Compiler/xlf/FSStrings.ru.xlf
+++ b/src/Compiler/xlf/FSStrings.ru.xlf
@@ -17,6 +17,11 @@
Одно или несколько информационных сообщений в загруженном файле.\n
+
+
+ No constructors are available for the type '{0}'
+
+ Размеченные в нижнем регистре случаи объединения разрешены только при использовании атрибута RequireQualifiedAccess
diff --git a/src/Compiler/xlf/FSStrings.tr.xlf b/src/Compiler/xlf/FSStrings.tr.xlf
index e0b5f943f15..d06dbe2cdb4 100644
--- a/src/Compiler/xlf/FSStrings.tr.xlf
+++ b/src/Compiler/xlf/FSStrings.tr.xlf
@@ -17,6 +17,11 @@
Yüklenen dosyada bir veya daha fazla bilgi mesajı.\n
+
+
+ No constructors are available for the type '{0}'
+
+ Küçük harf ayrımlı birleşim durumlarına yalnızca RequireQualifiedAccess özniteliği kullanılırken izin verilir
diff --git a/src/Compiler/xlf/FSStrings.zh-Hans.xlf b/src/Compiler/xlf/FSStrings.zh-Hans.xlf
index 9525488aa9b..441802e3ce2 100644
--- a/src/Compiler/xlf/FSStrings.zh-Hans.xlf
+++ b/src/Compiler/xlf/FSStrings.zh-Hans.xlf
@@ -17,6 +17,11 @@
加载文件 .\n 中有一条或多条信息性消息
+
+
+ No constructors are available for the type '{0}'
+
+ 仅当使用 RequireQualifiedAccess 属性时才允许区分小写的联合事例
diff --git a/src/Compiler/xlf/FSStrings.zh-Hant.xlf b/src/Compiler/xlf/FSStrings.zh-Hant.xlf
index c2181e3f317..a3005c50731 100644
--- a/src/Compiler/xlf/FSStrings.zh-Hant.xlf
+++ b/src/Compiler/xlf/FSStrings.zh-Hant.xlf
@@ -17,6 +17,11 @@
已載入檔案中的一或多個資訊訊息。\n
+
+
+ No constructors are available for the type '{0}'
+
+ 只有在使用 RequireQualifiedAccess 屬性時,才允許小寫區分聯結案例