From d11b46f7cdaa90ab5663bf16f7f54349204545a9 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 16 Apr 2024 09:46:22 -0700 Subject: [PATCH 01/14] Disallow calling abstract methods directly on interfaces (#17021) (#17053) * Disallow calling abstract methods directly on interfaces * More tests * IWSAMs are not supported by NET472 * Update src/Compiler/Checking/ConstraintSolver.fs * fix typos * looking for the right check * Add comments * move release notes * Add a new error number and message * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md * Improve error message --------- Co-authored-by: Edgar Gonzalez Co-authored-by: Tomas Grosup Co-authored-by: Brian Rourke Boll --- .../.FSharp.Compiler.Service/8.0.400.md | 3 +- src/Compiler/Checking/ConstraintSolver.fs | 19 +++++- src/Compiler/FSComp.txt | 3 +- src/Compiler/xlf/FSComp.txt.cs.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.de.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.es.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.fr.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.it.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ja.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ko.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.pl.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ru.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.tr.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 5 ++ .../ConstrainedAndInterfaceCalls.fs | 16 +++++ .../IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs | 60 ++++++++++++++++++- 18 files changed, 160 insertions(+), 6 deletions(-) create mode 100644 tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/ConstrainedAndInterfaceCalls.fs diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md index c18d969fa4c..1a6298e3a48 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md +++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md @@ -1,5 +1,6 @@ ### Fixed -* Various parenthesization API fixes. ([PR #16977](https://github.com/dotnet/fsharp/pull/16977)) +* Disallow calling abstract methods directly on interfaces. ([Issue #14012](https://github.com/dotnet/fsharp/issues/14012), [Issue #16299](https://github.com/dotnet/fsharp/issues/16299), [PR #17021](https://github.com/dotnet/fsharp/pull/17021)) +* Various parenthesization API fixes. ([PR #16977](https://github.com/dotnet/fsharp/pull/16977)) * Fix bug in optimization of for-loops over integral ranges with steps and units of measure. ([Issue #17025](https://github.com/dotnet/fsharp/issues/17025), [PR #17040](https://github.com/dotnet/fsharp/pull/17040)) * Fix calling an overridden virtual static method via the interface ([PR #17013](https://github.com/dotnet/fsharp/pull/17013)) diff --git a/src/Compiler/Checking/ConstraintSolver.fs b/src/Compiler/Checking/ConstraintSolver.fs index 2667ea6ccfc..41c7e26f47e 100644 --- a/src/Compiler/Checking/ConstraintSolver.fs +++ b/src/Compiler/Checking/ConstraintSolver.fs @@ -2942,10 +2942,23 @@ and ResolveOverloading let candidates = calledMethGroup |> List.filter (fun cmeth -> cmeth.IsCandidate(m, ad)) let calledMethOpt, errors, calledMethTrace = - match calledMethGroup, candidates with - | _, [calledMeth] when not isOpConversion -> - Some calledMeth, CompleteD, NoTrace + | _, [calledMeth] when not isOpConversion -> + // See what candidates we have based on static/virtual/abstract + + // If false then is a static method call directly on an interface e.g. + // IParsable.Parse(...) + // IAdditionOperators.(+) + // This is not allowed as Parse and (+) method are static abstract + let isStaticConstrainedCall = + match calledMeth.OptionalStaticType with + | Some ttype -> isTyparTy g ttype + | None -> false + + match calledMeth.Method with + | ILMeth(ilMethInfo= ilMethInfo) when not isStaticConstrainedCall && ilMethInfo.IsStatic && ilMethInfo.IsAbstract -> + None, ErrorD (Error (FSComp.SR.chkStaticAbstractInterfaceMembers(ilMethInfo.ILName), m)), NoTrace + | _ -> Some calledMeth, CompleteD, NoTrace | [], _ when not isOpConversion -> None, ErrorD (Error (FSComp.SR.csMethodNotFound(methodName), m)), NoTrace diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index acb3eecc210..e5cabbdc7e3 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1745,4 +1745,5 @@ featureReuseSameFieldsInStructUnions,"Share underlying fields in a [] di 3862,parsStaticMemberImcompleteSyntax,"Incomplete declaration of a static construct. Use 'static let','static do','static member' or 'static val' for declaration." 3863,parsExpectingField,"Expecting record field" 3864,tooManyMethodsInDotNetTypeWritingAssembly,"The type '%s' has too many methods. Found: '%d', maximum: '%d'" -3865,parsOnlySimplePatternsAreAllowedInConstructors,"Only simple patterns are allowed in primary constructors" \ No newline at end of file +3865,parsOnlySimplePatternsAreAllowedInConstructors,"Only simple patterns are allowed in primary constructors" +3866,chkStaticAbstractInterfaceMembers,"A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.%s)." \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 4a57c5a229d..a7f9808f488 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -122,6 +122,11 @@ Člen nebo funkce „{0}“ má atribut „TailCallAttribute“, ale nepoužívá se koncovým (tail) rekurzivním způsobem. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Objektové výrazy nemohou implementovat rozhraní se statickými abstraktními členy ani deklarovat statické členy. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 3875895aed7..534e047744f 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -122,6 +122,11 @@ Der Member oder die Funktion "{0}" weist das Attribut "TailCallAttribute" auf, wird jedoch nicht endrekursiv verwendet. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Objektausdrücke können keine Schnittstellen mit statischen abstrakten Membern implementieren oder statische Member deklarieren. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 229f3781a88..5d2517d1ca9 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -122,6 +122,11 @@ El miembro o la función “{0}” tiene el atributo “TailCallAttribute”, pero no se usa de forma de recursión de cola. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Las expresiones de objeto no pueden implementar interfaces con miembros abstractos estáticos ni declarar miembros estáticos. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 5ace1c2dc39..f5c4358314a 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -122,6 +122,11 @@ Le membre ou la fonction « {0} » possède l'attribut « TailCallAttribute », mais n'est pas utilisé de manière récursive. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Les expressions d’objet ne peuvent pas implémenter des interfaces avec des membres abstraits statiques ou déclarer des membres statiques. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index c5cb0876c15..350f2decb87 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -122,6 +122,11 @@ Il membro o la funzione "{0}" ha l'attributo "TailCallAttribute", ma non è in uso in modo ricorsivo finale. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Le espressioni di oggetto non possono implementare interfacce con membri astratti statici o dichiarare membri statici. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 04b73c10939..376d3d8d592 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -122,6 +122,11 @@ メンバーまたは関数 '{0}' には 'TailCallAttribute' 属性がありますが、末尾の再帰的な方法では使用されていません。 + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. オブジェクト式は、静的抽象メンバーを持つインターフェイスを実装したり、静的メンバーを宣言したりすることはできません。 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index afd1f78ca86..f4a42405fcb 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -122,6 +122,11 @@ 멤버 또는 함수 '{0}'에 'TailCallAttribute' 특성이 있지만 비상 재귀적인 방식으로 사용되고 있지 않습니다. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. 개체 식은 정적 추상 멤버가 있는 인터페이스를 구현하거나 정적 멤버를 선언할 수 없습니다. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 98611ebcc88..f081661bf4e 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -122,6 +122,11 @@ Składowa lub funkcja „{0}” ma atrybut „TailCallAttribute”, ale nie jest używana w sposób cykliczny końca. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Wyrażenia obiektów nie mogą implementować interfejsów ze statycznymi abstrakcyjnymi elementami członkowskimi ani deklarować statycznych elementów członkowskich. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 9356372d275..b17c0b76d24 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -122,6 +122,11 @@ O membro ou a função "{0}" tem o atributo "TailCallAttribute", mas não está sendo usado de maneira recursiva em cauda. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Expressões de objeto não podem implementar interfaces com membros abstratos estáticos ou declarar membros estáticos. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 6a08c7ada1a..7f83d96d646 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -122,6 +122,11 @@ Элемент или функция "{0}" содержит атрибут "TailCallAttribute", но не используется в рекурсивном хвостовом режиме. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Выражения объектов не могут реализовывать интерфейсы со статическими абстрактными членами или объявлять статические члены. diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 7aab43de9c4..f74a800f285 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -122,6 +122,11 @@ Üye veya '{0}' işlevi, 'TailCallAttribute' özniteliğine sahip ancak kuyruk özyinelemeli bir şekilde kullanılmıyor. + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. Nesne ifadeleri, statik soyut üyeler içeren arabirimleri uygulayamaz veya statik üyeleri bildiremez. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index 95715bd1b8a..19dae40d40a 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -122,6 +122,11 @@ 成员或函数“{0}”具有 "TailCallAttribute" 属性,但未以尾递归方式使用。 + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. 对象表达式无法实现具有静态抽象成员或声明静态成员的接口。 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 5b95c7fe99e..4f332483292 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -122,6 +122,11 @@ 成員或函式 '{0}' 具有 'TailCallAttribute' 屬性,但未以尾遞迴方式使用。 + + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Object expressions cannot implement interfaces with static abstract members or declare static members. 物件運算式無法實作具有靜態抽象成員的介面或宣告靜態成員。 diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/ConstrainedAndInterfaceCalls.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/ConstrainedAndInterfaceCalls.fs new file mode 100644 index 00000000000..740eff41812 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/ConstrainedAndInterfaceCalls.fs @@ -0,0 +1,16 @@ +#nowarn "64" +open System +open System.Numerics + +module ConstrainedCall = + let ``'T.op_Addition``<'T & #IAdditionOperators<'T, 'T, 'T>> x y = 'T.op_Addition (x, y) + let ``'T.(+)``<'T & #IAdditionOperators<'T, 'T, 'T>> x y = 'T.(+) (x, y) + let ``'T.op_CheckedAddition``<'T & #IAdditionOperators<'T, 'T, 'T>> x y = 'T.op_CheckedAddition (x, y) + let ``'T.Parse``<'T & #IParsable<'T>> x = 'T.Parse (x, null) + +module InterfaceCall = + let ``IAdditionOperators.op_Addition`` x y = IAdditionOperators.op_Addition (x, y) + let ``IAdditionOperators.(+)`` x y = IAdditionOperators.(+) (x, y) + let ``IAdditionOperators.op_CheckedAddition`` x y = IAdditionOperators.op_CheckedAddition (x, y) + let ``IParsable.Parse``<'T & #IParsable<'T>> x : 'T = IParsable.Parse (x, null) + diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs index d3d7be2cf36..48c54e2c11e 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs @@ -19,6 +19,18 @@ module TypesAndTypeConstraints_IWSAMsAndSRTPs = |> asExe |> withLangVersion70 |> withReferences [typesModule] + + let verifyCompile compilation = + compilation + |> asExe + |> withOptions ["--nowarn:988"] + |> compile + + let verifyCompileAndRun compilation = + compilation + |> asExe + |> withOptions ["--nowarn:988"] + |> compileAndRun [] let ``Srtp call Zero property returns valid result`` () = @@ -1183,4 +1195,50 @@ let execute = IPrintable.Say("hello") |> withOptions [ "--nowarn:3536" ; "--nowarn:3535" ] |> withLangVersion80 |> typecheck - |> shouldSucceed \ No newline at end of file + |> shouldSucceed + + [] + let ``Accessing to IWSAM(System.Numerics non virtual) produces a compilation error`` () = + Fsx """ +open System.Numerics + +IAdditionOperators.op_Addition (3, 6) + """ + |> withOptions [ "--nowarn:3536" ; "--nowarn:3535" ] + |> withLangVersion80 + |> compile + |> shouldFail + |> withSingleDiagnostic (Error 3866, Line 4, Col 1, Line 4, Col 38, "A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.op_Addition).") + + [] + let ``Accessing to IWSAM(System.Numerics virtual member) compiles and runs`` () = + Fsx """ +open System.Numerics + +let res = IAdditionOperators.op_CheckedAddition (3, 6) + +printf "%A" res""" + |> withOptions [ "--nowarn:3536" ; "--nowarn:3535" ] + |> withLangVersion80 + |> asExe + |> compile + |> shouldSucceed + |> run + |> verifyOutput "9" + +#if !NETCOREAPP + [] +#else + // SOURCE=ConstrainedAndInterfaceCalls.fs # ConstrainedAndInterfaceCalls.fs + [] +#endif + let ``ConstrainedAndInterfaceCalls.fs`` compilation = + compilation + |> withOptions [ "--nowarn:3536" ; "--nowarn:3535" ] + |> verifyCompile + |> shouldFail + |> withDiagnostics [ + (Error 3866, Line 12, Col 82, Line 12, Col 126, "A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.op_Addition).") + (Error 3866, Line 13, Col 82, Line 13, Col 126, "A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.op_Addition).") + (Error 3866, Line 15, Col 82, Line 15, Col 129, "A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.Parse).") + ] \ No newline at end of file From ade069701fa391f194d1772387255e7a5d32da50 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Wed, 17 Apr 2024 02:14:53 -0700 Subject: [PATCH 02/14] Merge main to release/dev17.11 (#17056) * Disallow calling abstract methods directly on interfaces (#17021) * Disallow calling abstract methods directly on interfaces * More tests * IWSAMs are not supported by NET472 * Update src/Compiler/Checking/ConstraintSolver.fs Co-authored-by: Tomas Grosup * fix typos * looking for the right check * Add comments * move release notes * Add a new error number and message * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md Co-authored-by: Brian Rourke Boll * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md Co-authored-by: Brian Rourke Boll * Improve error message --------- Co-authored-by: Tomas Grosup Co-authored-by: Brian Rourke Boll * Always use `typeEquivAux EraseMeasures` (for integral range optimizations) (#17048) * Always use `typeEquivAux EraseMeasures` * Update release notes * Update baselines --------- Co-authored-by: Petr --------- Co-authored-by: Edgar Gonzalez Co-authored-by: Tomas Grosup Co-authored-by: Brian Rourke Boll Co-authored-by: Petr Co-authored-by: Kevin Ransom (msft) --- .../.FSharp.Compiler.Service/8.0.400.md | 4 +- .../Optimize/LowerComputedCollections.fs | 10 +- src/Compiler/TypedTree/TypedTreeOps.fs | 46 ++-- ...EachRangeStep_UnitsOfMeasure.fs.opt.il.bsl | 217 ++++++++++++------ ...EachRangeStep_UnitsOfMeasure.fs.opt.il.bsl | 217 ++++++++++++------ 5 files changed, 322 insertions(+), 172 deletions(-) diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md index 1a6298e3a48..7ef8842b72c 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md +++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md @@ -1,6 +1,6 @@ ### Fixed * Disallow calling abstract methods directly on interfaces. ([Issue #14012](https://github.com/dotnet/fsharp/issues/14012), [Issue #16299](https://github.com/dotnet/fsharp/issues/16299), [PR #17021](https://github.com/dotnet/fsharp/pull/17021)) -* Various parenthesization API fixes. ([PR #16977](https://github.com/dotnet/fsharp/pull/16977)) -* Fix bug in optimization of for-loops over integral ranges with steps and units of measure. ([Issue #17025](https://github.com/dotnet/fsharp/issues/17025), [PR #17040](https://github.com/dotnet/fsharp/pull/17040)) +* Various parenthesization API fixes. ([PR #16977](https://github.com/dotnet/fsharp/pull/16977)) +* Fix bug in optimization of for-loops over integral ranges with steps and units of measure. ([Issue #17025](https://github.com/dotnet/fsharp/issues/17025), [PR #17040](https://github.com/dotnet/fsharp/pull/17040), [PR #17048](https://github.com/dotnet/fsharp/pull/17048)) * Fix calling an overridden virtual static method via the interface ([PR #17013](https://github.com/dotnet/fsharp/pull/17013)) diff --git a/src/Compiler/Optimize/LowerComputedCollections.fs b/src/Compiler/Optimize/LowerComputedCollections.fs index 52fabfbca26..5d755daf4b1 100644 --- a/src/Compiler/Optimize/LowerComputedCollections.fs +++ b/src/Compiler/Optimize/LowerComputedCollections.fs @@ -314,7 +314,7 @@ module Array = let arrayTy = mkArrayType g overallElemTy let convToNativeInt ovf expr = - let ty = stripMeasuresFromTy g (tyOfExpr g expr) + let ty = tyOfExpr g expr let conv = match ovf with @@ -322,13 +322,13 @@ module Array = | CheckOvf when isSignedIntegerTy g ty -> AI_conv_ovf DT_I | CheckOvf -> AI_conv_ovf_un DT_I - if typeEquiv g ty g.int64_ty then + if typeEquivAux EraseMeasures g ty g.int64_ty then mkAsmExpr ([conv], [], [expr], [g.nativeint_ty], m) - elif typeEquiv g ty g.nativeint_ty then + elif typeEquivAux EraseMeasures g ty g.nativeint_ty then mkAsmExpr ([conv], [], [mkAsmExpr ([AI_conv DT_I8], [], [expr], [g.int64_ty], m)], [g.nativeint_ty], m) - elif typeEquiv g ty g.uint64_ty then + elif typeEquivAux EraseMeasures g ty g.uint64_ty then mkAsmExpr ([conv], [], [expr], [g.nativeint_ty], m) - elif typeEquiv g ty g.unativeint_ty then + elif typeEquivAux EraseMeasures g ty g.unativeint_ty then mkAsmExpr ([conv], [], [mkAsmExpr ([AI_conv DT_U8], [], [expr], [g.uint64_ty], m)], [g.nativeint_ty], m) else expr diff --git a/src/Compiler/TypedTree/TypedTreeOps.fs b/src/Compiler/TypedTree/TypedTreeOps.fs index 92c1e7355be..cc031de1c1c 100644 --- a/src/Compiler/TypedTree/TypedTreeOps.fs +++ b/src/Compiler/TypedTree/TypedTreeOps.fs @@ -10434,21 +10434,19 @@ let mkRangeCount g m rangeTy rangeExpr start step finish = mkAsmExpr ([AI_clt_un], [], [e1; e2], [g.bool_ty], m) let unsignedEquivalent ty = - if typeEquiv g ty g.int64_ty then g.uint64_ty - elif typeEquiv g ty g.int32_ty then g.uint32_ty - elif typeEquiv g ty g.int16_ty then g.uint16_ty - elif typeEquiv g ty g.sbyte_ty then g.byte_ty + if typeEquivAux EraseMeasures g ty g.int64_ty then g.uint64_ty + elif typeEquivAux EraseMeasures g ty g.int32_ty then g.uint32_ty + elif typeEquivAux EraseMeasures g ty g.int16_ty then g.uint16_ty + elif typeEquivAux EraseMeasures g ty g.sbyte_ty then g.byte_ty else ty /// Find the unsigned type with twice the width of the given type, if available. let nextWidestUnsignedTy ty = - let ty = stripMeasuresFromTy g ty - - if typeEquiv g ty g.int64_ty || typeEquiv g ty g.int32_ty || typeEquiv g ty g.uint32_ty then + if typeEquivAux EraseMeasures g ty g.int64_ty || typeEquivAux EraseMeasures g ty g.int32_ty || typeEquivAux EraseMeasures g ty g.uint32_ty then g.uint64_ty - elif typeEquiv g ty g.int16_ty || typeEquiv g ty g.uint16_ty || typeEquiv g ty g.char_ty then + elif typeEquivAux EraseMeasures g ty g.int16_ty || typeEquivAux EraseMeasures g ty g.uint16_ty || typeEquivAux EraseMeasures g ty g.char_ty then g.uint32_ty - elif typeEquiv g ty g.sbyte_ty || typeEquiv g ty g.byte_ty then + elif typeEquivAux EraseMeasures g ty g.sbyte_ty || typeEquivAux EraseMeasures g ty g.byte_ty then g.uint16_ty else ty @@ -10456,19 +10454,17 @@ let mkRangeCount g m rangeTy rangeExpr start step finish = /// Convert the value to the next-widest unsigned type. /// We do this so that adding one won't result in overflow. let mkWiden e = - let ty = stripMeasuresFromTy g rangeTy - - if typeEquiv g ty g.int32_ty then + if typeEquivAux EraseMeasures g rangeTy g.int32_ty then mkAsmExpr ([AI_conv DT_I8], [], [e], [g.uint64_ty], m) - elif typeEquiv g ty g.uint32_ty then + elif typeEquivAux EraseMeasures g rangeTy g.uint32_ty then mkAsmExpr ([AI_conv DT_U8], [], [e], [g.uint64_ty], m) - elif typeEquiv g ty g.int16_ty then + elif typeEquivAux EraseMeasures g rangeTy g.int16_ty then mkAsmExpr ([AI_conv DT_I4], [], [e], [g.uint32_ty], m) - elif typeEquiv g ty g.uint16_ty || typeEquiv g ty g.char_ty then + elif typeEquivAux EraseMeasures g rangeTy g.uint16_ty || typeEquivAux EraseMeasures g rangeTy g.char_ty then mkAsmExpr ([AI_conv DT_U4], [], [e], [g.uint32_ty], m) - elif typeEquiv g ty g.sbyte_ty then + elif typeEquivAux EraseMeasures g rangeTy g.sbyte_ty then mkAsmExpr ([AI_conv DT_I2], [], [e], [g.uint16_ty], m) - elif typeEquiv g ty g.byte_ty then + elif typeEquivAux EraseMeasures g rangeTy g.byte_ty then mkAsmExpr ([AI_conv DT_U2], [], [e], [g.uint16_ty], m) else e @@ -10481,12 +10477,10 @@ let mkRangeCount g m rangeTy rangeExpr start step finish = /// Whether the total count might not fit in 64 bits. let couldBeTooBig ty = - let underlying = stripMeasuresFromTy g ty - - typeEquiv g underlying g.int64_ty - || typeEquiv g underlying g.uint64_ty - || typeEquiv g underlying g.nativeint_ty - || typeEquiv g underlying g.unativeint_ty + typeEquivAux EraseMeasures g ty g.int64_ty + || typeEquivAux EraseMeasures g ty g.uint64_ty + || typeEquivAux EraseMeasures g ty g.nativeint_ty + || typeEquivAux EraseMeasures g ty g.unativeint_ty /// pseudoCount + 1 let mkAddOne pseudoCount = @@ -10499,16 +10493,14 @@ let mkRangeCount g m rangeTy rangeExpr start step finish = mkAsmExpr ([AI_add], [], [pseudoCount; mkTypedOne g m ty], [ty], m) let mkRuntimeCalc mkThrowIfStepIsZero pseudoCount count = - let underlying = stripMeasuresFromTy g rangeTy - - if typeEquiv g underlying g.int64_ty || typeEquiv g underlying g.uint64_ty then + if typeEquivAux EraseMeasures g rangeTy g.int64_ty || typeEquivAux EraseMeasures g rangeTy g.uint64_ty then RangeCount.PossiblyOversize (fun mkLoopExpr -> mkThrowIfStepIsZero (mkCompGenLetIn m (nameof pseudoCount) (tyOfExpr g pseudoCount) pseudoCount (fun (_, pseudoCount) -> let wouldOvf = mkILAsmCeq g m pseudoCount (Expr.Const (Const.UInt64 UInt64.MaxValue, m, g.uint64_ty)) mkCompGenLetIn m (nameof wouldOvf) g.bool_ty wouldOvf (fun (_, wouldOvf) -> mkLoopExpr count wouldOvf)))) - elif typeEquiv g underlying g.nativeint_ty || typeEquiv g underlying g.unativeint_ty then // We have a nativeint ty whose size we won't know till runtime. + elif typeEquivAux EraseMeasures g rangeTy g.nativeint_ty || typeEquivAux EraseMeasures g rangeTy g.unativeint_ty then // We have a nativeint ty whose size we won't know till runtime. RangeCount.PossiblyOversize (fun mkLoopExpr -> mkThrowIfStepIsZero (mkCompGenLetIn m (nameof pseudoCount) (tyOfExpr g pseudoCount) pseudoCount (fun (_, pseudoCount) -> diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOff/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOff/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl index c47ef1b4a90..456b6757b4f 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOff/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOff/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl @@ -98,7 +98,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 @@ -132,7 +132,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 @@ -166,8 +166,8 @@ { .maxstack 4 - .locals init (int64 V_0, - int64 V_1, + .locals init (uint64 V_0, + uint64 V_1, int64 V_2) IL_0000: ldc.i4.s 10 IL_0002: conv.i8 @@ -188,7 +188,7 @@ IL_0012: div.un IL_0013: ldc.i4.1 IL_0014: conv.i8 - IL_0015: add + IL_0015: add.ovf.un IL_0016: nop IL_0017: stloc.0 IL_0018: ldc.i4.0 @@ -221,8 +221,8 @@ { .maxstack 5 - .locals init (int64 V_0, - int64 V_1, + .locals init (uint64 V_0, + uint64 V_1, int64 V_2) IL_0000: ldarg.0 IL_0001: brtrue.s IL_0012 @@ -251,7 +251,7 @@ IL_001c: div.un IL_001d: ldc.i4.1 IL_001e: conv.i8 - IL_001f: add + IL_001f: add.ovf.un IL_0020: nop IL_0021: br.s IL_0026 @@ -289,8 +289,8 @@ { .maxstack 4 - .locals init (int64 V_0, - int64 V_1, + .locals init (uint64 V_0, + uint64 V_1, int64 V_2) IL_0000: ldarg.0 IL_0001: ldc.i4.1 @@ -311,7 +311,7 @@ IL_0010: div.un IL_0011: ldc.i4.1 IL_0012: conv.i8 - IL_0013: add + IL_0013: add.ovf.un IL_0014: nop IL_0015: stloc.0 IL_0016: ldc.i4.0 @@ -349,9 +349,11 @@ 00 00 00 00 ) .maxstack 5 - .locals init (int64 V_0, - int64 V_1, - int64 V_2) + .locals init (uint64 V_0, + bool V_1, + uint64 V_2, + int64 V_3, + uint64 V_4) IL_0000: ldarg.1 IL_0001: brtrue.s IL_000f @@ -369,7 +371,7 @@ IL_0010: ldc.i4.0 IL_0011: conv.i8 IL_0012: ldarg.1 - IL_0013: bge.s IL_0029 + IL_0013: bge.s IL_0026 IL_0015: ldarg.2 IL_0016: ldarg.0 @@ -378,65 +380,142 @@ IL_0019: ldc.i4.0 IL_001a: conv.i8 IL_001b: nop - IL_001c: br.s IL_003f + IL_001c: br.s IL_0039 IL_001e: ldarg.2 IL_001f: ldarg.0 IL_0020: sub IL_0021: ldarg.1 IL_0022: div.un - IL_0023: ldc.i4.1 - IL_0024: conv.i8 - IL_0025: add - IL_0026: nop - IL_0027: br.s IL_003f - - IL_0029: ldarg.0 - IL_002a: ldarg.2 - IL_002b: bge.s IL_0032 - - IL_002d: ldc.i4.0 - IL_002e: conv.i8 - IL_002f: nop - IL_0030: br.s IL_003f - - IL_0032: ldarg.0 - IL_0033: ldarg.2 - IL_0034: sub - IL_0035: ldarg.1 - IL_0036: not - IL_0037: ldc.i4.1 - IL_0038: conv.i8 - IL_0039: add - IL_003a: div.un - IL_003b: ldc.i4.1 + IL_0023: nop + IL_0024: br.s IL_0039 + + IL_0026: ldarg.0 + IL_0027: ldarg.2 + IL_0028: bge.s IL_002f + + IL_002a: ldc.i4.0 + IL_002b: conv.i8 + IL_002c: nop + IL_002d: br.s IL_0039 + + IL_002f: ldarg.0 + IL_0030: ldarg.2 + IL_0031: sub + IL_0032: ldarg.1 + IL_0033: not + IL_0034: ldc.i4.1 + IL_0035: conv.i8 + IL_0036: add + IL_0037: div.un + IL_0038: nop + IL_0039: stloc.0 + IL_003a: ldloc.0 + IL_003b: ldc.i4.m1 IL_003c: conv.i8 - IL_003d: add - IL_003e: nop - IL_003f: stloc.0 - IL_0040: ldc.i4.0 - IL_0041: conv.i8 - IL_0042: stloc.1 - IL_0043: ldarg.0 - IL_0044: stloc.2 - IL_0045: br.s IL_0056 - - IL_0047: ldloc.2 - IL_0048: call void assembly::set_c(int64) - IL_004d: ldloc.2 - IL_004e: ldarg.1 - IL_004f: add - IL_0050: stloc.2 - IL_0051: ldloc.1 - IL_0052: ldc.i4.1 - IL_0053: conv.i8 - IL_0054: add - IL_0055: stloc.1 - IL_0056: ldloc.1 - IL_0057: ldloc.0 - IL_0058: blt.un.s IL_0047 - - IL_005a: ret + IL_003d: bne.un.s IL_0061 + + IL_003f: ldc.i4.1 + IL_0040: stloc.1 + IL_0041: ldc.i4.0 + IL_0042: conv.i8 + IL_0043: stloc.2 + IL_0044: ldarg.0 + IL_0045: stloc.3 + IL_0046: br.s IL_005d + + IL_0048: ldloc.3 + IL_0049: call void assembly::set_c(int64) + IL_004e: ldloc.3 + IL_004f: ldarg.1 + IL_0050: add + IL_0051: stloc.3 + IL_0052: ldloc.2 + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add + IL_0056: stloc.2 + IL_0057: ldloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: cgt.un + IL_005c: stloc.1 + IL_005d: ldloc.1 + IL_005e: brtrue.s IL_0048 + + IL_0060: ret + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: ldarg.1 + IL_0064: bge.s IL_007a + + IL_0066: ldarg.2 + IL_0067: ldarg.0 + IL_0068: bge.s IL_006f + + IL_006a: ldc.i4.0 + IL_006b: conv.i8 + IL_006c: nop + IL_006d: br.s IL_0090 + + IL_006f: ldarg.2 + IL_0070: ldarg.0 + IL_0071: sub + IL_0072: ldarg.1 + IL_0073: div.un + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add.ovf.un + IL_0077: nop + IL_0078: br.s IL_0090 + + IL_007a: ldarg.0 + IL_007b: ldarg.2 + IL_007c: bge.s IL_0083 + + IL_007e: ldc.i4.0 + IL_007f: conv.i8 + IL_0080: nop + IL_0081: br.s IL_0090 + + IL_0083: ldarg.0 + IL_0084: ldarg.2 + IL_0085: sub + IL_0086: ldarg.1 + IL_0087: not + IL_0088: ldc.i4.1 + IL_0089: conv.i8 + IL_008a: add + IL_008b: div.un + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.2 + IL_0091: ldc.i4.0 + IL_0092: conv.i8 + IL_0093: stloc.s V_4 + IL_0095: ldarg.0 + IL_0096: stloc.3 + IL_0097: br.s IL_00aa + + IL_0099: ldloc.3 + IL_009a: call void assembly::set_c(int64) + IL_009f: ldloc.3 + IL_00a0: ldarg.1 + IL_00a1: add + IL_00a2: stloc.3 + IL_00a3: ldloc.s V_4 + IL_00a5: ldc.i4.1 + IL_00a6: conv.i8 + IL_00a7: add + IL_00a8: stloc.s V_4 + IL_00aa: ldloc.s V_4 + IL_00ac: ldloc.2 + IL_00ad: blt.un.s IL_0099 + + IL_00af: ret } .method public static void f8(int64 start, @@ -536,7 +615,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 @@ -570,7 +649,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOn/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOn/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl index 1776b519709..cacb169018c 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOn/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ForLoop/RealInternalSignatureOn/ForEachRangeStep_UnitsOfMeasure.fs.opt.il.bsl @@ -100,7 +100,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 @@ -134,7 +134,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 @@ -168,8 +168,8 @@ { .maxstack 4 - .locals init (int64 V_0, - int64 V_1, + .locals init (uint64 V_0, + uint64 V_1, int64 V_2) IL_0000: ldc.i4.s 10 IL_0002: conv.i8 @@ -190,7 +190,7 @@ IL_0012: div.un IL_0013: ldc.i4.1 IL_0014: conv.i8 - IL_0015: add + IL_0015: add.ovf.un IL_0016: nop IL_0017: stloc.0 IL_0018: ldc.i4.0 @@ -223,8 +223,8 @@ { .maxstack 5 - .locals init (int64 V_0, - int64 V_1, + .locals init (uint64 V_0, + uint64 V_1, int64 V_2) IL_0000: ldarg.0 IL_0001: brtrue.s IL_0012 @@ -253,7 +253,7 @@ IL_001c: div.un IL_001d: ldc.i4.1 IL_001e: conv.i8 - IL_001f: add + IL_001f: add.ovf.un IL_0020: nop IL_0021: br.s IL_0026 @@ -291,8 +291,8 @@ { .maxstack 4 - .locals init (int64 V_0, - int64 V_1, + .locals init (uint64 V_0, + uint64 V_1, int64 V_2) IL_0000: ldarg.0 IL_0001: ldc.i4.1 @@ -313,7 +313,7 @@ IL_0010: div.un IL_0011: ldc.i4.1 IL_0012: conv.i8 - IL_0013: add + IL_0013: add.ovf.un IL_0014: nop IL_0015: stloc.0 IL_0016: ldc.i4.0 @@ -351,9 +351,11 @@ 00 00 00 00 ) .maxstack 5 - .locals init (int64 V_0, - int64 V_1, - int64 V_2) + .locals init (uint64 V_0, + bool V_1, + uint64 V_2, + int64 V_3, + uint64 V_4) IL_0000: ldarg.1 IL_0001: brtrue.s IL_000f @@ -371,7 +373,7 @@ IL_0010: ldc.i4.0 IL_0011: conv.i8 IL_0012: ldarg.1 - IL_0013: bge.s IL_0029 + IL_0013: bge.s IL_0026 IL_0015: ldarg.2 IL_0016: ldarg.0 @@ -380,65 +382,142 @@ IL_0019: ldc.i4.0 IL_001a: conv.i8 IL_001b: nop - IL_001c: br.s IL_003f + IL_001c: br.s IL_0039 IL_001e: ldarg.2 IL_001f: ldarg.0 IL_0020: sub IL_0021: ldarg.1 IL_0022: div.un - IL_0023: ldc.i4.1 - IL_0024: conv.i8 - IL_0025: add - IL_0026: nop - IL_0027: br.s IL_003f - - IL_0029: ldarg.0 - IL_002a: ldarg.2 - IL_002b: bge.s IL_0032 - - IL_002d: ldc.i4.0 - IL_002e: conv.i8 - IL_002f: nop - IL_0030: br.s IL_003f - - IL_0032: ldarg.0 - IL_0033: ldarg.2 - IL_0034: sub - IL_0035: ldarg.1 - IL_0036: not - IL_0037: ldc.i4.1 - IL_0038: conv.i8 - IL_0039: add - IL_003a: div.un - IL_003b: ldc.i4.1 + IL_0023: nop + IL_0024: br.s IL_0039 + + IL_0026: ldarg.0 + IL_0027: ldarg.2 + IL_0028: bge.s IL_002f + + IL_002a: ldc.i4.0 + IL_002b: conv.i8 + IL_002c: nop + IL_002d: br.s IL_0039 + + IL_002f: ldarg.0 + IL_0030: ldarg.2 + IL_0031: sub + IL_0032: ldarg.1 + IL_0033: not + IL_0034: ldc.i4.1 + IL_0035: conv.i8 + IL_0036: add + IL_0037: div.un + IL_0038: nop + IL_0039: stloc.0 + IL_003a: ldloc.0 + IL_003b: ldc.i4.m1 IL_003c: conv.i8 - IL_003d: add - IL_003e: nop - IL_003f: stloc.0 - IL_0040: ldc.i4.0 - IL_0041: conv.i8 - IL_0042: stloc.1 - IL_0043: ldarg.0 - IL_0044: stloc.2 - IL_0045: br.s IL_0056 - - IL_0047: ldloc.2 - IL_0048: call void assembly::set_c(int64) - IL_004d: ldloc.2 - IL_004e: ldarg.1 - IL_004f: add - IL_0050: stloc.2 - IL_0051: ldloc.1 - IL_0052: ldc.i4.1 - IL_0053: conv.i8 - IL_0054: add - IL_0055: stloc.1 - IL_0056: ldloc.1 - IL_0057: ldloc.0 - IL_0058: blt.un.s IL_0047 - - IL_005a: ret + IL_003d: bne.un.s IL_0061 + + IL_003f: ldc.i4.1 + IL_0040: stloc.1 + IL_0041: ldc.i4.0 + IL_0042: conv.i8 + IL_0043: stloc.2 + IL_0044: ldarg.0 + IL_0045: stloc.3 + IL_0046: br.s IL_005d + + IL_0048: ldloc.3 + IL_0049: call void assembly::set_c(int64) + IL_004e: ldloc.3 + IL_004f: ldarg.1 + IL_0050: add + IL_0051: stloc.3 + IL_0052: ldloc.2 + IL_0053: ldc.i4.1 + IL_0054: conv.i8 + IL_0055: add + IL_0056: stloc.2 + IL_0057: ldloc.2 + IL_0058: ldc.i4.0 + IL_0059: conv.i8 + IL_005a: cgt.un + IL_005c: stloc.1 + IL_005d: ldloc.1 + IL_005e: brtrue.s IL_0048 + + IL_0060: ret + + IL_0061: ldc.i4.0 + IL_0062: conv.i8 + IL_0063: ldarg.1 + IL_0064: bge.s IL_007a + + IL_0066: ldarg.2 + IL_0067: ldarg.0 + IL_0068: bge.s IL_006f + + IL_006a: ldc.i4.0 + IL_006b: conv.i8 + IL_006c: nop + IL_006d: br.s IL_0090 + + IL_006f: ldarg.2 + IL_0070: ldarg.0 + IL_0071: sub + IL_0072: ldarg.1 + IL_0073: div.un + IL_0074: ldc.i4.1 + IL_0075: conv.i8 + IL_0076: add.ovf.un + IL_0077: nop + IL_0078: br.s IL_0090 + + IL_007a: ldarg.0 + IL_007b: ldarg.2 + IL_007c: bge.s IL_0083 + + IL_007e: ldc.i4.0 + IL_007f: conv.i8 + IL_0080: nop + IL_0081: br.s IL_0090 + + IL_0083: ldarg.0 + IL_0084: ldarg.2 + IL_0085: sub + IL_0086: ldarg.1 + IL_0087: not + IL_0088: ldc.i4.1 + IL_0089: conv.i8 + IL_008a: add + IL_008b: div.un + IL_008c: ldc.i4.1 + IL_008d: conv.i8 + IL_008e: add.ovf.un + IL_008f: nop + IL_0090: stloc.2 + IL_0091: ldc.i4.0 + IL_0092: conv.i8 + IL_0093: stloc.s V_4 + IL_0095: ldarg.0 + IL_0096: stloc.3 + IL_0097: br.s IL_00aa + + IL_0099: ldloc.3 + IL_009a: call void assembly::set_c(int64) + IL_009f: ldloc.3 + IL_00a0: ldarg.1 + IL_00a1: add + IL_00a2: stloc.3 + IL_00a3: ldloc.s V_4 + IL_00a5: ldc.i4.1 + IL_00a6: conv.i8 + IL_00a7: add + IL_00a8: stloc.s V_4 + IL_00aa: ldloc.s V_4 + IL_00ac: ldloc.2 + IL_00ad: blt.un.s IL_0099 + + IL_00af: ret } .method public static void f8(int64 start, @@ -538,7 +617,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 @@ -572,7 +651,7 @@ { .maxstack 4 - .locals init (int64 V_0, + .locals init (uint64 V_0, int64 V_1) IL_0000: ldc.i4.0 IL_0001: conv.i8 From 6b6bbf08ee8a90c6b231d6b636bf2ebb05b2556c Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Wed, 17 Apr 2024 06:50:27 -0700 Subject: [PATCH 03/14] Merge main to release/dev17.11 (#17059) * Disallow calling abstract methods directly on interfaces (#17021) * Disallow calling abstract methods directly on interfaces * More tests * IWSAMs are not supported by NET472 * Update src/Compiler/Checking/ConstraintSolver.fs Co-authored-by: Tomas Grosup * fix typos * looking for the right check * Add comments * move release notes * Add a new error number and message * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md Co-authored-by: Brian Rourke Boll * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md Co-authored-by: Brian Rourke Boll * Improve error message --------- Co-authored-by: Tomas Grosup Co-authored-by: Brian Rourke Boll * Always use `typeEquivAux EraseMeasures` (for integral range optimizations) (#17048) * Always use `typeEquivAux EraseMeasures` * Update release notes * Update baselines --------- Co-authored-by: Petr --------- Co-authored-by: Edgar Gonzalez Co-authored-by: Tomas Grosup Co-authored-by: Brian Rourke Boll Co-authored-by: Petr Co-authored-by: Vlad Zarytovskii From 27efc282d3c1e3abdf8322191e09d0fe466c489e Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Thu, 18 Apr 2024 04:35:27 -0700 Subject: [PATCH 04/14] Merge main to release/dev17.11 (#17064) * Disallow calling abstract methods directly on interfaces (#17021) * Disallow calling abstract methods directly on interfaces * More tests * IWSAMs are not supported by NET472 * Update src/Compiler/Checking/ConstraintSolver.fs Co-authored-by: Tomas Grosup * fix typos * looking for the right check * Add comments * move release notes * Add a new error number and message * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md Co-authored-by: Brian Rourke Boll * Update docs/release-notes/.FSharp.Compiler.Service/8.0.400.md Co-authored-by: Brian Rourke Boll * Improve error message --------- Co-authored-by: Tomas Grosup Co-authored-by: Brian Rourke Boll * Always use `typeEquivAux EraseMeasures` (for integral range optimizations) (#17048) * Always use `typeEquivAux EraseMeasures` * Update release notes * Update baselines --------- Co-authored-by: Petr * Error message that explicitly disallowed static abstract members in classes. (#17055) * WIP * Error message that explicitly disallowed static abstract methods in abstract classes * release notes * SynTypeDefnKind.Class * Fix #16761 (#17047) * Fix #16761 * Fully async version + ignore cancellation on external navigation * Automated command ran: fantomas Co-authored-by: vzarytovskii <1260985+vzarytovskii@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: Edgar Gonzalez Co-authored-by: Tomas Grosup Co-authored-by: Brian Rourke Boll Co-authored-by: Petr Co-authored-by: Vlad Zarytovskii Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Kevin Ransom (msft) --- .../.FSharp.Compiler.Service/8.0.400.md | 1 + src/Compiler/Checking/CheckDeclarations.fs | 35 ++++---- src/Compiler/FSComp.txt | 3 +- src/Compiler/xlf/FSComp.txt.cs.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.de.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.es.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.fr.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.it.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ja.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ko.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.pl.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ru.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.tr.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 5 ++ .../IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs | 29 ++++++- .../Navigation/GoToDefinition.fs | 86 +++++++++++++++++-- .../Navigation/GoToDefinitionService.fs | 4 +- 19 files changed, 198 insertions(+), 25 deletions(-) diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md index 7ef8842b72c..b24a17b85fb 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md +++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md @@ -1,5 +1,6 @@ ### Fixed +* Static abstract method on classes no longer yields internal error. ([Issue #17044](https://github.com/dotnet/fsharp/issues/17044), [PR #17055](https://github.com/dotnet/fsharp/pull/17055)) * Disallow calling abstract methods directly on interfaces. ([Issue #14012](https://github.com/dotnet/fsharp/issues/14012), [Issue #16299](https://github.com/dotnet/fsharp/issues/16299), [PR #17021](https://github.com/dotnet/fsharp/pull/17021)) * Various parenthesization API fixes. ([PR #16977](https://github.com/dotnet/fsharp/pull/16977)) * Fix bug in optimization of for-loops over integral ranges with steps and units of measure. ([Issue #17025](https://github.com/dotnet/fsharp/issues/17025), [PR #17040](https://github.com/dotnet/fsharp/pull/17040), [PR #17048](https://github.com/dotnet/fsharp/pull/17048)) diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index f1037f7f1bb..30f773f7478 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -3608,6 +3608,20 @@ module EstablishTypeDefinitionCores = elif not (isClassTy g ty) then errorR(Error(FSComp.SR.tcCannotInheritFromInterfaceType(), m))) + let abstractSlots = + [ for synValSig, memberFlags in slotsigs do + + let (SynValSig(range=m)) = synValSig + + CheckMemberFlags None NewSlotsOK OverridesOK memberFlags m + + let slots = fst (TcAndPublishValSpec (cenv, envinner, containerInfo, ModuleOrMemberBinding, Some memberFlags, tpenv, synValSig)) + // Multiple slots may be returned, e.g. for + // abstract P: int with get, set + + for slot in slots do + yield mkLocalValRef slot ] + let kind = match kind with | SynTypeDefnKind.Struct -> @@ -3632,6 +3646,9 @@ module EstablishTypeDefinitionCores = noCLIMutableAttributeCheck() structLayoutAttributeCheck(not isIncrClass) allowNullLiteralAttributeCheck() + for slot in abstractSlots do + if not slot.IsInstanceMember then + errorR(Error(FSComp.SR.chkStaticAbstractMembersOnClasses(), slot.Range)) TFSharpClass | SynTypeDefnKind.Delegate (ty, arity) -> noCLIMutableAttributeCheck() @@ -3666,21 +3683,7 @@ module EstablishTypeDefinitionCores = | (_, m, baseIdOpt) :: _ -> match baseIdOpt with | None -> Some(ident("base", m)) - | Some id -> Some id - - let abstractSlots = - [ for synValSig, memberFlags in slotsigs do - - let (SynValSig(range=m)) = synValSig - - CheckMemberFlags None NewSlotsOK OverridesOK memberFlags m - - let slots = fst (TcAndPublishValSpec (cenv, envinner, containerInfo, ModuleOrMemberBinding, Some memberFlags, tpenv, synValSig)) - // Multiple slots may be returned, e.g. for - // abstract P: int with get, set - - for slot in slots do - yield mkLocalValRef slot ] + | Some id -> Some id let baseValOpt = MakeAndPublishBaseVal cenv envinner baseIdOpt (superOfTycon g tycon) let safeInitInfo = ComputeInstanceSafeInitInfo cenv envinner thisTyconRef.Range thisTy @@ -4453,7 +4456,7 @@ module TcDeclarations = let slotsigs = members |> List.choose (function SynMemberDefn.AbstractSlot (slotSig = x; flags = y) -> Some(x, y) | _ -> None) - let members,_vals_Inherits_Abstractslots = SplitAutoProps members + let members, _vals_Inherits_Abstractslots = SplitAutoProps members let isConcrete = members |> List.exists (function diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index e5cabbdc7e3..d7dfe371f3e 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1746,4 +1746,5 @@ featureReuseSameFieldsInStructUnions,"Share underlying fields in a [] di 3863,parsExpectingField,"Expecting record field" 3864,tooManyMethodsInDotNetTypeWritingAssembly,"The type '%s' has too many methods. Found: '%d', maximum: '%d'" 3865,parsOnlySimplePatternsAreAllowedInConstructors,"Only simple patterns are allowed in primary constructors" -3866,chkStaticAbstractInterfaceMembers,"A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.%s)." \ No newline at end of file +3866,chkStaticAbstractInterfaceMembers,"A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.%s)." +3867,chkStaticAbstractMembersOnClasses,"Classes cannot contain static abstract members." \ No newline at end of file diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index a7f9808f488..1e331ca0c1e 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Objektové výrazy nemohou implementovat rozhraní se statickými abstraktními členy ani deklarovat statické členy. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 534e047744f..cb5bb611c16 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Objektausdrücke können keine Schnittstellen mit statischen abstrakten Membern implementieren oder statische Member deklarieren. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 5d2517d1ca9..5a5520af8d0 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Las expresiones de objeto no pueden implementar interfaces con miembros abstractos estáticos ni declarar miembros estáticos. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index f5c4358314a..95f24fd7db2 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Les expressions d’objet ne peuvent pas implémenter des interfaces avec des membres abstraits statiques ou déclarer des membres statiques. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 350f2decb87..a4468df7f8e 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Le espressioni di oggetto non possono implementare interfacce con membri astratti statici o dichiarare membri statici. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 376d3d8d592..358cf700cf0 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. オブジェクト式は、静的抽象メンバーを持つインターフェイスを実装したり、静的メンバーを宣言したりすることはできません。 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index f4a42405fcb..5784d4264e1 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. 개체 식은 정적 추상 멤버가 있는 인터페이스를 구현하거나 정적 멤버를 선언할 수 없습니다. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index f081661bf4e..f2858d49504 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Wyrażenia obiektów nie mogą implementować interfejsów ze statycznymi abstrakcyjnymi elementami członkowskimi ani deklarować statycznych elementów członkowskich. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index b17c0b76d24..cdff3ed5b34 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Expressões de objeto não podem implementar interfaces com membros abstratos estáticos ou declarar membros estáticos. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 7f83d96d646..9d1790e8dc9 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Выражения объектов не могут реализовывать интерфейсы со статическими абстрактными членами или объявлять статические члены. diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index f74a800f285..b8bdd5e9cc6 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. Nesne ifadeleri, statik soyut üyeler içeren arabirimleri uygulayamaz veya statik üyeleri bildiremez. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index 19dae40d40a..f06487e86bd 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. 对象表达式无法实现具有静态抽象成员或声明静态成员的接口。 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 4f332483292..f80470220b3 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -127,6 +127,11 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + + Classes cannot contain static abstract members. + Classes cannot contain static abstract members. + + Object expressions cannot implement interfaces with static abstract members or declare static members. 物件運算式無法實作具有靜態抽象成員的介面或宣告靜態成員。 diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs index 48c54e2c11e..3e971a054b0 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/Types/TypeConstraints/IWSAMsAndSRTPs/IWSAMsAndSRTPsTests.fs @@ -1241,4 +1241,31 @@ printf "%A" res""" (Error 3866, Line 12, Col 82, Line 12, Col 126, "A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.op_Addition).") (Error 3866, Line 13, Col 82, Line 13, Col 126, "A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.op_Addition).") (Error 3866, Line 15, Col 82, Line 15, Col 129, "A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.Parse).") - ] \ No newline at end of file + ] + + [] + let ``Error message that explicitly disallows static abstract methods in abstract classes.`` () = + Fsx """ +[] +type A () = + static abstract M : unit -> unit + """ + |> withOptions [ "--nowarn:3536" ; "--nowarn:3535" ] + |> typecheck + |> shouldFail + |> withDiagnostics [ + (Error 3867, Line 4, Col 21, Line 4, Col 22, "Classes cannot contain static abstract members.") + ] + + [] + let ``Error message that explicitly disallows static abstract methods in classes.`` () = + Fsx """ +type A () = + static abstract M : unit -> unit + """ + |> withOptions [ "--nowarn:3536" ; "--nowarn:3535" ] + |> typecheck + |> shouldFail + |> withDiagnostics [ + (Error 3867, Line 3, Col 21, Line 3, Col 22, "Classes cannot contain static abstract members.") + ] diff --git a/vsintegration/src/FSharp.Editor/Navigation/GoToDefinition.fs b/vsintegration/src/FSharp.Editor/Navigation/GoToDefinition.fs index d10bc4fb138..d2d5ae7b01d 100644 --- a/vsintegration/src/FSharp.Editor/Navigation/GoToDefinition.fs +++ b/vsintegration/src/FSharp.Editor/Navigation/GoToDefinition.fs @@ -29,7 +29,7 @@ open System.Text.RegularExpressions open CancellableTasks open Microsoft.VisualStudio.FSharp.Editor.Telemetry open Microsoft.VisualStudio.Telemetry -open System.Collections.Generic +open Microsoft.VisualStudio.Threading module private Symbol = let fullName (root: ISymbol) : string = @@ -565,6 +565,77 @@ type internal GoToDefinition(metadataAsSource: FSharpMetadataAsSourceService) = return this.NavigateToItem(item, cancellationToken) } + member this.NavigateToExternalDeclarationAsync(targetSymbolUse: FSharpSymbolUse, metadataReferences: seq) = + let textOpt = + match targetSymbolUse.Symbol with + | :? FSharpEntity as symbol -> symbol.TryGetMetadataText() |> Option.map (fun text -> text, symbol.DisplayName) + | :? FSharpMemberOrFunctionOrValue as symbol -> + symbol.ApparentEnclosingEntity.TryGetMetadataText() + |> Option.map (fun text -> text, symbol.ApparentEnclosingEntity.DisplayName) + | :? FSharpField as symbol -> + match symbol.DeclaringEntity with + | Some entity -> + let text = entity.TryGetMetadataText() + + match text with + | Some text -> Some(text, entity.DisplayName) + | None -> None + | None -> None + | :? FSharpUnionCase as symbol -> + symbol.DeclaringEntity.TryGetMetadataText() + |> Option.map (fun text -> text, symbol.DisplayName) + | _ -> None + + match textOpt with + | None -> CancellableTask.singleton false + | Some(text, fileName) -> + foregroundCancellableTask { + let! cancellationToken = CancellableTask.getCancellationToken () + do! ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(cancellationToken) + + let tmpProjInfo, tmpDocInfo = + MetadataAsSource.generateTemporaryDocument ( + AssemblyIdentity(targetSymbolUse.Symbol.Assembly.QualifiedName), + fileName, + metadataReferences + ) + + let tmpShownDocOpt = + metadataAsSource.ShowDocument(tmpProjInfo, tmpDocInfo.FilePath, SourceText.From(text.ToString())) + + match tmpShownDocOpt with + | ValueNone -> return false + | ValueSome tmpShownDoc -> + let! _, checkResults = tmpShownDoc.GetFSharpParseAndCheckResultsAsync("NavigateToExternalDeclaration") + + let r = + // This tries to find the best possible location of the target symbol's location in the metadata source. + // We really should rely on symbol equality within FCS instead of doing it here, + // but the generated metadata as source isn't perfect for symbol equality. + let symbols = checkResults.GetAllUsesOfAllSymbolsInFile(cancellationToken) + + symbols + |> Seq.tryFindV (tryFindExternalSymbolUse targetSymbolUse) + |> ValueOption.map (fun x -> x.Range) + + let! span = + cancellableTask { + let! cancellationToken = CancellableTask.getCancellationToken () + + match r with + | ValueNone -> return TextSpan.empty + | ValueSome r -> + let! text = tmpShownDoc.GetTextAsync(cancellationToken) + + match RoslynHelpers.TryFSharpRangeToTextSpan(text, r) with + | ValueSome span -> return span + | _ -> return TextSpan.empty + } + + let navItem = FSharpGoToDefinitionNavigableItem(tmpShownDoc, span) + return this.NavigateToItem(navItem, cancellationToken) + } + member this.NavigateToExternalDeclaration ( targetSymbolUse: FSharpSymbolUse, @@ -706,10 +777,15 @@ type internal FSharpNavigation(metadataAsSource: FSharpMetadataAsSourceService, let gtd = GoToDefinition(metadataAsSource) let! result = gtd.FindDefinitionAtPosition(initialDoc, position) - return - match result with - | ValueSome(FSharpGoToDefinitionResult.NavigableItem(navItem), _) -> ImmutableArray.create navItem - | _ -> ImmutableArray.empty + match result with + | ValueSome(FSharpGoToDefinitionResult.NavigableItem(navItem), _) -> return ImmutableArray.create navItem + | ValueSome(FSharpGoToDefinitionResult.ExternalAssembly(targetSymbolUse, metadataReferences), _) -> + do! + gtd.NavigateToExternalDeclarationAsync(targetSymbolUse, metadataReferences) + |> CancellableTask.ignore + + return ImmutableArray.empty + | _ -> return ImmutableArray.empty } member _.TryGoToDefinition(position, cancellationToken) = diff --git a/vsintegration/src/FSharp.Editor/Navigation/GoToDefinitionService.fs b/vsintegration/src/FSharp.Editor/Navigation/GoToDefinitionService.fs index 3130163b192..a51cf0e6943 100644 --- a/vsintegration/src/FSharp.Editor/Navigation/GoToDefinitionService.fs +++ b/vsintegration/src/FSharp.Editor/Navigation/GoToDefinitionService.fs @@ -18,13 +18,13 @@ type internal FSharpGoToDefinitionService [] (metadataAsSo interface IFSharpGoToDefinitionService with /// Invoked with Peek Definition. - member _.FindDefinitionsAsync(document: Document, position: int, cancellationToken: CancellationToken) = + member _.FindDefinitionsAsync(document: Document, position: int, _cancellationToken: CancellationToken) = cancellableTask { let navigation = FSharpNavigation(metadataAsSource, document, rangeStartup) let! res = navigation.FindDefinitionsAsync(position) return (res :> IEnumerable<_>) } - |> CancellableTask.start cancellationToken + |> CancellableTask.startWithoutCancellation /// Invoked with Go to Definition. /// Try to navigate to the definiton of the symbol at the symbolRange in the originDocument From 96e6c797fda8040f336eafeb5a30abe3a24e383c Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 22 Apr 2024 05:02:25 -0700 Subject: [PATCH 05/14] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2434439 (#17073) --- src/Compiler/xlf/FSStrings.cs.xlf | 2 +- src/Compiler/xlf/FSStrings.de.xlf | 2 +- src/Compiler/xlf/FSStrings.es.xlf | 2 +- src/Compiler/xlf/FSStrings.fr.xlf | 2 +- src/Compiler/xlf/FSStrings.it.xlf | 2 +- src/Compiler/xlf/FSStrings.ja.xlf | 2 +- src/Compiler/xlf/FSStrings.ko.xlf | 2 +- src/Compiler/xlf/FSStrings.pl.xlf | 2 +- src/Compiler/xlf/FSStrings.pt-BR.xlf | 2 +- src/Compiler/xlf/FSStrings.ru.xlf | 2 +- src/Compiler/xlf/FSStrings.tr.xlf | 2 +- src/Compiler/xlf/FSStrings.zh-Hans.xlf | 2 +- src/Compiler/xlf/FSStrings.zh-Hant.xlf | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Compiler/xlf/FSStrings.cs.xlf b/src/Compiler/xlf/FSStrings.cs.xlf index 8fa85e6c640..4ed675a7d46 100644 --- a/src/Compiler/xlf/FSStrings.cs.xlf +++ b/src/Compiler/xlf/FSStrings.cs.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Tento typ je abstract, protože se neimplementovali někteří abstraktní členové. Pokud je to záměr, pak k typu přidejte atribut [<AbstractClass>]. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.de.xlf b/src/Compiler/xlf/FSStrings.de.xlf index 46c2c4eb4f1..4109711fe52 100644 --- a/src/Compiler/xlf/FSStrings.de.xlf +++ b/src/Compiler/xlf/FSStrings.de.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Der Typ entspricht „abstract“, da einige abstrakte Member nicht mit einer Implementierung versehen wurden. Wenn dies Ihre Absicht ist, fügen Sie das [<AbstractClass>]-Attribut zu Ihrem Typ hinzu. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.es.xlf b/src/Compiler/xlf/FSStrings.es.xlf index 0009c7dd034..458e6e42fd7 100644 --- a/src/Compiler/xlf/FSStrings.es.xlf +++ b/src/Compiler/xlf/FSStrings.es.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Este tipo es "abstract" ya que a algunos miembros abstractos no se les ha dado una implementación. Si esto es intencional, agregue el atributo "[<AbstractClass>]" + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.fr.xlf b/src/Compiler/xlf/FSStrings.fr.xlf index 788fbf8d78d..675c87f2c90 100644 --- a/src/Compiler/xlf/FSStrings.fr.xlf +++ b/src/Compiler/xlf/FSStrings.fr.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Ce type est 'abstract', car des membres abstraits n'ont pas reçu d'implémentation. Si cela est intentionnel, ajoutez l'attribut '[<AbstractClass>]' à votre type. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.it.xlf b/src/Compiler/xlf/FSStrings.it.xlf index 98994f92f88..f0c3c7c502b 100644 --- a/src/Compiler/xlf/FSStrings.it.xlf +++ b/src/Compiler/xlf/FSStrings.it.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Questo tipo è 'abstract' perché non è stata specificata un'implementazione per alcuni membri astratti. Se questa scelta è intenzionale, aggiungere l'attributo '[<AbstractClass>]' al tipo. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.ja.xlf b/src/Compiler/xlf/FSStrings.ja.xlf index e48f47c0f6f..3a856620ad6 100644 --- a/src/Compiler/xlf/FSStrings.ja.xlf +++ b/src/Compiler/xlf/FSStrings.ja.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - これは 'abstract' 型です。一部の抽象メンバーに実装がありません。意図的な場合には、型に '[<AbstractClass>]' 属性を追加してください。 + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.ko.xlf b/src/Compiler/xlf/FSStrings.ko.xlf index 31481aa4566..fba5c3c71e1 100644 --- a/src/Compiler/xlf/FSStrings.ko.xlf +++ b/src/Compiler/xlf/FSStrings.ko.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - 일부 추상 멤버에 구현이 지정되지 않았으므로 이 형식은 'abstract'입니다. 의도적으로 구현을 지정하지 않은 경우에는 형식에 '[<AbstractClass>]' 특성을 추가하세요. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.pl.xlf b/src/Compiler/xlf/FSStrings.pl.xlf index 8dde95ed7e9..5a7f64fd5eb 100644 --- a/src/Compiler/xlf/FSStrings.pl.xlf +++ b/src/Compiler/xlf/FSStrings.pl.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Ten typ ma wartość „abstract”, ponieważ niektóre abstrakcyjne składowe nie mają określonej implementacji. Jeśli jest to zamierzone działanie, dodaj atrybut „[<AbstractClass>]” do typu. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.pt-BR.xlf b/src/Compiler/xlf/FSStrings.pt-BR.xlf index 5c17c16072b..17690fc703d 100644 --- a/src/Compiler/xlf/FSStrings.pt-BR.xlf +++ b/src/Compiler/xlf/FSStrings.pt-BR.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Esse tipo é 'abstrato', pois alguns membros abstratos não receberam uma implementação. Se isso for intencional, adicione o atributo '[<AbstractClass>]' ao seu tipo. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.ru.xlf b/src/Compiler/xlf/FSStrings.ru.xlf index 07467917126..9d6e1832bf7 100644 --- a/src/Compiler/xlf/FSStrings.ru.xlf +++ b/src/Compiler/xlf/FSStrings.ru.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Этот тип является абстрактным ('abstract'), так как для нескольких абстрактных членов не указана реализация. Если это сделано намеренно, добавьте атрибут '[<AbstractClass>]' к своему типу. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.tr.xlf b/src/Compiler/xlf/FSStrings.tr.xlf index c4123c8a985..37b7c963595 100644 --- a/src/Compiler/xlf/FSStrings.tr.xlf +++ b/src/Compiler/xlf/FSStrings.tr.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Bazı soyut üyelere bir uygulama verilmediğinden bu bir 'abstract' türdür. Bu bilerek yapıldıysa türünüze '[<AbstractClass>]' özniteliğini ekleyin. + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.zh-Hans.xlf b/src/Compiler/xlf/FSStrings.zh-Hans.xlf index 4af6f427ebd..3ba86d203d8 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hans.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hans.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - 由于未向一些抽象成员提供实现,因此该类型为 "abstract"。如果是故意如此,请向你的类型添加 "[<AbstractClass>]" 属性。 + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. diff --git a/src/Compiler/xlf/FSStrings.zh-Hant.xlf b/src/Compiler/xlf/FSStrings.zh-Hant.xlf index d945cbe3d33..670e7b26117 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hant.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hant.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - 因為未提供實作給某些抽象成員,所以此類型為 'abstract'。如果這是預期的情況,則請將 '[<AbstractClass>]' 屬性新增到您的類型。 + Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. From 9881e3b215a6b0ae64b83ffacac518314ca6a19d Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 23 Apr 2024 05:14:10 -0700 Subject: [PATCH 06/14] Don't split resumable code (#17076) (#17078) Co-authored-by: Vlad Zarytovskii --- .../.FSharp.Compiler.Service/8.0.400.md | 2 +- src/Compiler/Optimize/Optimizer.fs | 13 ++++- .../Language/StateMachineTests.fs | 55 +++++++++++++++++++ 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md index 56eed1f56bc..16ead61175e 100644 --- a/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md +++ b/docs/release-notes/.FSharp.Compiler.Service/8.0.400.md @@ -8,4 +8,4 @@ * Files passed with -embed:relative/path/to/file are not embedded. ([Issue #16768](https://github.com/dotnet/fsharp/pull/17068)) * Fix bug in optimization of for-loops over integral ranges with steps and units of measure. ([Issue #17025](https://github.com/dotnet/fsharp/issues/17025), [PR #17040](https://github.com/dotnet/fsharp/pull/17040), [PR #17048](https://github.com/dotnet/fsharp/pull/17048)) * Fix calling an overridden virtual static method via the interface ([PR #17013](https://github.com/dotnet/fsharp/pull/17013)) - +* Fix state machines compilation, when big decision trees are involved, by removing code split when resumable code is detected ([PR #17076](https://github.com/dotnet/fsharp/pull/17076)) diff --git a/src/Compiler/Optimize/Optimizer.fs b/src/Compiler/Optimize/Optimizer.fs index fafb8184600..6a26f85ec6f 100644 --- a/src/Compiler/Optimize/Optimizer.fs +++ b/src/Compiler/Optimize/Optimizer.fs @@ -2314,7 +2314,7 @@ let IsILMethodRefSystemStringConcatArray (mref: ILMethodRef) = ilTy.IsNominal && ilTy.TypeRef.Name = "System.String" -> true | _ -> false)) - + let rec IsDebugPipeRightExpr cenv expr = let g = cenv.g match expr with @@ -2329,6 +2329,13 @@ let rec IsDebugPipeRightExpr cenv expr = else false | _ -> false +let inline IsStateMachineExpr g overallExpr = + //printfn "%s" (DebugPrint.showExpr overallExpr) + match overallExpr with + | Expr.App(funcExpr = Expr.Val(valRef = valRef)) -> + isReturnsResumableCodeTy g valRef.TauType + | _ -> false + /// Optimize/analyze an expression let rec OptimizeExpr cenv (env: IncrementalOptimizationEnv) expr = cenv.stackGuard.Guard <| fun () -> @@ -2343,6 +2350,10 @@ let rec OptimizeExpr cenv (env: IncrementalOptimizationEnv) expr = if IsDebugPipeRightExpr cenv expr then OptimizeDebugPipeRights cenv env expr else + let isStateMachineE = IsStateMachineExpr g expr + + let env = { env with disableMethodSplitting = env.disableMethodSplitting || isStateMachineE } + match expr with // treat the common linear cases to avoid stack overflows, using an explicit continuation | LinearOpExpr _ diff --git a/tests/FSharp.Compiler.ComponentTests/Language/StateMachineTests.fs b/tests/FSharp.Compiler.ComponentTests/Language/StateMachineTests.fs index dd031134f63..c4aed123505 100644 --- a/tests/FSharp.Compiler.ComponentTests/Language/StateMachineTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/Language/StateMachineTests.fs @@ -103,6 +103,61 @@ let compute () = for i in 1 .. 100 do compute().Wait () """ + |> withOptimize + |> compileExeAndRun + |> shouldSucceed + + [] // https://github.com/dotnet/fsharp/issues/16068 + let ``Decision tree with 32+ binds with nested expression is not getting splitted and state machine is successfully statically compiles``() = + FSharp """ +module Testing + +let test () = + task { + if true then + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + let c = failwith "" + () + } + +[] +let main _ = + test () |> ignore + printfn "Hello, World!" + 0 +""" + |> ignoreWarnings |> withOptimize |> compileExeAndRun |> shouldSucceed \ No newline at end of file From b4ebffd83d7200cebda2f6ebac5488a4beb76584 Mon Sep 17 00:00:00 2001 From: "Kevin Ransom (msft)" Date: Wed, 15 May 2024 18:32:02 -0700 Subject: [PATCH 07/14] Update VS2017.11 dependencies (#17144) * Update VS2017.11 dependencies * fix dependencies * Update SourceBuildPrebuiltBaseline.xml * Update Versions.xml * oops * oopsie!! * Update sourcebuild prebuilt baselines --------- Co-authored-by: Vlad Zarytovskii --- eng/SourceBuildPrebuiltBaseline.xml | 10 +++- eng/Version.Details.xml | 20 +++---- eng/Versions.props | 57 ++++++++++++------- .../LanguageService/LanguageService.fs | 4 +- .../tests/Salsa/VisualFSharp.Salsa.fsproj | 1 + 5 files changed, 54 insertions(+), 38 deletions(-) diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml index 31c0ad52ed2..f763104b991 100644 --- a/eng/SourceBuildPrebuiltBaseline.xml +++ b/eng/SourceBuildPrebuiltBaseline.xml @@ -12,9 +12,13 @@ - - - + + + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ce2fa382478..305c68faac5 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -7,26 +7,26 @@ - + https://github.com/dotnet/msbuild - 2cbc8b6aef648cf21c6a68a0dab7fe09a614e475 + 2d02daa886f279e2ee749cad03db4b1b75bb9adb - + https://github.com/dotnet/msbuild - 2cbc8b6aef648cf21c6a68a0dab7fe09a614e475 + 2d02daa886f279e2ee749cad03db4b1b75bb9adb - + https://github.com/dotnet/msbuild - 2cbc8b6aef648cf21c6a68a0dab7fe09a614e475 + 2d02daa886f279e2ee749cad03db4b1b75bb9adb - + https://github.com/dotnet/msbuild - 2cbc8b6aef648cf21c6a68a0dab7fe09a614e475 + 2d02daa886f279e2ee749cad03db4b1b75bb9adb - + https://github.com/dotnet/msbuild - 2cbc8b6aef648cf21c6a68a0dab7fe09a614e475 + 2d02daa886f279e2ee749cad03db4b1b75bb9adb diff --git a/eng/Versions.props b/eng/Versions.props index 6146affd95a..af37edf2450 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -78,22 +78,28 @@ + 8.0.0 4.5.1 - 7.0.0 - 1.6.0 - 7.0.2 + $(SystemPackageVersionVersion) + $(SystemPackageVersionVersion) + $(SystemPackageVersionVersion) + $(SystemPackageVersionVersion) 4.5.5 4.7.0 - 7.0.0 - 7.0.0 + $(SystemPackageVersionVersion) 6.0.0 + $(SystemPackageVersionVersion) 4.5.0 + 1.6.0 + - 4.6.0-3.23329.3 - 17.7.25-preview - 17.7.35338-preview.1 - 17.7.58-pre - 17.7.5-preview + 4.11.0-2.24264.2 + 17.10.191 + 17.10.40152 + 17.10.526-pre-g1b474069f5 + 17.10.41 + 17.11.0-preview-24178-03 + $(RoslynVersion) $(RoslynVersion) @@ -104,6 +110,7 @@ $(RoslynVersion) 2.0.28 $(RoslynVersion) + $(MicrosoftVisualStudioShellPackagesVersion) $(MicrosoftVisualStudioShellPackagesVersion) @@ -115,6 +122,7 @@ $(MicrosoftVisualStudioShellPackagesVersion) $(MicrosoftVisualStudioShellPackagesVersion) $(MicrosoftVisualStudioShellPackagesVersion) + $(MicrosoftVisualStudioShellPackagesVersion) $(MicrosoftVisualStudioShellPackagesVersion) $(MicrosoftVisualStudioShellPackagesVersion) $(MicrosoftVisualStudioShellPackagesVersion) @@ -125,11 +133,12 @@ 10.0.30319 11.0.50727 15.0.25123-Dev15Preview + - 17.7.0-preview-23217-02 - 17.7.0-preview-23217-02 - 17.7.0-preview-23217-02 - 17.7.0-preview-23217-02 + $(MicrosoftBuildVersion) + $(MicrosoftBuildVersion) + $(MicrosoftBuildVersion) + $(VisualStudioEditorPackagesVersion) $(VisualStudioEditorPackagesVersion) @@ -146,33 +155,36 @@ 0.1.169-beta $(MicrosoftVisualStudioExtensibilityTestingVersion) $(MicrosoftVisualStudioExtensibilityTestingVersion) + $(MicrosoftVisualStudioThreadingPackagesVersion) + $(VisualStudioProjectSystemPackagesVersion) 2.3.6152103 + - 17.1.4054 - 17.7.3-preview + 17.10.1031-preview2 + 17.10.21 17.0.0 - 17.6.11 + 17.8.8 12.0.4 7.0.4 8.0.4 11.0.4 7.0.4 + 0.2.0 1.0.0 1.1.33 + 0.13.10 2.16.5 4.3.0.0 1.0.31 - 7.0.0 - 7.0.0 - 8.0.0 + $(SystemPackageVersionVersion) 4.3.0-1.22220.8 3.1.0 5.0.0-preview.7.20364.11 @@ -184,12 +196,13 @@ 3.11.0 2.1.80 1.0.0-beta2-dev3 - 2.16.8-preview - 2.9.112 + 2.18.48 + 2.10.69 2.4.1 2.4.2 5.10.3 2.2.0 + 1.0.0-prerelease.23614.4 1.0.0-prerelease.23614.4 diff --git a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs index b492cf1f35f..dfb65ee6742 100644 --- a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs +++ b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs @@ -436,9 +436,7 @@ type internal FSharpPackage() as this = type internal FSharpLanguageService(package: FSharpPackage) = inherit AbstractLanguageService(package) - override _.Initialize() = - base.Initialize() - + member _.Initialize() = let exportProvider = package.ComponentModel.DefaultExportProvider let globalOptions = exportProvider.GetExport().Value diff --git a/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj b/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj index 58862ce6747..374b74b5ca1 100644 --- a/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj +++ b/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj @@ -58,6 +58,7 @@ + From 9b3dc9716e12fbf750063303ec59936569375b27 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 27 May 2024 03:45:52 -0700 Subject: [PATCH 08/14] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2460803 --- vsintegration/src/FSharp.UIResources/xlf/Strings.zh-Hans.xlf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vsintegration/src/FSharp.UIResources/xlf/Strings.zh-Hans.xlf b/vsintegration/src/FSharp.UIResources/xlf/Strings.zh-Hans.xlf index d62cccd1ea3..ac175bc8524 100644 --- a/vsintegration/src/FSharp.UIResources/xlf/Strings.zh-Hans.xlf +++ b/vsintegration/src/FSharp.UIResources/xlf/Strings.zh-Hans.xlf @@ -294,7 +294,7 @@ Always add new line on enter - 始终在点击回车时时添加新行 + 始终在按下 Enter 时添加新行 From e387f540c0da2c3416bc60cae147b9e7afb498a2 Mon Sep 17 00:00:00 2001 From: "Kevin Ransom (msft)" Date: Tue, 4 Jun 2024 17:18:24 -0700 Subject: [PATCH 09/14] Fix sbom generation (#17276) --- eng/Build.ps1 | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/Build.ps1 b/eng/Build.ps1 index 83c40df4f04..104353203df 100644 --- a/eng/Build.ps1 +++ b/eng/Build.ps1 @@ -581,7 +581,6 @@ try { if ($pack) { $properties_storage = $properties - $properties += "/p:GenerateSbom=false" BuildSolution "Microsoft.FSharp.Compiler.sln" $True $properties = $properties_storage } From c7b0e6beb436606d39867b9a7aff6cdb4788744b Mon Sep 17 00:00:00 2001 From: "Kevin Ransom (msft)" Date: Wed, 5 Jun 2024 22:28:35 -0700 Subject: [PATCH 10/14] Back to old vssdk (#17281) --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index af37edf2450..56a5f51a1cd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -164,7 +164,7 @@ 2.3.6152103 - 17.10.1031-preview2 + 17.1.4054 17.10.21 17.0.0 17.8.8 From 28fb2e08e72c66d595109ffbda515609b7d2d6d5 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 18 Jun 2024 15:07:04 +0200 Subject: [PATCH 11/14] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2476477 (#17322) * Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2476477 * Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2476477 --- src/Compiler/xlf/FSComp.txt.cs.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.de.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.es.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.fr.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.it.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.ja.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.ko.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.pl.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.ru.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.tr.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 10 +++++----- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 10 +++++----- src/Compiler/xlf/FSStrings.cs.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.de.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.es.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.fr.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.it.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.ja.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.ko.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.pl.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.pt-BR.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.ru.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.tr.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.zh-Hans.xlf | 14 +++++++------- src/Compiler/xlf/FSStrings.zh-Hant.xlf | 14 +++++++------- 26 files changed, 156 insertions(+), 156 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index e8b29f9dd54..914a722a731 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Tento výraz používá implicitní převod {0} pro převod typu {1} na typ {2}. Přečtěte si téma https://aka.ms/fsharp-implicit-convs. Toto upozornění může být vypnuté pomocí '#nowarn \"3391\". + Tento výraz používá implicitní převod {0} pro převod typu {1} na typ {2}. Přečtěte si téma https://aka.ms/fsharp-implicit-convs. Toto upozornění může být vypnuté pomocí '#nowarn \"3391\". @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' se obvykle používá jako omezení typu v obecném kódu, například \"T when ISomeInterface<'T>\" nebo \"let f (x: #ISomeInterface<_>)\". Pokyny najdete v https://aka.ms/fsharp-iwsams. Toto upozornění můžete zakázat pomocí #nowarn \"3536\" nebo '--nowarn:3536'. + '{0}' se obvykle používá jako omezení typu v obecném kódu, například \"T when ISomeInterface<'T>\" nebo \"let f (x: #ISomeInterface<_>)\". Pokyny najdete v https://aka.ms/fsharp-iwsams. Toto upozornění můžete zakázat pomocí #nowarn \"3536\" nebo '--nowarn:3536'. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - Deklarování \"interfaces with static abstract methods\" (rozhraní se statickými abstraktními metodami) je pokročilá funkce. Pokyny najdete v https://aka.ms/fsharp-iwsams. Toto upozornění můžete zakázat pomocí #nowarn \"3535\" nebo '--nowarn:3535'. + Deklarování \"interfaces with static abstract methods\" (rozhraní se statickými abstraktními metodami) je pokročilá funkce. Pokyny najdete v https://aka.ms/fsharp-iwsams. Toto upozornění můžete zakázat pomocí #nowarn \"3535\" nebo '--nowarn:3535'. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Typ se implicitně odvodil jako obj, což může být nezamýšlené. Zvažte přidání explicitních poznámek k typu. Toto upozornění můžete zakázat pomocí #nowarn 3559 nebo --nowarn:3559. + Typ se implicitně odvodil jako obj, což může být nezamýšlené. Zvažte přidání explicitních poznámek k typu. Toto upozornění můžete zakázat pomocí #nowarn 3559 nebo --nowarn:3559. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Neplatná direktiva. Očekávaná direktiva je #time, #time \"on\" nebo #time \"off\". + Neplatná direktiva. Očekávaná direktiva je #time, #time \"on\" nebo #time \"off\". diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 26932a4dc81..c68fb80d3ba 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Dieser Ausdruck verwendet die implizite Konvertierung "{0}", um den Typ "{1}" in den Typ "{2}" zu konvertieren. Siehe https://aka.ms/fsharp-implicit-convs. Diese Warnung kann durch "#nowarn \" 3391 \ " deaktiviert werden. + Dieser Ausdruck verwendet die implizite Konvertierung "{0}", um den Typ "{1}" in den Typ "{2}" zu konvertieren. Siehe https://aka.ms/fsharp-implicit-convs. Diese Warnung kann durch "#nowarn \" 3391 \ " deaktiviert werden. @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - „{0}“ wird normalerweise als Typeinschränkung im generischen Code verwendet, z. B. \"'T when ISomeInterface<'T>\" oder \"let f (x: #ISomeInterface<_>)\". Anleitungen finden Sie unter https://aka.ms/fsharp-iwsams. Sie können diese Warnung deaktivieren, indem Sie „#nowarn \"3536\"“ or „--nowarn:3536“ verwenden. + „{0}“ wird normalerweise als Typeinschränkung im generischen Code verwendet, z. B. \"'T when ISomeInterface<'T>\" oder \"let f (x: #ISomeInterface<_>)\". Anleitungen finden Sie unter https://aka.ms/fsharp-iwsams. Sie können diese Warnung deaktivieren, indem Sie „#nowarn \"3536\"“ or „--nowarn:3536“ verwenden. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - Das Deklarieren von \"Schnittstellen mit statischen abstrakten Methoden\" ist ein erweitertes Feature. Anleitungen finden Sie unter https://aka.ms/fsharp-iwsams. Sie können diese Warnung deaktivieren, indem Sie „#nowarn \"3535\"“ or „--nowarn:3535“ verwenden. + Das Deklarieren von \"Schnittstellen mit statischen abstrakten Methoden\" ist ein erweitertes Feature. Anleitungen finden Sie unter https://aka.ms/fsharp-iwsams. Sie können diese Warnung deaktivieren, indem Sie „#nowarn \"3535\"“ or „--nowarn:3535“ verwenden. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Ein Typ wurde implizit als "obj" abgeleitet, was möglicherweise unbeabsichtigt ist. Erwägen Sie, explizite Typanmerkungen hinzuzufügen. Sie können diese Warnung deaktivieren, indem Sie "#nowarn \"3559\" oder "--nowarn:3559" verwenden. + Ein Typ wurde implizit als "obj" abgeleitet, was möglicherweise unbeabsichtigt ist. Erwägen Sie, explizite Typanmerkungen hinzuzufügen. Sie können diese Warnung deaktivieren, indem Sie "#nowarn \"3559\" oder "--nowarn:3559" verwenden. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Ungültige Direktive. Erwartet wurde "#time", '#time \"on\"' oder '#time \"off\"'. + Ungültige Direktive. Erwartet wurde "#time", '#time \"on\"' oder '#time \"off\"'. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 5ae9f079d23..abfef6fcb70 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Esta expresión usa la conversión implícita '{0}' para convertir el tipo '{1}' al tipo '{2}'. Consulte https://aka.ms/fsharp-implicit-convs. Esta advertencia se puede deshabilitar mediante '#nowarn \"3391\". + Esta expresión usa la conversión implícita '{0}' para convertir el tipo '{1}' al tipo '{2}'. Consulte https://aka.ms/fsharp-implicit-convs. Esta advertencia se puede deshabilitar mediante '#nowarn \"3391\". @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' se usa normalmente como restricción de tipo en código genérico; por ejemplo, \"'T when ISomeInterface<'T>\" o \"let f (x: #ISomeInterface<_>)\". Consulte https://aka.ms/fsharp-iwsams para obtener instrucciones. Puede deshabilitar esta advertencia con "#nowarn \"3536\"" o "--nowarn:3536". + '{0}' se usa normalmente como restricción de tipo en código genérico; por ejemplo, \"'T when ISomeInterface<'T>\" o \"let f (x: #ISomeInterface<_>)\". Consulte https://aka.ms/fsharp-iwsams para obtener instrucciones. Puede deshabilitar esta advertencia con "#nowarn \"3536\"" o "--nowarn:3536". Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - Declarar \"interfaces con métodos abstractos estáticos\" es una característica avanzada. Consulte https://aka.ms/fsharp-iwsams para obtener instrucciones. Puede deshabilitar esta advertencia con "#nowarn \"3535\"" o "--nowarn:3535". + Declarar \"interfaces con métodos abstractos estáticos\" es una característica avanzada. Consulte https://aka.ms/fsharp-iwsams para obtener instrucciones. Puede deshabilitar esta advertencia con "#nowarn \"3535\"" o "--nowarn:3535". @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Se ha inferido implícitamente un tipo como "obj", lo que puede ser involuntario. Considere agregar anotaciones de tipo explícitas. Puede desactivar esta advertencia utilizando "#nowarn \"3559\"" o "--nowarn:3559". + Se ha inferido implícitamente un tipo como "obj", lo que puede ser involuntario. Considere agregar anotaciones de tipo explícitas. Puede desactivar esta advertencia utilizando "#nowarn \"3559\"" o "--nowarn:3559". @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Directiva no válida. Se esperaba '#time', '#time \"on\"' o '#time \"off\"'. + Directiva no válida. Se esperaba '#time', '#time \"on\"' o '#time \"off\"'. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index a8ae73b3c65..337d95f5ae0 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Cette expression utilise la conversion implicite '{0}' pour convertir le type '{1}' en type '{2}'. Voir https://aka.ms/fsharp-implicit-convs. Cet avertissement peut être désactivé en utilisant '#nowarn \"3391\". + Cette expression utilise la conversion implicite '{0}' pour convertir le type '{1}' en type '{2}'. Voir https://aka.ms/fsharp-implicit-convs. Cet avertissement peut être désactivé en utilisant '#nowarn \"3391\". @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' est généralement utilisée comme contrainte de type dans le code générique, par exemple \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". Consultez https://aka.ms/fsharp-iwsams pour obtenir de l’aide. Vous pouvez désactiver cet avertissement à l’aide de '#nowarn \"3536\"' or '--nowarn:3536'. + '{0}' est généralement utilisée comme contrainte de type dans le code générique, par exemple \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". Consultez https://aka.ms/fsharp-iwsams pour obtenir de l’aide. Vous pouvez désactiver cet avertissement à l’aide de '#nowarn \"3536\"' or '--nowarn:3536'. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - La déclaration de \"interfaces with static abstract methods\" est une fonctionnalité avancée. Consultez https://aka.ms/fsharp-iwsams pour obtenir de l’aide. Vous pouvez désactiver cet avertissement à l’aide de '#nowarn \"3535\"' or '--nowarn:3535'. + La déclaration de \"interfaces with static abstract methods\" est une fonctionnalité avancée. Consultez https://aka.ms/fsharp-iwsams pour obtenir de l’aide. Vous pouvez désactiver cet avertissement à l’aide de '#nowarn \"3535\"' or '--nowarn:3535'. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Un type a été implicitement déduit comme 'obj', ce qui peut être involontaire. Envisagez d'ajouter des annotations de type explicites. Vous pouvez désactiver cet avertissement en utilisant '#nowarn \"3559\"' ou '--nowarn:3559'. + Un type a été implicitement déduit comme 'obj', ce qui peut être involontaire. Envisagez d'ajouter des annotations de type explicites. Vous pouvez désactiver cet avertissement en utilisant '#nowarn \"3559\"' ou '--nowarn:3559'. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Directive non valide. '#time', '#time \"on\"' ou '#time \"off\"' attendu. + Directive non valide. '#time', '#time \"on\"' ou '#time \"off\"' attendu. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 8bfde9a01b8..6f8334aa9a6 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Questa espressione usa la conversione implicita '{0}' per convertire il tipo '{1}' nel tipo '{2}'. Vedere https://aka.ms/fsharp-implicit-convs. Per disabilitare questo avviso, usare '#nowarn \"3391\"'. + Questa espressione usa la conversione implicita '{0}' per convertire il tipo '{1}' nel tipo '{2}'. Vedere https://aka.ms/fsharp-implicit-convs. Per disabilitare questo avviso, usare '#nowarn \"3391\"'. @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' viene in genere usato come vincolo di tipo nel codice generico, ad esempio \"'T when ISomeInterface<'T>\" o \"let f (x: #ISomeInterface<_>)\". Per indicazioni, vedere https://aka.ms/fsharp-iwsams. È possibile disabilitare questo avviso usando '#nowarn \"3536\"' o '--nowarn:3536'. + '{0}' viene in genere usato come vincolo di tipo nel codice generico, ad esempio \"'T when ISomeInterface<'T>\" o \"let f (x: #ISomeInterface<_>)\". Per indicazioni, vedere https://aka.ms/fsharp-iwsams. È possibile disabilitare questo avviso usando '#nowarn \"3536\"' o '--nowarn:3536'. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - La dichiarazione di \"interfaces with static abstract methods\" è una funzionalità avanzata. Per indicazioni, vedere https://aka.ms/fsharp-iwsams. È possibile disabilitare questo avviso usando '#nowarn \"3535\"' o '--nowarn:3535'. + La dichiarazione di \"interfaces with static abstract methods\" è una funzionalità avanzata. Per indicazioni, vedere https://aka.ms/fsharp-iwsams. È possibile disabilitare questo avviso usando '#nowarn \"3535\"' o '--nowarn:3535'. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Un tipo è stato dedotto in modo implicito come 'obj' e ciò potrebbe non essere intenzionale. Provare ad aggiungere annotazioni di tipo esplicite. È possibile disabilitare questo avviso usando '#nowarn \"3559\"' o '--nowarn:3559'. + Un tipo è stato dedotto in modo implicito come 'obj' e ciò potrebbe non essere intenzionale. Provare ad aggiungere annotazioni di tipo esplicite. È possibile disabilitare questo avviso usando '#nowarn \"3559\"' o '--nowarn:3559'. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Direttiva non valida. Previsto '#time', '#time \"on\"' o '#time \"off\"'. + Direttiva non valida. Previsto '#time', '#time \"on\"' o '#time \"off\"'. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 3c1f9932d0c..1f232ffe581 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - この式では、暗黙的な変換 '{0}' を使用して、型 '{1}' を型 '{2}' に変換しています。https://aka.ms/fsharp-implicit-convs をご確認ください。'#nowarn\"3391\" を使用して、この警告を無効にできる可能性があります。 + この式では、暗黙的な変換 '{0}' を使用して、型 '{1}' を型 '{2}' に変換しています。https://aka.ms/fsharp-implicit-convs をご確認ください。'#nowarn\"3391\" を使用して、この警告を無効にできる可能性があります。 @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' は通常、ジェネリック コードの型制約として使用されます (例: \"'T when ISomeInterface<'T>\" または \"let f (x: #ISomeInterface<_>)\")。ガイダンスについては https://aka.ms/fsharp-iwsams を参照してください。この警告は、'#nowarn \"3536\"' または '--nowarn:3536' を使用して無効にできます。 + '{0}' は通常、ジェネリック コードの型制約として使用されます (例: \"'T when ISomeInterface<'T>\" または \"let f (x: #ISomeInterface<_>)\")。ガイダンスについては https://aka.ms/fsharp-iwsams を参照してください。この警告は、'#nowarn \"3536\"' または '--nowarn:3536' を使用して無効にできます。 Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - \"interfaces with static abstract method\" の宣言は高度な機能です。ガイダンスについては https://aka.ms/fsharp-iwsams を参照してください。この警告は、'#nowarn \"3535\"' または '--nowarn:3535' を使用して無効にできます。 + \"interfaces with static abstract method\" の宣言は高度な機能です。ガイダンスについては https://aka.ms/fsharp-iwsams を参照してください。この警告は、'#nowarn \"3535\"' または '--nowarn:3535' を使用して無効にできます。 @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - 型が暗黙的に 'obj' として推論されました。これは意図していない可能性があります。明示的な型の注釈を追加することを検討してください。この警告は、'#nowarn \"3559\"' または '--nowarn:3559' を使用して無効にできます。 + 型が暗黙的に 'obj' として推論されました。これは意図していない可能性があります。明示的な型の注釈を追加することを検討してください。この警告は、'#nowarn \"3559\"' または '--nowarn:3559' を使用して無効にできます。 @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - ディレクティブが無効です。'#time'、'#time \"on\"'、または '#time \"off\"' という形式で指定する必要があります。 + ディレクティブが無効です。'#time'、'#time \"on\"'、または '#time \"off\"' という形式で指定する必要があります。 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index a960ad4399f..cd97e1d7ddd 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - 이 식은 암시적 변환 '{0}'을 사용하여 '{1}' 형식을 '{2}' 형식으로 변환 합니다. https://aka.ms/fsharp-implicit-convs 참조. ’#Nowarn \ "3391\"을 (를) 사용하여 이 경고를 사용 하지 않도록 설정할 수 있습니다. + 이 식은 암시적 변환 '{0}'을 사용하여 '{1}' 형식을 '{2}' 형식으로 변환 합니다. https://aka.ms/fsharp-implicit-convs 참조. ’#Nowarn \ "3391\"을 (를) 사용하여 이 경고를 사용 하지 않도록 설정할 수 있습니다. @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}'은(는) 일반적으로 제네릭 코드에서 형식 제약 조건으로 사용됩니다(예: \"'T when ISomeInterface<'T>\" 또는 \"let f (x: #ISomeInterface<_>)\"). 지침은 https://aka.ms/fsharp-iwsams를 참조하세요. '#nowarn \"3536\"' 또는 '--nowarn:3536'을 사용하여 이 경고를 비활성화할 수 있습니다. + '{0}'은(는) 일반적으로 제네릭 코드에서 형식 제약 조건으로 사용됩니다(예: \"'T when ISomeInterface<'T>\" 또는 \"let f (x: #ISomeInterface<_>)\"). 지침은 https://aka.ms/fsharp-iwsams를 참조하세요. '#nowarn \"3536\"' 또는 '--nowarn:3536'을 사용하여 이 경고를 비활성화할 수 있습니다. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - \"interfaces with static abstract methods\"를 선언하는 것은 고급 기능입니다. 지침은 https://aka.ms/fsharp-iwsams를 참조하세요. '#nowarn \"3535\"' 또는 '--nowarn:3535'를 사용하여 이 경고를 비활성화할 수 있습니다. + \"interfaces with static abstract methods\"를 선언하는 것은 고급 기능입니다. 지침은 https://aka.ms/fsharp-iwsams를 참조하세요. '#nowarn \"3535\"' 또는 '--nowarn:3535'를 사용하여 이 경고를 비활성화할 수 있습니다. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - 형식이 암시적으로 'obj'로 유추되었습니다. 이는 의도하지 않은 것일 수 있습니다. 명시적 형식 주석을 추가하는 것이 좋습니다. 이 경고는 '#nowarn \"3559\"' 또는 '--nowarn:3559'를 사용하여 비활성화할 수 있습니다. + 형식이 암시적으로 'obj'로 유추되었습니다. 이는 의도하지 않은 것일 수 있습니다. 명시적 형식 주석을 추가하는 것이 좋습니다. 이 경고는 '#nowarn \"3559\"' 또는 '--nowarn:3559'를 사용하여 비활성화할 수 있습니다. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - 지시문이 잘못되었습니다. '#time', '#time \"on\"' 또는 '#time \"off\"'가 필요합니다. + 지시문이 잘못되었습니다. '#time', '#time \"on\"' 또는 '#time \"off\"'가 필요합니다. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index bd2facc3cba..9d3f8dfb85c 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - W tym wyrażeniu jest używana bezwzględna konwersja "{0}" w celu przekonwertowania typu "{1}" na typ "{2}". Zobacz https://aka.ms/fsharp-implicit-convs. To ostrzeżenie można wyłączyć przy użyciu polecenia "#nowarn \" 3391 \ ". + W tym wyrażeniu jest używana bezwzględna konwersja "{0}" w celu przekonwertowania typu "{1}" na typ "{2}". Zobacz https://aka.ms/fsharp-implicit-convs. To ostrzeżenie można wyłączyć przy użyciu polecenia "#nowarn \" 3391 \ ". @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - Element „{0}” jest zwykle używany jako ograniczenie typu w kodzie ogólnym, np. \"" T, gdy ISomeInterface<' T>\" lub \"let f (x: #ISomeInterface<_>)\". Aby uzyskać wskazówki, zobacz https://aka.ms/fsharp-iwsams. To ostrzeżenie można wyłączyć, używając polecenia „nowarn \"3536\"" lub "--nowarn:3536”. + Element „{0}” jest zwykle używany jako ograniczenie typu w kodzie ogólnym, np. \"" T, gdy ISomeInterface<' T>\" lub \"let f (x: #ISomeInterface<_>)\". Aby uzyskać wskazówki, zobacz https://aka.ms/fsharp-iwsams. To ostrzeżenie można wyłączyć, używając polecenia „nowarn \"3536\"" lub "--nowarn:3536”. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - Deklarowanie \"interfejsów ze statycznymi metodami abstrakcyjnymi\" jest funkcją zaawansowaną. Aby uzyskać wskazówki, zobacz https://aka.ms/fsharp-iwsams. To ostrzeżenie można wyłączyć przy użyciu polecenia „#nowarn \"3535\"" lub "--nowarn:3535”. + Deklarowanie \"interfejsów ze statycznymi metodami abstrakcyjnymi\" jest funkcją zaawansowaną. Aby uzyskać wskazówki, zobacz https://aka.ms/fsharp-iwsams. To ostrzeżenie można wyłączyć przy użyciu polecenia „#nowarn \"3535\"" lub "--nowarn:3535”. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Typ został niejawnie wywnioskowany jako „obj”, co może być niezamierzone. Rozważ dodanie jawnych adnotacji typu. Możesz wyłączyć to ostrzeżenie, używając polecenia „#nowarn \"3559\"” lub „--nowarn:3559”. + Typ został niejawnie wywnioskowany jako „obj”, co może być niezamierzone. Rozważ dodanie jawnych adnotacji typu. Możesz wyłączyć to ostrzeżenie, używając polecenia „#nowarn \"3559\"” lub „--nowarn:3559”. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Nieprawidłowa dyrektywa. Oczekiwano „#time”, „#time \"on\"” lub „#time \"off\"”. + Nieprawidłowa dyrektywa. Oczekiwano „#time”, „#time \"on\"” lub „#time \"off\"”. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 59138d83890..5e3ec57a18c 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Essa expressão usa a conversão implícita '{0}' para converter o tipo '{1}' ao tipo '{2}'. Consulte https://aka.ms/fsharp-implicit-convs. Este aviso pode ser desabilitado usando '#nowarn\"3391\". + Essa expressão usa a conversão implícita '{0}' para converter o tipo '{1}' ao tipo '{2}'. Consulte https://aka.ms/fsharp-implicit-convs. Este aviso pode ser desabilitado usando '#nowarn\"3391\". @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' normalmente é usado como uma restrição de tipo em código genérico, por exemplo, \"'T when ISomeInterface<'T>\" ou \"let f (x: #ISomeInterface<_>)\". Confira https://aka.ms/fsharp-iwsams para obter as diretrizes. Você pode desabilitar este aviso usando '#nowarn \"3536\"' ou '--nowarn:3536'. + '{0}' normalmente é usado como uma restrição de tipo em código genérico, por exemplo, \"'T when ISomeInterface<'T>\" ou \"let f (x: #ISomeInterface<_>)\". Confira https://aka.ms/fsharp-iwsams para obter as diretrizes. Você pode desabilitar este aviso usando '#nowarn \"3536\"' ou '--nowarn:3536'. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - Declarando \"interfaces com métodos abstratos estáticos\" é um recurso avançado. Consulte https://aka.ms/fsharp-iwsams para obter diretrizes. Você pode desabilitar esse aviso usando '#nowarn \"3535\"' ou '--nowarn:3535'. + Declarando \"interfaces com métodos abstratos estáticos\" é um recurso avançado. Consulte https://aka.ms/fsharp-iwsams para obter diretrizes. Você pode desabilitar esse aviso usando '#nowarn \"3535\"' ou '--nowarn:3535'. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Um tipo foi implicitamente inferido como 'obj', que pode não ser intencional. Considere adicionar anotações de tipo explícitas. Você pode desabilitar esse aviso usando '#nowarn \"3559\"' ou '--nowarn:3559'. + Um tipo foi implicitamente inferido como 'obj', que pode não ser intencional. Considere adicionar anotações de tipo explícitas. Você pode desabilitar esse aviso usando '#nowarn \"3559\"' ou '--nowarn:3559'. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Diretiva inválida. '#time', '#time \"on\"' ou '#time \"off\"' era esperado. + Diretiva inválida. '#time', '#time \"on\"' ou '#time \"off\"' era esperado. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 58c625f0746..44faea3b20f 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Это выражение использует неявное преобразование "{0}" для преобразования типа "{1}" в тип "{2}". См. сведения на странице https://aka.ms/fsharp-implicit-convs. Это предупреждение можно отключить, используя параметр '#nowarn \"3391\" + Это выражение использует неявное преобразование "{0}" для преобразования типа "{1}" в тип "{2}". См. сведения на странице https://aka.ms/fsharp-implicit-convs. Это предупреждение можно отключить, используя параметр '#nowarn \"3391\" @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - "{0}" обычно используется в качестве ограничения типа в универсальном коде, например \"'T when ISomeInterface<"T>\" или \"let f (x: #ISomeInterface<_>)\". См. руководство на https://aka.ms/fsharp-iwsams. Это предупреждение можно отключить с помощью "#nowarn \"3536\"" или "--nowarn:3536". + "{0}" обычно используется в качестве ограничения типа в универсальном коде, например \"'T when ISomeInterface<"T>\" или \"let f (x: #ISomeInterface<_>)\". См. руководство на https://aka.ms/fsharp-iwsams. Это предупреждение можно отключить с помощью "#nowarn \"3536\"" или "--nowarn:3536". Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - Объявление \"интерфейсов со статическими абстрактными методами\" является расширенной функцией. См. руководство на https://aka.ms/fsharp-iwsams. Это предупреждение можно отключить с помощью используя "#nowarn \"3535\"" or "--nowarn:3535". + Объявление \"интерфейсов со статическими абстрактными методами\" является расширенной функцией. См. руководство на https://aka.ms/fsharp-iwsams. Это предупреждение можно отключить с помощью используя "#nowarn \"3535\"" or "--nowarn:3535". @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Тип неявно определен как "obj", что может быть непреднамеренными. Рекомендуется добавить явные аннотации к типу. Это предупреждение можно отключить с помощью "#nowarn \"3559\"" или "--nowarn:3559". + Тип неявно определен как "obj", что может быть непреднамеренными. Рекомендуется добавить явные аннотации к типу. Это предупреждение можно отключить с помощью "#nowarn \"3559\"" или "--nowarn:3559". @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Недопустимая директива. Требуется ''#time'', ''#time \"on\"'' или ''#time \"off\"''. + Недопустимая директива. Требуется ''#time'', ''#time \"on\"'' или ''#time \"off\"''. diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index cfe703430c0..309efbca1bd 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - Bu ifade '{1}' türünü '{2}' türüne dönüştürmek için '{0}' örtük dönüştürmesini kullanır. https://aka.ms/fsharp-implicit-convs adresine bakın. Bu uyarı '#nowarn \"3391\" kullanılarak devre dışı bırakılabilir. + Bu ifade '{1}' türünü '{2}' türüne dönüştürmek için '{0}' örtük dönüştürmesini kullanır. https://aka.ms/fsharp-implicit-convs adresine bakın. Bu uyarı '#nowarn \"3391\" kullanılarak devre dışı bırakılabilir. @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' normalde genel kodda tür kısıtlaması olarak kullanılır, ör. \"'T when ISomeInterface<'T>\" veya \"let f (x: #ISomeInterface<_>)\". Rehber için bkz. https://aka.ms/fsharp-iwsams. '#nowarn \"3536\"' veya '--nowarn:3536' kullanarak bu uyarıyı devre dışı bırakabilirsiniz. + '{0}' normalde genel kodda tür kısıtlaması olarak kullanılır, ör. \"'T when ISomeInterface<'T>\" veya \"let f (x: #ISomeInterface<_>)\". Rehber için bkz. https://aka.ms/fsharp-iwsams. '#nowarn \"3536\"' veya '--nowarn:3536' kullanarak bu uyarıyı devre dışı bırakabilirsiniz. Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - \"interfaces with static abstract methods\" bildirimi gelişmiş bir özelliktir. Rehber için bkz. https://aka.ms/fsharp-iwsams. '#nowarn \"3535\"' veya '--nowarn:3535'. kullanarak bu uyarıyı devre dışı bırakabilirsiniz. + \"interfaces with static abstract methods\" bildirimi gelişmiş bir özelliktir. Rehber için bkz. https://aka.ms/fsharp-iwsams. '#nowarn \"3535\"' veya '--nowarn:3535'. kullanarak bu uyarıyı devre dışı bırakabilirsiniz. @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - Tür örtük bir şekilde 'obj' olarak çıkarsandı. Bu, beklenmeyen bir durum olabilir. Açık tür ek açıklamaları eklemeyi deneyin. '#nowarn \"3559\"' veya '--nowarn:3559' kullanarak bu uyarıyı devre dışı bırakabilirsiniz. + Tür örtük bir şekilde 'obj' olarak çıkarsandı. Bu, beklenmeyen bir durum olabilir. Açık tür ek açıklamaları eklemeyi deneyin. '#nowarn \"3559\"' veya '--nowarn:3559' kullanarak bu uyarıyı devre dışı bırakabilirsiniz. @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - Geçersiz yönerge. Beklenen: '#time', '#time \"on\"' veya '#time \"off\"'. + Geçersiz yönerge. Beklenen: '#time', '#time \"on\"' veya '#time \"off\"'. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index d707003f18f..ff873d965f1 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - 此表达式使用隐式转换“{0}”将类型“{1}”转换为类型“{2}”。请参阅 https://aka.ms/fsharp-implicit-convs。可使用 '#nowarn \"3391\" 禁用此警告。 + 此表达式使用隐式转换“{0}”将类型“{1}”转换为类型“{2}”。请参阅 https://aka.ms/fsharp-implicit-convs。可使用 '#nowarn \"3391\" 禁用此警告。 @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - "{0}" 通常用作泛型代码中的类型约束,例如 \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\"。有关指南,请参阅 https://aka.ms/fsharp-iwsams。可以使用 '#nowarn \"3536\"' 或 '--nowarn:3536' 禁用此警告。 + "{0}" 通常用作泛型代码中的类型约束,例如 \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\"。有关指南,请参阅 https://aka.ms/fsharp-iwsams。可以使用 '#nowarn \"3536\"' 或 '--nowarn:3536' 禁用此警告。 Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - 声明“使用静态抽象方法的接口”是一项高级功能。有关指南,请参阅 https://aka.ms/fsharp-iwsams。可以使用 "#nowarn \"3535\"' 或 '--nowarn:3535' 禁用此警告。 + 声明“使用静态抽象方法的接口”是一项高级功能。有关指南,请参阅 https://aka.ms/fsharp-iwsams。可以使用 "#nowarn \"3535\"' 或 '--nowarn:3535' 禁用此警告。 @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - 类型已被隐式推断为 "obj",这可能是意外的。请考虑添加显式类型注释。可以使用"#nowarn\"3559\" 或 "--nowarn:3559" 禁用此警告。 + 类型已被隐式推断为 "obj",这可能是意外的。请考虑添加显式类型注释。可以使用"#nowarn\"3559\" 或 "--nowarn:3559" 禁用此警告。 @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - 指令无效。应为 '#time'、'#time \"on\"' 或 '#time \"off\"'。 + 指令无效。应为 '#time'、'#time \"on\"' 或 '#time \"off\"'。 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 5cc67b951b6..11417c7b243 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -1279,7 +1279,7 @@ This expression uses the implicit conversion '{0}' to convert type '{1}' to type '{2}'. See https://aka.ms/fsharp-implicit-convs. This warning may be disabled using '#nowarn \"3391\". - 此運算式使用隱含轉換 '{0}' 將類型 '{1}' 轉換為類型 '{2}'。請參閱 https://aka.ms/fsharp-implicit-convs。可使用 '#nowarn \"3391\" 停用此警告。 + 此運算式使用隱含轉換 '{0}' 將類型 '{1}' 轉換為類型 '{2}'。請參閱 https://aka.ms/fsharp-implicit-convs。可使用 '#nowarn \"3391\" 停用此警告。 @@ -1534,12 +1534,12 @@ '{0}' is normally used as a type constraint in generic code, e.g. \"'T when ISomeInterface<'T>\" or \"let f (x: #ISomeInterface<_>)\". See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3536\"' or '--nowarn:3536'. - '{0}' 通常做為一般程式碼中的類型限制式,例如 \"'T when ISomeInterface<'T>\" 或 \"let f (x: #ISomeInterface<_>)\"。請參閱 https://aka.ms/fsharp-iwsams 以尋求指引。您可以使用 '#nowarn \"3536\"' 或 '--nowarn:3536' 來停用此警告。 + '{0}' 通常做為一般程式碼中的類型限制式,例如 \"'T when ISomeInterface<'T>\" 或 \"let f (x: #ISomeInterface<_>)\"。請參閱 https://aka.ms/fsharp-iwsams 以尋求指引。您可以使用 '#nowarn \"3536\"' 或 '--nowarn:3536' 來停用此警告。 Declaring \"interfaces with static abstract methods\" is an advanced feature. See https://aka.ms/fsharp-iwsams for guidance. You can disable this warning by using '#nowarn \"3535\"' or '--nowarn:3535'. - 使用「靜態抽象方法宣告介面」是進階的功能。請參閱 https://aka.ms/fsharp-iwsams 以尋求指引。您可以使用 '#nowarn \"3535\"' 或 '--nowarn:3535' 來停用此警告。 + 使用「靜態抽象方法宣告介面」是進階的功能。請參閱 https://aka.ms/fsharp-iwsams 以尋求指引。您可以使用 '#nowarn \"3535\"' 或 '--nowarn:3535' 來停用此警告。 @@ -1564,7 +1564,7 @@ A type has been implicitly inferred as 'obj', which may be unintended. Consider adding explicit type annotations. You can disable this warning by using '#nowarn \"3559\"' or '--nowarn:3559'. - 類型已隱含推斷為 'obj',這可能是意外的。請考慮新增明確類型註釋。您可以使用 '#nowarn \"3559\" 或 '--nowarn:3559' 停用此警告。 + 類型已隱含推斷為 'obj',這可能是意外的。請考慮新增明確類型註釋。您可以使用 '#nowarn \"3559\" 或 '--nowarn:3559' 停用此警告。 @@ -1899,7 +1899,7 @@ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - 無效的指示詞。必須是 '#time'、'#time \"on\"' 或 '#time \"off\"'。 + 無效的指示詞。必須是 '#time'、'#time \"on\"' 或 '#time \"off\"'。 diff --git a/src/Compiler/xlf/FSStrings.cs.xlf b/src/Compiler/xlf/FSStrings.cs.xlf index 08a6f7c7b13..4e2b36b0525 100644 --- a/src/Compiler/xlf/FSStrings.cs.xlf +++ b/src/Compiler/xlf/FSStrings.cs.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - U tohoto rekurzivního použití se bude kontrolovat stabilita inicializace za běhu. Toto upozornění je obvykle neškodné a pomocí #nowarn "21" nebo --nowarn:21 se dá potlačit. + U tohoto rekurzivního použití se bude kontrolovat stabilita inicializace za běhu. Toto upozornění je obvykle neškodné a pomocí #nowarn "21" nebo --nowarn:21 se dá potlačit. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - U tohoto a dalších rekurzivních odkazů na definované objekty se bude kontrolovat stabilita inicializace za běhu pomocí zpožděného odkazování. Je to kvůli tomu, že definujete rekurzivní objekty místo rekurzivních funkcí. Toto upozornění se dá pomocí #nowarn "40" nebo --nowarn:40 potlačit. + U tohoto a dalších rekurzivních odkazů na definované objekty se bude kontrolovat stabilita inicializace za běhu pomocí zpožděného odkazování. Je to kvůli tomu, že definujete rekurzivní objekty místo rekurzivních funkcí. Toto upozornění se dá pomocí #nowarn "40" nebo --nowarn:40 potlačit. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Toto upozornění se dá pomocí --nowarn:57 nebo #nowarn "57" vypnout. + {0}. Toto upozornění se dá pomocí --nowarn:57 nebo #nowarn "57" vypnout. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - Použití tohoto konstruktoru může způsobit vygenerování neověřitelného kódu .NET IL. Toto upozornění se dá pomocí --nowarn:9 nebo #nowarn "9" vypnout. + Použití tohoto konstruktoru může způsobit vygenerování neověřitelného kódu .NET IL. Toto upozornění se dá pomocí --nowarn:9 nebo #nowarn "9" vypnout. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Implementace rozhraní by obvykle měly být zadány pro počáteční deklaraci typu. Implementace rozhraní v rozšířeních mohou vést k přístupu ke statickým vazbám před jejich inicializací, ale pouze v případě, že je implementace rozhraní vyvolána během inicializace statických dat a následně umožní přístup ke statickým datům. Toto upozornění můžete odebrat pomocí #nowarn „69“, pokud jste ověřili, že tomu tak není. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - Direktivy #I se můžou vyskytovat jenom v souborech skriptu F# (s příponou .fsx nebo .fsscript). Přesuňte tento kód do souboru skriptu nebo přidejte pro tento odkaz možnost kompilátoru -I anebo direktivu ohraničte pomocí notace #if INTERACTIVE/#endif. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - Direktivy #r se můžou vyskytovat jenom v souborech skriptu F# (s příponou .fsx nebo .fsscript). Buď přesuňte tento kód do souboru skriptu, nebo nahraďte tento odkaz možností kompilátoru -r. Pokud se tato direktiva provádí jako uživatelský vstup, můžete ji ohraničit pomocí notace #if INTERACTIVE'/'#endif. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.de.xlf b/src/Compiler/xlf/FSStrings.de.xlf index 3664234500c..705887c6518 100644 --- a/src/Compiler/xlf/FSStrings.de.xlf +++ b/src/Compiler/xlf/FSStrings.de.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - Diese rekursive Verwendung wird zur Laufzeit auf ihre ordnungsgemäße Initialisierung geprüft. Diese Warnung ist in der Regel harmlos und kann mithilfe von "#nowarn "21"" oder "--nowarn 21" unterdrückt werden. + Diese rekursive Verwendung wird zur Laufzeit auf ihre ordnungsgemäße Initialisierung geprüft. Diese Warnung ist in der Regel harmlos und kann mithilfe von "#nowarn "21"" oder "--nowarn 21" unterdrückt werden. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - Dieser und andere rekursive Verweise auf das bzw. die definierte(n) Objekt(e) werden zur Laufzeit mithilfe eines verzögerten Verweises auf ihre ordnungsgemäße Initialisierung geprüft. Der Grund hierfür ist, dass Sie mindestens ein rekursives Objekt definieren, keine rekursiven Funktionen. Diese Warnung kann mithilfe von "#nowarn "40"" oder "--nowarn 40" unterdrückt werden. + Dieser und andere rekursive Verweise auf das bzw. die definierte(n) Objekt(e) werden zur Laufzeit mithilfe eines verzögerten Verweises auf ihre ordnungsgemäße Initialisierung geprüft. Der Grund hierfür ist, dass Sie mindestens ein rekursives Objekt definieren, keine rekursiven Funktionen. Diese Warnung kann mithilfe von "#nowarn "40"" oder "--nowarn 40" unterdrückt werden. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Diese Warnung kann mit "--nowarn 57" oder "#nowarn "57"" deaktiviert werden. + {0}. Diese Warnung kann mit "--nowarn 57" oder "#nowarn "57"" deaktiviert werden. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - Die Verwendung dieses Konstrukts kann die Erzeugung von nicht verifizierbarem .NET-IL-Code zur Folge haben. Diese Warnung kann mit "--nowarn 9" oder "#nowarn "9"" deaktiviert werden. + Die Verwendung dieses Konstrukts kann die Erzeugung von nicht verifizierbarem .NET-IL-Code zur Folge haben. Diese Warnung kann mit "--nowarn 9" oder "#nowarn "9"" deaktiviert werden. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Die Implementierung von Schnittstellen sollte normalerweise in der ersten Deklaration eines Typs angegeben werden. Schnittstellenimplementierungen in Augmentationen können dazu führen, dass vor der Initialisierung auf statische Bindungen zugegriffen wird. Die gilt allerdings nur, wenn die Schnittstellenimplementierung während der Initialisierung der statischen Daten aufgerufen wird, und wiederum auf die statischen Daten zugreift. Sie können diese Warnung mit #nowarn "69" entfernen, wenn Sie überprüft haben, dass dies nicht der Fall ist. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I-Direktiven dürfen nur in F#-Skriptdateien (Dateierweiterungen .fsx oder .fsscript) verwendet werden. Verschieben Sie entweder diesen Code in eine Skriptdatei, fügen Sie die Compileroption "-I" für diesen Verweis hinzu, oder trennen Sie die Direktive mit "#if INTERACTIVE"/"#endif" ab. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r-Anweisungen dürfen nur in F#-Skriptdateien (Dateierweiterungen .fsx oder .fsscript) verwendet werden. Verschieben Sie entweder diesen Code in eine Skriptdatei, oder ersetzen Sie diesen Verweis durch die Compileroption "-r". Wenn diese Anweisung als Benutzereingabe ausgeführt wird, trennen Sie sie mit "#if INTERACTIVE"/"#endif" ab. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.es.xlf b/src/Compiler/xlf/FSStrings.es.xlf index a26fd4f604f..4e84de8d627 100644 --- a/src/Compiler/xlf/FSStrings.es.xlf +++ b/src/Compiler/xlf/FSStrings.es.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - Este uso recursivo se comprobará para ver si tiene inicialización silenciosa en tiempo de ejecución. Esta advertencia suele ser inocua y se puede suprimir con '#nowarn "21"' o '--nowarn:21'. + Este uso recursivo se comprobará para ver si tiene inicialización silenciosa en tiempo de ejecución. Esta advertencia suele ser inocua y se puede suprimir con '#nowarn "21"' o '--nowarn:21'. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - Esta y otras referencias recursivas al objeto que se va a definir se comprobarán para ver si tienen inicialización silenciosa en tiempo de ejecución mediante el uso de una referencia retardada. Esto se debe a que está definiendo uno o varios objetos recursivos en lugar de funciones recursivas. Esta advertencia se puede suprimir con '#nowarn "40" o --nowarn:40'. + Esta y otras referencias recursivas al objeto que se va a definir se comprobarán para ver si tienen inicialización silenciosa en tiempo de ejecución mediante el uso de una referencia retardada. Esto se debe a que está definiendo uno o varios objetos recursivos en lugar de funciones recursivas. Esta advertencia se puede suprimir con '#nowarn "40" o --nowarn:40'. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Esta advertencia se puede deshabilitar con '--nowarn:57' o '#nowarn "57"'. + {0}. Esta advertencia se puede deshabilitar con '--nowarn:57' o '#nowarn "57"'. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - El uso de esta construcción puede dar lugar a que se genere código .NET de IL que no se puede comprobar. Esta advertencia se puede deshabilitar con '--nowarn:9' o '#nowarn "9"'. + El uso de esta construcción puede dar lugar a que se genere código .NET de IL que no se puede comprobar. Esta advertencia se puede deshabilitar con '--nowarn:9' o '#nowarn "9"'. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Normalmente, las implementaciones de interfaz deben proporcionarse en la declaración inicial de un tipo. Las implementaciones de interfaz en aumentos pueden dar lugar al acceso a enlaces estáticos antes de inicializarse, aunque solo si la implementación de interfaz se invoca durante la inicialización de los datos estáticos y, a su vez, obtiene acceso a los datos estáticos. Puede quitar esta advertencia con #nowarn "69" si ha comprobado que este no es el caso. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - Las directivas #I pueden existir solo en archivos de script de F# (extensiones .fsx o .fsscript). Mueva este código a un archivo de script, agregue una opción de compilador '-I' para esta referencia o delimite la directiva con '#if INTERACTIVE'/'#endif'. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - Las directivas #r pueden existir solo en archivos de script de F# (extensiones .fsx o .fsscript). Mueva este código a un archivo de script o sustituta esta referencia por la opción de compilador '-r'. Si esta directiva se ejecuta como entrada de usuario, puede delimitarla con '#if INTERACTIVE'/'#endif'. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.fr.xlf b/src/Compiler/xlf/FSStrings.fr.xlf index a18722f123c..290dcae8634 100644 --- a/src/Compiler/xlf/FSStrings.fr.xlf +++ b/src/Compiler/xlf/FSStrings.fr.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - Cette utilisation récursive sera soumise à un contrôle de l'initialisation au moment de l'exécution. En règle générale, cet avertissement est sans danger et peut être supprimé à l'aide de '#nowarn "21"' ou '--nowarn:21'. + Cette utilisation récursive sera soumise à un contrôle de l'initialisation au moment de l'exécution. En règle générale, cet avertissement est sans danger et peut être supprimé à l'aide de '#nowarn "21"' ou '--nowarn:21'. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - Toutes les références récursives aux objets définis seront soumises à un contrôle de l'initialisation au moment de l'exécution via l'utilisation d'une référence différée. En effet, vous définissez un ou plusieurs objets récursifs à la place de fonctions récursives. Cet avertissement peut être supprimé à l'aide de '#nowarn "40"' ou '--nowarn:40'. + Toutes les références récursives aux objets définis seront soumises à un contrôle de l'initialisation au moment de l'exécution via l'utilisation d'une référence différée. En effet, vous définissez un ou plusieurs objets récursifs à la place de fonctions récursives. Cet avertissement peut être supprimé à l'aide de '#nowarn "40"' ou '--nowarn:40'. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Cet avertissement peut être désactivé à l'aide de '--nowarn:57' ou '#nowarn "57"'. + {0}. Cet avertissement peut être désactivé à l'aide de '--nowarn:57' ou '#nowarn "57"'. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - Les utilisations de cette construction peuvent entraîner la génération de code IL (Intermediate Language) .NET non vérifiable. Cet avertissement peut être désactivé à l'aide de '--nowarn:9' ou '#nowarn "9"'. + Les utilisations de cette construction peuvent entraîner la génération de code IL (Intermediate Language) .NET non vérifiable. Cet avertissement peut être désactivé à l'aide de '--nowarn:9' ou '#nowarn "9"'. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Les implémentations d’interfaces doivent normalement être fournies lors de la déclaration initiale d’un type. Les implémentations d’interface dans les augmentations peuvent entraîner l’accès à des liaisons statiques avant leur initialisation, mais seulement si l’implémentation de l’interface est invoquée pendant l’initialisation des données statiques, et accède à son tour aux données statiques. Vous pouvez supprimer cet avertissement en utilisant #nowarn « 69 » si vous avez vérifié que ce n’est pas le cas. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - Les directives #I ne peuvent être présentes que dans les fichiers de script F# (extensions .fsx ou .fsscript). Déplacez ce code vers un fichier de script, ajoutez une option de compilateur '-I' pour cette référence ou délimitez la directive par '#if INTERACTIVE'/'#endif'. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - Les directives #r ne peuvent être présentes que dans les fichiers de script F# (extensions .fsx ou .fsscript). Déplacez ce code vers un fichier de script ou remplacez cette référence par l'option de compilateur '-r'. Si cette directive est exécutée en tant qu'entrée d'utilisateur, vous pouvez la délimiter avec '#if INTERACTIVE'/'#endif'. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.it.xlf b/src/Compiler/xlf/FSStrings.it.xlf index 2d8471fd25e..50e1808b266 100644 --- a/src/Compiler/xlf/FSStrings.it.xlf +++ b/src/Compiler/xlf/FSStrings.it.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - La correttezza dell'inizializzazione al runtime di questo utilizzo ricorsivo verrà verificata. Questo avviso non indica in genere un problema concreto e può essere disabilitato mediante '#nowarn "21"' o '--nowarn:21'. + La correttezza dell'inizializzazione al runtime di questo utilizzo ricorsivo verrà verificata. Questo avviso non indica in genere un problema concreto e può essere disabilitato mediante '#nowarn "21"' o '--nowarn:21'. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - Questo e altri riferimenti ricorsivi a uno o più oggetti in fase di definizione verranno controllati per verificare la correttezza dell'inizializzazione al runtime tramite un riferimento ritardato. Tale verifica è necessaria perché si stanno definendo uno o più oggetti ricorsivi, invece di funzioni ricorsive. La visualizzazione di questo avviso può essere impedita mediante '#nowarn "40"' o '--nowarn:40'. + Questo e altri riferimenti ricorsivi a uno o più oggetti in fase di definizione verranno controllati per verificare la correttezza dell'inizializzazione al runtime tramite un riferimento ritardato. Tale verifica è necessaria perché si stanno definendo uno o più oggetti ricorsivi, invece di funzioni ricorsive. La visualizzazione di questo avviso può essere impedita mediante '#nowarn "40"' o '--nowarn:40'. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Questo avviso può essere disabilitato mediante '--nowarn:57' o '#nowarn "57"'. + {0}. Questo avviso può essere disabilitato mediante '--nowarn:57' o '#nowarn "57"'. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - Gli utilizzi di questo costruttore potrebbero determinare la generazione di codice IL .NET non verificabile. Questo avviso può essere disabilitato mediante '--nowarn:9' o '#nowarn "9"'. + Gli utilizzi di questo costruttore potrebbero determinare la generazione di codice IL .NET non verificabile. Questo avviso può essere disabilitato mediante '--nowarn:9' o '#nowarn "9"'. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - In genere, le implementazioni di interfaccia devono essere specificate nella dichiarazione iniziale di un tipo. Le implementazioni di interfaccia negli aumenti possono portare all'accesso ai binding statici prima dell'inizializzazione, anche se l'implementazione dell'interfaccia viene richiamata durante l'inizializzazione dei dati statici e a sua volta accede ai dati statici. È possibile rimuovere questo avviso utilizzando #nowarn "69" se è stato verificato che il caso specifico non lo richiede. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - Le direttive #I possono trovarsi solo in file di script F# (estensioni fsx o fsscript). Spostare il codice in un file di script, aggiungere un'opzione di compilazione '-I' per questo riferimento oppure delimitare la direttiva con '#if INTERACTIVE'/'#endif'. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - Le direttive #r possono trovarsi solo in file di script F# (estensioni fsx o fsscript). Spostare il codice in un file di script oppure sostituire questo riferimento con l'opzione del compilatore '-r'. Se questa direttiva viene eseguita come input utente, è possibile delimitarla con '#if INTERACTIVE'/'#endif'. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.ja.xlf b/src/Compiler/xlf/FSStrings.ja.xlf index 767e222447f..595d7054e81 100644 --- a/src/Compiler/xlf/FSStrings.ja.xlf +++ b/src/Compiler/xlf/FSStrings.ja.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - この再帰的な用法は、実行時に初期化の正常性がチェックされます。通常、この警告は害がないため、'#nowarn "21"' または '--nowarn:21' を使用して抑制することができます。 + この再帰的な用法は、実行時に初期化の正常性がチェックされます。通常、この警告は害がないため、'#nowarn "21"' または '--nowarn:21' を使用して抑制することができます。 @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - 定義されるオブジェクトに対するこの再帰参照および他の再帰参照は、遅延参照を使用して、実行時に初期化の正常性がチェックされます。これは、再帰関数ではなく、1 つまたは複数の再帰オブジェクトを定義しているためです。この警告を抑制するには、'#nowarn "40"' または '--nowarn:40' を使用してください。 + 定義されるオブジェクトに対するこの再帰参照および他の再帰参照は、遅延参照を使用して、実行時に初期化の正常性がチェックされます。これは、再帰関数ではなく、1 つまたは複数の再帰オブジェクトを定義しているためです。この警告を抑制するには、'#nowarn "40"' または '--nowarn:40' を使用してください。 @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}。この警告を無効にするには、'--nowarn:57' または '#nowarn "57"' を使用します。 + {0}。この警告を無効にするには、'--nowarn:57' または '#nowarn "57"' を使用します。 Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - このコンストラクトを使用すると、検証できない .NET IL コードが生成される可能性があります。この警告を無効にするには、'--nowarn:9' または '#nowarn "9"' を使用してください。 + このコンストラクトを使用すると、検証できない .NET IL コードが生成される可能性があります。この警告を無効にするには、'--nowarn:9' または '#nowarn "9"' を使用してください。 @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - インターフェイスの実装には、通常、最初に型を指定する必要があります。拡張のインターフェイス実装は、初期化前に静的バインディングにアクセスする可能性があります。ただし、静的データの初期化中にインターフェイスの実装が呼び出され、静的データにアクセスする場合のみです。この警告は、#nowarn "69" を使用して削除できます。この点をすでにチェックしている場合は該当しません。 + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I ディレクティブを使用できるのは F# スクリプト ファイル (拡張子は .fsx または .fsscript) のみです。このコードをスクリプト ファイルに移動するか、この参照に '-I' コンパイラー オプションを追加するか、ディレクティブを '#if INTERACTIVE'/'#endif' で区切ってください。 + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r ディレクティブは F# スクリプト ファイル (拡張子は .fsx または .fsscript) 内でのみ使用できます。このコードをスクリプト ファイルに移動するか、この参照を '-r' コンパイラ オプションに置き換えてください。このディレクティブがユーザー入力として実行されている場合は、'#if INTERACTIVE'/'#endif' でディレクティブを区切ることができます。 + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.ko.xlf b/src/Compiler/xlf/FSStrings.ko.xlf index dbb550709a1..a197fac66f7 100644 --- a/src/Compiler/xlf/FSStrings.ko.xlf +++ b/src/Compiler/xlf/FSStrings.ko.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - 이러한 재귀적 사용은 런타임에 초기화 적합성이 확인됩니다. 이 경고는 일반적으로 무해하며 '#nowarn "21"' 또는 '--nowarn:21'을 사용하여 표시하지 않을 수 있습니다. + 이러한 재귀적 사용은 런타임에 초기화 적합성이 확인됩니다. 이 경고는 일반적으로 무해하며 '#nowarn "21"' 또는 '--nowarn:21'을 사용하여 표시하지 않을 수 있습니다. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - 이 재귀 참조와 정의 대상 개체에 대한 기타 재귀 참조는 런타임에 지연된 참조를 사용하여 초기화 적합성이 확인됩니다. 이는 사용자가 재귀 함수 대신 하나 이상의 재귀적 개체를 정의하기 때문입니다. 이 경고는 '#nowarn "40"' 또는 '--nowarn:40'을 사용하여 표시하지 않을 수 있습니다. + 이 재귀 참조와 정의 대상 개체에 대한 기타 재귀 참조는 런타임에 지연된 참조를 사용하여 초기화 적합성이 확인됩니다. 이는 사용자가 재귀 함수 대신 하나 이상의 재귀적 개체를 정의하기 때문입니다. 이 경고는 '#nowarn "40"' 또는 '--nowarn:40'을 사용하여 표시하지 않을 수 있습니다. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. 이 경고는 '--nowarn:57' 또는 '#nowarn "57"'을 통해 사용할 수 없도록 설정할 수 있습니다. + {0}. 이 경고는 '--nowarn:57' 또는 '#nowarn "57"'을 통해 사용할 수 없도록 설정할 수 있습니다. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - 이 구문을 사용하면 확인할 수 없는 .NET IL 코드가 생성될 수 있습니다. 이 경고는 '--nowarn:9' 또는 '#nowarn "9"'를 통해 사용할 수 없도록 설정할 수 있습니다. + 이 구문을 사용하면 확인할 수 없는 .NET IL 코드가 생성될 수 있습니다. 이 경고는 '--nowarn:9' 또는 '#nowarn "9"'를 통해 사용할 수 없도록 설정할 수 있습니다. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - 인터페이스 구현은 일반적으로 유형의 초기 선언에 제공되어야 합니다. 확대의 인터페이스 구현은 초기화되기 전에 정적 바인딩에 액세스할 수 있지만 정적 데이터의 초기화 중에 인터페이스 구현이 호출되어 정적 데이터에 액세스하는 경우에만 가능합니다. 사실이 아님을 확인한 경우 #nowarn "69"를 사용하여 이 경고를 제거할 수 있습니다. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I 지시문은 F# 스크립트 파일(확장명 .fsx 또는 .fsscript)에서만 발생할 수 있습니다. 이 코드를 스크립트 파일로 이동하거나, 이 참조에 대한 '-I' 컴파일러 옵션을 추가하거나, 지시문을 '#if INTERACTIVE'/'#endif'로 구분하세요. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r 지시문은 F# 스크립트 파일(확장명 .fsx 또는 .fsscript)에서만 발생할 수 있습니다. 이 코드를 스크립트 파일로 이동하거나 이 참조를 '-r' 컴파일러 옵션으로 바꾸세요. 이 지시문이 사용자 입력으로 실행되는 경우 지시문을 '#if INTERACTIVE'/'#endif'로 구분할 수 있습니다. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.pl.xlf b/src/Compiler/xlf/FSStrings.pl.xlf index c3c69e46e8e..2b5e0c8bb58 100644 --- a/src/Compiler/xlf/FSStrings.pl.xlf +++ b/src/Compiler/xlf/FSStrings.pl.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - To użycie cykliczne zostanie sprawdzone pod kątem poprawności inicjalizacji w środowisku uruchomieniowym. To ostrzeżenie zazwyczaj nie jest szkodliwe i można je pominąć przy użyciu elementu „#nowarn "21"” lub „--nowarn:21”. + To użycie cykliczne zostanie sprawdzone pod kątem poprawności inicjalizacji w środowisku uruchomieniowym. To ostrzeżenie zazwyczaj nie jest szkodliwe i można je pominąć przy użyciu elementu „#nowarn "21"” lub „--nowarn:21”. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - To i inne odwołania rekursywne do definiowanych obiektów zostaną sprawdzone pod kątem poprawności inicjalizacji w środowisku uruchomieniowym przy użyciu opóźnionego odwołania. Jest to spowodowane tym, że definiujesz co najmniej jeden obiekt rekursywny zamiast funkcji rekursywnych. To ostrzeżenie można pominąć przy użyciu elementu „#nowarn "40"” lub „--nowarn:40”. + To i inne odwołania rekursywne do definiowanych obiektów zostaną sprawdzone pod kątem poprawności inicjalizacji w środowisku uruchomieniowym przy użyciu opóźnionego odwołania. Jest to spowodowane tym, że definiujesz co najmniej jeden obiekt rekursywny zamiast funkcji rekursywnych. To ostrzeżenie można pominąć przy użyciu elementu „#nowarn "40"” lub „--nowarn:40”. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. To ostrzeżenie można wyłączyć przy użyciu elementu „--nowarn:57” lub „#nowarn "57"”. + {0}. To ostrzeżenie można wyłączyć przy użyciu elementu „--nowarn:57” lub „#nowarn "57"”. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - Użycie tej konstrukcji może spowodować wygenerowanie kodu .NET IL, którego nie można zweryfikować. To ostrzeżenie można wyłączyć przy użyciu elementu „--nowarn:9” lub „#nowarn "9"”. + Użycie tej konstrukcji może spowodować wygenerowanie kodu .NET IL, którego nie można zweryfikować. To ostrzeżenie można wyłączyć przy użyciu elementu „--nowarn:9” lub „#nowarn "9"”. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Implementacje interfejsu powinny być zwykle podane w początkowej deklaracji typu. Implementacje interfejsu w rozszerzeniach mogą prowadzić do uzyskania dostępu do powiązań statycznych przed ich zainicjowaniem, chociaż tylko wtedy, gdy implementacja interfejsu jest wywoływana podczas inicjowania danych statycznych i z kolei uzyskuje dostęp do danych statycznych. To ostrzeżenie można usunąć przy użyciu #nowarn "69" jeśli zaznaczono, że tak nie jest. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - Dyrektywy #I mogą występować tylko w plikach skryptu języka F# (rozszerzenie fsx lub fsscript). Przenieś ten kod do pliku skryptu, dodaj opcję kompilatora „-I” dla tego odwołania lub rozdziel dyrektywę przy użyciu elementu „#if INTERACTIVE”/„#endif”. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - Dyrektywy #r mogą występować tylko w plikach skryptu języka F# (rozszerzenie fsx lub fsscript). Przenieś ten kod do pliku skryptu lub zastąp to odwołanie za pomocą opcji kompilatora „-r”. Jeśli ta dyrektywa jest wykonywana jako dane wejściowe użytkownika, możesz ją ograniczyć przy użyciu elementu „#if INTERACTIVE”/„#endif”. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.pt-BR.xlf b/src/Compiler/xlf/FSStrings.pt-BR.xlf index ff874400955..c33dd00893d 100644 --- a/src/Compiler/xlf/FSStrings.pt-BR.xlf +++ b/src/Compiler/xlf/FSStrings.pt-BR.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - Este uso recursivo passará por verificação de solidez de inicialização no tempo de execução. Este aviso normalmente é inofensivo e pode ser suprimido usando '#nowarn "21"' ou '--nowarn:21'. + Este uso recursivo passará por verificação de solidez de inicialização no tempo de execução. Este aviso normalmente é inofensivo e pode ser suprimido usando '#nowarn "21"' ou '--nowarn:21'. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - Esta e outras referências recursivas dos objetos que estão sendo definidos passarão por verificação de solidez de inicialização em tempo de execução através do uso de uma referência atrasada. Isto porque você está definindo um ou mais objetos recursivos ao invés de funções recursivas. Este aviso pode ser suprimido com o uso de '#nowarn "40"' ou '--nowarn:40'. + Esta e outras referências recursivas dos objetos que estão sendo definidos passarão por verificação de solidez de inicialização em tempo de execução através do uso de uma referência atrasada. Isto porque você está definindo um ou mais objetos recursivos ao invés de funções recursivas. Este aviso pode ser suprimido com o uso de '#nowarn "40"' ou '--nowarn:40'. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Este aviso foi desabilitado com o uso de '--nowarn:57' ou '#nowarn "57"'. + {0}. Este aviso foi desabilitado com o uso de '--nowarn:57' ou '#nowarn "57"'. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - O uso desse construto pode resultar na geração de código .NET IL não verificável. Este aviso pode ser desabilitado usando '--nowarn:9' ou '#nowarn "9"'. + O uso desse construto pode resultar na geração de código .NET IL não verificável. Este aviso pode ser desabilitado usando '--nowarn:9' ou '#nowarn "9"'. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - As implementações de interface normalmente devem ser fornecidas na declaração inicial de um tipo. As implementações de interface em aumentos podem levar ao acesso a associações estáticas antes de serem inicializadas, embora somente se a implementação de interface for chamada durante a inicialização dos dados estáticos e, por sua vez, o acesso aos dados estáticos. Você pode remover este aviso usando #nowarn "69" se tiver verificado que não é o caso. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - Diretivas #I só podem ocorrer em arquivos de script F# (extensões .fsx ou .fsscript). Mova este código para o arquivo de script e adicione uma opção de compilador '-I' para esta referência, ou então, delimite a diretiva com '#if INTERACTIVE'/'#endif'. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - Diretivas #r só podem ocorrer em arquivos de script F# (extensões .fsx ou .fsscript). Mova este código para um arquivo de script ou substitua essa referência com a opção do compilador '-r'. Se essa diretiva estiver sendo executada como uma entrada do usuário, você poderá delimitá-lo com '#if INTERACTIVE'/'#endif'. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.ru.xlf b/src/Compiler/xlf/FSStrings.ru.xlf index 5180995d783..bda7e0cbe72 100644 --- a/src/Compiler/xlf/FSStrings.ru.xlf +++ b/src/Compiler/xlf/FSStrings.ru.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - Это рекурсивное использование будет проверено на правильность инициализации во время выполнения. Данное предупреждение обычно безвредно; его можно отменить, используя #nowarn "21" или --nowarn 21. + Это рекурсивное использование будет проверено на правильность инициализации во время выполнения. Данное предупреждение обычно безвредно; его можно отменить, используя #nowarn "21" или --nowarn 21. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - Эта и другие рекурсивные ссылки на определяемый объект будут проверены на правильность инициализации во время выполнения посредством использования отложенной ссылки. Это происходит потому, что вы определяете один или несколько рекурсивных объектов, а не рекурсивных функций. Данное предупреждение можно отменить, используя #nowarn "40" или --nowarn 40. + Эта и другие рекурсивные ссылки на определяемый объект будут проверены на правильность инициализации во время выполнения посредством использования отложенной ссылки. Это происходит потому, что вы определяете один или несколько рекурсивных объектов, а не рекурсивных функций. Данное предупреждение можно отменить, используя #nowarn "40" или --nowarn 40. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Данное предупреждение можно отключить, используя --nowarn 57 или #nowarn "57". + {0}. Данное предупреждение можно отключить, используя --nowarn 57 или #nowarn "57". Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - Использование данной конструкции может повлечь за собой создание непроверяемого кода .NET IL. Данное предупреждение можно отключить, используя --nowarn 9 или #nowarn "9". + Использование данной конструкции может повлечь за собой создание непроверяемого кода .NET IL. Данное предупреждение можно отключить, используя --nowarn 9 или #nowarn "9". @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Реализации интерфейса обычно следует указывать при первоначальном объявлении типа. Реализации интерфейса в приращениях могут привести к доступу к статическим привязкам до их инициализации, но только в том случае, если реализация интерфейса вызвана во время инициализации статических данных. Это, в свою очередь, приведет к доступу к статическим данным. Это предупреждение можно удалить с помощью #nowarn "69", если вы убедились, что это не так. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - Директивы #I могут встречаться только в файлах скриптов F# (расширения .fsx или .fsscript). Нужно либо переместить данный код в файл скрипта, либо добавить для данной ссылки параметр компилятора "-I", либо ограничить директиву с помощью "#if INTERACTIVE"/"#endif". + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - Директивы #r могут встречаться только в файлах сценариев F# (файлы с расширениями .fsx или .fsscript). Переместите этот код в файл сценария или замените эту ссылку параметром компилятора "-r". Если эта директива выполняется в качестве пользовательских входных данных, вы можете заключить ее в блок "#if INTERACTIVE"/"#endif". + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.tr.xlf b/src/Compiler/xlf/FSStrings.tr.xlf index a2ee2210bb2..c3dfc9c3ece 100644 --- a/src/Compiler/xlf/FSStrings.tr.xlf +++ b/src/Compiler/xlf/FSStrings.tr.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - Bu özyinelemeli kullanım çalışma zamanında başlatma sağlamlığı açısından denetlenecek. Bu uyarı genellikle zararsızdır ve '#nowarn "21"' veya '--nowarn:21' kullanılarak gizlenebilir. + Bu özyinelemeli kullanım çalışma zamanında başlatma sağlamlığı açısından denetlenecek. Bu uyarı genellikle zararsızdır ve '#nowarn "21"' veya '--nowarn:21' kullanılarak gizlenebilir. @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - Tanımlanmakta olan nesnelere yönelik bu ve diğer özyinelemeli başvurular, gecikmeli başvuru kullanımı aracılığıyla başlatma sağlamlığı açısından çalışma zamanında denetlenecek. Bunun nedeni, özyinelemeli işlev yerine bir veya daha fazla özyinelemeli nesne tanımlamanızdır. Bu uyarı, '#nowarn "40"' veya '--nowarn:40' kullanılarak gizlenebilir. + Tanımlanmakta olan nesnelere yönelik bu ve diğer özyinelemeli başvurular, gecikmeli başvuru kullanımı aracılığıyla başlatma sağlamlığı açısından çalışma zamanında denetlenecek. Bunun nedeni, özyinelemeli işlev yerine bir veya daha fazla özyinelemeli nesne tanımlamanızdır. Bu uyarı, '#nowarn "40"' veya '--nowarn:40' kullanılarak gizlenebilir. @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}. Bu uyarı, '--nowarn:57' veya '#nowarn "57"' kullanılarak devre dışı bırakılabilir. + {0}. Bu uyarı, '--nowarn:57' veya '#nowarn "57"' kullanılarak devre dışı bırakılabilir. Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - Bu yapının kullanılması doğrulanamayan .NET IL kodunun oluşturulmasıyla sonuçlanabilir. Bu uyarı, '--nowarn:9' veya '#nowarn "9"' kullanılarak devre dışı bırakılabilir. + Bu yapının kullanılması doğrulanamayan .NET IL kodunun oluşturulmasıyla sonuçlanabilir. Bu uyarı, '--nowarn:9' veya '#nowarn "9"' kullanılarak devre dışı bırakılabilir. @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Arabirim uygulamaları normalde bir türün ilk bildiriminde verilmelidir. Genişletmelerdeki arabirim uygulamaları, başlatılmadan önce statik bağlamalara erişilmesine neden olabilirse de bu yalnızca arabirim uygulaması statik verilerin başlatılması sırasında çağrılmışsa ve buna bağlı olarak statik verilere erişiyorsa olur. Bunun söz konusu olmadığından eminseniz #nowarn "69" seçeneğini kullanarak bu uyarıyı kaldırabilirsiniz. + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I yönergeleri yalnızca F# betik dosyalarında (.fsx veya .fsscript uzantılı) görülebilir. Ya bu kodu bir betik dosyasına taşıyıp bu başvuru için bir '-I' derleyici seçeneği ekleyin ya da yönergeyi '#if INTERACTIVE'/'#endif' ile sınırlandırın. + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r yönergeleri yalnızca F# betik dosyalarında (.fsx veya .fsscript uzantılı) görülebilir. Bu kodu bir betik dosyasına taşıyın veya bu başvuruyu '-r' derleyici seçeneği ile değiştirin. Yönerge kullanıcı girişi olarak yürütülüyorsa, yönergeyi '#if INTERACTIVE'/'#endif' ile sınırlandırabilirsiniz. + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.zh-Hans.xlf b/src/Compiler/xlf/FSStrings.zh-Hans.xlf index 1ab6ce0f41a..124774d0027 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hans.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hans.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - 将检查此递归使用能否在运行时完整地进行初始化。此警告通常是无害的,可以使用“#nowarn "21"”或“--nowarn:21”来取消显示此警告。 + 将检查此递归使用能否在运行时完整地进行初始化。此警告通常是无害的,可以使用“#nowarn "21"”或“--nowarn:21”来取消显示此警告。 @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - 将检查对要定义的对象的此引用和其他递归引用,以查看其在运行时能否通过使用延迟的引用来完整地进行初始化。这是因为您定义的是一个或多个递归对象,而不是递归函数。可以使用“#nowarn "40"”或“--nowarn:40”来禁止显示此警告。 + 将检查对要定义的对象的此引用和其他递归引用,以查看其在运行时能否通过使用延迟的引用来完整地进行初始化。这是因为您定义的是一个或多个递归对象,而不是递归函数。可以使用“#nowarn "40"”或“--nowarn:40”来禁止显示此警告。 @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}。可以使用“--nowarn:57”或“#nowarn "57"”禁用此警告。 + {0}。可以使用“--nowarn:57”或“#nowarn "57"”禁用此警告。 Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - 使用此构造可能会导致生成不可验证的 .NET IL 代码。可以使用“--nowarn:9”或“#nowarn "9"”禁用此警告。 + 使用此构造可能会导致生成不可验证的 .NET IL 代码。可以使用“--nowarn:9”或“#nowarn "9"”禁用此警告。 @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - 通常应在类型的初始声明中提供接口实现。扩充中的接口实现可能会导致在初始化静态绑定之前访问静态绑定,尽管只有在静态数据初始化期间调用了接口实现,并进而访问静态数据时才会发生这种情况。如果已经核实并非如此,则可以使用 #nowarn "69" 移除此警告。 + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I 指令只能出现在 F# 脚本文件(扩展名为 .fsx 或 .fsscript)中。请将此代码添加到脚本文件中、添加此引用的“-I”编译器选项或使用“#if INTERACTIVE”/“#endif”分隔此指令。 + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r 指令只能出现在 F# 脚本文件(扩展名为 .fsx 或 .fsscript)中。请将此代码移动到脚本文件或使用 "-r" 编译器选项替换此引用。如果该指令作为用户输入执行,则可以使用 "#if INTERACTIVE'/'#endif" 分隔它。 + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.zh-Hant.xlf b/src/Compiler/xlf/FSStrings.zh-Hant.xlf index ebae0a2b01c..2d86f0c07ec 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hant.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hant.xlf @@ -1379,7 +1379,7 @@ This recursive use will be checked for initialization-soundness at runtime. This warning is usually harmless, and may be suppressed by using '#nowarn "21"' or '--nowarn:21'. - 這個遞迴用途會在執行階段檢查初始化是否正確。這個警告通常是無害的,可以使用 '#nowarn "21"' 或 '--nowarn:21' 予以隱藏。 + 這個遞迴用途會在執行階段檢查初始化是否正確。這個警告通常是無害的,可以使用 '#nowarn "21"' 或 '--nowarn:21' 予以隱藏。 @@ -1404,7 +1404,7 @@ This and other recursive references to the object(s) being defined will be checked for initialization-soundness at runtime through the use of a delayed reference. This is because you are defining one or more recursive objects, rather than recursive functions. This warning may be suppressed by using '#nowarn "40"' or '--nowarn:40'. - 這個和其他對所定義物件的遞迴參考,將在執行階段透過使用延遲參考來檢查初始化是否正確。這是因為您定義的是一個或多個遞迴物件,而不是遞迴函式。使用 '#nowarn "40"' 或 '--nowarn:40' 可以隱藏這個警告。 + 這個和其他對所定義物件的遞迴參考,將在執行階段透過使用延遲參考來檢查初始化是否正確。這是因為您定義的是一個或多個遞迴物件,而不是遞迴函式。使用 '#nowarn "40"' 或 '--nowarn:40' 可以隱藏這個警告。 @@ -1524,12 +1524,12 @@ {0}. This warning can be disabled using '--nowarn:57' or '#nowarn "57"'. - {0}。使用 '--nowarn:57' 或 '#nowarn "57"' 可以停用這個警告。 + {0}。使用 '--nowarn:57' 或 '#nowarn "57"' 可以停用這個警告。 Uses of this construct may result in the generation of unverifiable .NET IL code. This warning can be disabled using '--nowarn:9' or '#nowarn "9"'. - 使用這個建構可能導致產生無法驗證的 .NET IL 程式碼。使用 '--nowarn:9' 或 '#nowarn "9"' 可以停用這個警告。 + 使用這個建構可能導致產生無法驗證的 .NET IL 程式碼。使用 '--nowarn:9' 或 '#nowarn "9"' 可以停用這個警告。 @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - 通常應該在類型的初始宣告上指定介面實作。擴增中的介面實作可能會在初始化之前存取靜態繫結,但只有在初始化靜態資料時叫用介面實作,並依序存取靜態資料。如果您未檢查過這種情況,可以使用 #nowarn 「69」 移除此警告。 + Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I 指示詞只能出現在 F# 指令碼檔案 (副檔名 .fsx 或 .fsscript) 中。請將這個程式碼移到指令碼檔案、為這個參考加入 '-I' 編譯器選項,或用 '#if INTERACTIVE'/'#endif' 分隔這個指示詞。 + #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r 指示詞只能出現在 F# 指令碼檔案 (副檔名為 .fsx 或 .fsscript) 中。請將此程式碼移至指令碼檔案,或以 '-r' 編譯器選項取代此參考。若此指示詞要以使用者輸入的方式執行,可以使用 '#if INTERACTIVE'/'#endif' 加以分隔。 + #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. From 2f906b91f0ee24eb57082b96c731428084089835 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 21 Jun 2024 10:30:32 -0700 Subject: [PATCH 12/14] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2479186 (#17334) * Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2479186 * Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2479186 --- src/Compiler/Interactive/xlf/FSIstrings.txt.cs.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.de.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.es.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.fr.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.it.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.ja.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.ko.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.pl.xlf | 2 +- .../Interactive/xlf/FSIstrings.txt.pt-BR.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.ru.xlf | 2 +- src/Compiler/Interactive/xlf/FSIstrings.txt.tr.xlf | 2 +- .../Interactive/xlf/FSIstrings.txt.zh-Hans.xlf | 2 +- .../Interactive/xlf/FSIstrings.txt.zh-Hant.xlf | 2 +- src/Compiler/xlf/FSComp.txt.cs.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.de.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.es.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.fr.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.it.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.ja.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.ko.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.pl.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.ru.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.tr.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 12 ++++++------ src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 12 ++++++------ src/Compiler/xlf/FSStrings.cs.xlf | 2 +- src/Compiler/xlf/FSStrings.de.xlf | 2 +- src/Compiler/xlf/FSStrings.es.xlf | 2 +- src/Compiler/xlf/FSStrings.fr.xlf | 2 +- src/Compiler/xlf/FSStrings.it.xlf | 2 +- src/Compiler/xlf/FSStrings.ja.xlf | 2 +- src/Compiler/xlf/FSStrings.ko.xlf | 2 +- src/Compiler/xlf/FSStrings.pl.xlf | 2 +- src/Compiler/xlf/FSStrings.pt-BR.xlf | 2 +- src/Compiler/xlf/FSStrings.ru.xlf | 2 +- src/Compiler/xlf/FSStrings.tr.xlf | 2 +- src/Compiler/xlf/FSStrings.zh-Hans.xlf | 2 +- src/Compiler/xlf/FSStrings.zh-Hant.xlf | 2 +- 39 files changed, 104 insertions(+), 104 deletions(-) diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.cs.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.cs.xlf index 9146a0d2aa0..d0484d1aada 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.cs.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.cs.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Zobrazit dokumentaci k identifikátoru, např. #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.de.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.de.xlf index ba8a2a310cb..801c1c8aeb6 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.de.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.de.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Dokumentation für einen Bezeichner anzeigen, z. B. #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.es.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.es.xlf index f499bc3eafa..6ecad43d575 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.es.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.es.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Mostrar documentación para un identificador, por ejemplo, #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.fr.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.fr.xlf index 816e9ff898f..ecddd294a3d 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.fr.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.fr.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Afficher la documentation pour un identifiant, par ex. #help \"List.map\ » ;; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.it.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.it.xlf index 93fa31ffda4..f04cf584c81 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.it.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.it.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Visualizzare la documentazione per un identificatore, ad esempio #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.ja.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.ja.xlf index 316b88cfd0d..5b1d3723135 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.ja.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.ja.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + 識別子のドキュメントを表示する (例:#help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.ko.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.ko.xlf index e577610033a..b94d2b1c62f 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.ko.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.ko.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + 식별자에 대한 설명서 표시(예: #help \"List.map\";;) diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.pl.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.pl.xlf index b1b3cd575f0..b4d7026498d 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.pl.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.pl.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Wyświetl dokumentację identyfikatora, np. #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.pt-BR.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.pt-BR.xlf index d6607b63a13..f748ba1be27 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.pt-BR.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.pt-BR.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Exibir documentação para um identificador, por exemplo, #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.ru.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.ru.xlf index 62ba1c091a2..9b1c172ae5c 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.ru.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.ru.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Отобразить документацию для идентификатора, например #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.tr.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.tr.xlf index d1d67300f2c..2d2cac17955 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.tr.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.tr.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + Tanımlayıcı ile ilgili belgeleri görüntüle, ör. #help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hans.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hans.xlf index 1657fe4f304..b6615ef7514 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hans.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hans.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + 显示标识符的文档,例如#help \"List.map\";; diff --git a/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hant.xlf b/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hant.xlf index 0950c95bcee..c49b8a171a9 100644 --- a/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hant.xlf +++ b/src/Compiler/Interactive/xlf/FSIstrings.txt.zh-Hant.xlf @@ -19,7 +19,7 @@ Display documentation for an identifier, e.g. #help \"List.map\";; - Display documentation for an identifier, e.g. #help \"List.map\";; + 顯示識別碼的文件,例如#help \"List.map\";; diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 914a722a731..6be814b12c2 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Statický abstraktní člen nevirtuálního rozhraní by měl být volán pouze prostřednictvím parametru typu (například T.{0}). Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Třídy nemůžou obsahovat statické abstraktní členy. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Tento aktivní vzor očekává tento počet argumentů výrazu: {0}, například {1}{2}. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Tento aktivní vzor očekává tento počet argumentů výrazu: {0} a argument vzoru, například {1}{2} pat. This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Tento aktivní vzor neočekává žádné argumenty, tj. měl by se používat takto: {0} a ne takto: {1} x. This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Tento aktivní vzor očekává přesně jeden argument vzoru, např. {0} pat. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index c68fb80d3ba..34e41451e24 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Ein statischer abstrakter, nicht virtueller Schnittstellenmember sollte nur über den Typparameter aufgerufen werden (z. B. „T.{0}"). Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Klassen dürfen keine statischen abstrakten Member enthalten. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Dieses aktive Muster erwartet {0} Ausdrucksargumente, z. B. „{1}{2}“. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Dieses aktive Muster erwartet {0} Ausdrucksargumente und ein Musterargument, z. B. „{1}{2} pat“. This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Dieses aktive Muster erwartet keine Argumente, d. h., es sollte wie folgt verwendet werden: „{0}“ anstelle von „{1} x“. This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Dieses aktive Muster erwartet genau ein Musterargument, z. B. „{0} pat“. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index abfef6fcb70..d75cdaf2b30 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Solo se debe llamar a un miembro de interfaz no virtual abstracto estático mediante un parámetro de tipo (por ejemplo: "T.{0}). Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Las clases no pueden contener miembros abstractos estáticos. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Este patrón activo espera {0} argumentos de expresión; por ejemplo, "{1}{2}". This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Este patrón activo espera {0} argumentos de expresión y un argumento de patrón, por ejemplo, "{1}{2} pat". This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Este patrón activo no espera argumentos, es decir, debe usarse como "{0}" en lugar de "{1} x". This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Este patrón activo espera exactamente un argumento de patrón, por ejemplo, "{0} pat". diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 337d95f5ae0..8801eb22771 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Un membre d’interface non virtuel abstrait statique doit être appelé uniquement via le paramètre de type (par exemple : 'T.{0}). Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Les classes ne peuvent pas contenir de membres abstraits statiques. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Ce modèle actif attend {0} argument(s) d’expression, par exemple, '{1}{2}'. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Ce modèle actif attend des arguments d'expression {0} et un argument de modèle, par exemple '{1}{2} pat'. This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Ce modèle actif n’attend aucun argument, c’est-à-dire qu’il doit être utilisé comme «{0}» au lieu de «{1} x ». This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Ce modèle actif attend exactement un argument de modèle, par exemple, «{0} pat ». diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 6f8334aa9a6..aa805295420 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Un membro di interfaccia non virtuale astratto statico deve essere chiamato solo tramite un parametro di tipo, ad esempio 'T.{0}. Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Le classi non possono contenere membri astratti statici. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Questo criterio attivo prevede {0} argomenti di espressione, ad esempio '{1}{2}'. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Questo criterio attivo prevede {0} argomento/i dell'espressione e un argomento del criterio, ad esempio '{1}{2} pat'. This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Questo criterio attivo non prevede argomenti, ad esempio deve essere usato come '{0}' anziché '{1} x'. This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Questo criterio attivo prevede esattamente un argomento del criterio, ad esempio '{0} pat'. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 1f232ffe581..4826083c815 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + 静的抽象非仮想インターフェイス メンバーは、型パラメーターを介してのみ呼び出す必要があります (例: 'T.{0})。 Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + クラスに静的抽象メンバーを含めることはできません。 @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + このアクティブ パターンには、{0} 式の引数が必要です (例: '{1}{2}')。 This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + このアクティブ パターンには、{0} 式の引数とパターン引数 とパターン引数 (例: '{1}{2} pat') が必要です。 This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + このアクティブ パターンには引数は必要ありません。つまり、'{1} x' ではなく、'{0}' のように使用する必要があります。 This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + このアクティブ パターンには、'{0} pat' などのパターン引数が 1 つだけ必要です。 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index cd97e1d7ddd..7d665ff4dc8 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + 정적 추상 비 가상 인터페이스 구성원은 형식 매개 변수(예: 'T.{0})를 통해서만 호출해야 합니다. Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + 클래스에는 정적 추상 구성원을 포함할 수 없습니다. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + 이 활성 패턴에는 {0} 식 인수(예: '{1}{2}')가 필요합니다. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + 이 활성 패턴에는 {0} 식 인수와 패턴 인수가 필요합니다(예: '{1}{2} pat'). This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + 이 활성 패턴에는 인수가 필요하지 않습니다. 즉, '{0} x' 대신 '{1}'을(를) 사용해야 합니다. This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + 이 활성 패턴에는 정확히 하나의 패턴 인수(예: '{0} pat')가 필요합니다. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 9d3f8dfb85c..a7018b9507e 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Statyczna abstrakcyjna składowa interfejsu niewirtualnego powinna być wywoływana tylko za pomocą parametru typu (na przykład: „T”).{0} Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Klasy nie mogą zawierać statycznych abstrakcyjnych składowych. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Ten aktywny wzorzec oczekuje argumentów wyrażenia ({0}), np. „{1}{2}”. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Ten aktywny wzorzec oczekuje argumentów wyrażenia ({0}) i argumentu wzorca, np. „{1}{2} pat”. This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Ten aktywny wzorzec nie oczekuje żadnych argumentów, tj. powinien być używany jak „{0}” zamiast „{1} x”. This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Ten aktywny wzorzec oczekuje dokładnie jednego argumentu wzorca, np. „{0} pat”. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 5e3ec57a18c..e19b54ce61e 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Um membro de interface não virtual abstrato estático só deve ser chamado via parâmetro de tipo (por exemplo: ''T.{0}). Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Classes não podem conter membros abstratos estáticos. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Este padrão ativo espera argumentos de expressão {0}, por exemplo, ''{1}{2}''. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Este padrão ativo espera argumento(s) de expressão {0} e um argumento de padrão, por exemplo, ''{1}{2} pat''. This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Este padrão ativo não espera argumentos, ou seja, ele deve ser usado como ''{0}'' em vez de ''{1} x''. This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Este padrão ativo espera exatamente um argumento de padrão, por exemplo, ''{0} pat''. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 44faea3b20f..a3e1c16a08c 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Статический абстрактный невиртуальный элемент интерфейса должен вызываться только с помощью параметра типа (например, 'T.{0}). Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Классы не могут содержать статические абстрактные элементы. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Этот активный шаблон ожидает аргументы выражения ({0}), например "{1}{2}". This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Этот активный шаблон ожидает аргументы выражения ({0}) и аргумент шаблона, например "{1}{2} pat". This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Этот активный шаблон не ожидает аргументов, то есть его следует использовать как "{0}" вместо "{1} x". This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Этот активный шаблон ожидает ровно один аргумент шаблона, например "{0} pat". diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 309efbca1bd..23098131959 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + Statik soyut sanal olmayan arabirim üyesi yalnızca tür parametresi aracılığıyla çağrılmalıdır (örneğin: 'T.{0}). Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + Sınıflar statik soyut üyeler içeremez. @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + Bu etkin desen, {0} ifade bağımsız değişkenlerini bekliyor, ör. '{1}{2}'. This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + Bu etkin desen, {0} bağımsız değişkenlerini ve desen bağımsız değişkenlerini bekliyor, ör. '{1}{2}. This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + Bu etkin desen herhangi bir bağımsız değişken beklemiyor, yani '{1} x' yerine '{0}' gibi kullanılmalıdır. This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + Bu etkin desen, tam olarak bir desen bağımsız değişkeni bekliyor, ör. '{0} pat'. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index ff873d965f1..d334a23438d 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + 应仅通过类型参数调用静态抽象非虚拟接口成员(例如: “T.{0}”)。 Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + 类不能包含静态抽象成员。 @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + 此活动模式需要 {0} 个表达式参数,例如“{1}{2}”。 This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + 此活动模式需要 {0} 个表达式参数和一个模式参数,例如 “{1}{2} pat”。 This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + 此活动模式不需要任何参数,即它应像“{0}”而不是 “{1}x” 一样使用。 This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + 此活动模式只需要一个模式参数,例如 “{0} pat”。 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 11417c7b243..56c3c038896 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -124,12 +124,12 @@ A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). - A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.{0}). + 靜態抽象非虛擬介面成員只能透過型別參數 (呼叫,例如 'T.{0})。 Classes cannot contain static abstract members. - Classes cannot contain static abstract members. + 類別不能包含靜態抽象成員。 @@ -1139,22 +1139,22 @@ This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. - This active pattern expects {0} expression argument(s), e.g., '{1}{2}'. + 此現用模式需要 {0} 運算式引數,例如 '{1}{2}'。 This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. - This active pattern expects {0} expression argument(s) and a pattern argument, e.g., '{1}{2} pat'. + 此現用模式需要 {0} 運算式引數和模式引數,例如 '{1}{2} pat'。 This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. - This active pattern does not expect any arguments, i.e., it should be used like '{0}' instead of '{1} x'. + 這個現用模式並不需要任何引數,例如,應該使用像是 '{0}' 而不是 '{1} x'。 This active pattern expects exactly one pattern argument, e.g., '{0} pat'. - This active pattern expects exactly one pattern argument, e.g., '{0} pat'. + 此現用模式需要剛好一個模式引數,例如 '{0} pat'。 diff --git a/src/Compiler/xlf/FSStrings.cs.xlf b/src/Compiler/xlf/FSStrings.cs.xlf index 4e2b36b0525..8c4b8a719e4 100644 --- a/src/Compiler/xlf/FSStrings.cs.xlf +++ b/src/Compiler/xlf/FSStrings.cs.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Neabstraktní třídy nemohou obsahovat abstraktní členy. Poskytněte výchozí implementaci členů nebo přidejte k danému typu atribut [<AbstractClass>]. diff --git a/src/Compiler/xlf/FSStrings.de.xlf b/src/Compiler/xlf/FSStrings.de.xlf index 705887c6518..2b98a1cd4f5 100644 --- a/src/Compiler/xlf/FSStrings.de.xlf +++ b/src/Compiler/xlf/FSStrings.de.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Nicht abstrakte Klassen dürfen keine abstrakten Member enthalten. Stellen Sie entweder eine Standardmemberimplementierung bereit, oder fügen Sie Ihrem Typ das Attribut „[<AbstractClass>]“ hinzu. diff --git a/src/Compiler/xlf/FSStrings.es.xlf b/src/Compiler/xlf/FSStrings.es.xlf index 4e84de8d627..58bf8136087 100644 --- a/src/Compiler/xlf/FSStrings.es.xlf +++ b/src/Compiler/xlf/FSStrings.es.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Las clases no abstractas no pueden contener miembros abstractos. Proporcione una implementación de miembros predeterminados o agregue el atributo "[<AbstractClass>]" al tipo. diff --git a/src/Compiler/xlf/FSStrings.fr.xlf b/src/Compiler/xlf/FSStrings.fr.xlf index 290dcae8634..82b7896dc35 100644 --- a/src/Compiler/xlf/FSStrings.fr.xlf +++ b/src/Compiler/xlf/FSStrings.fr.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Les classes non abstraites ne peuvent pas contenir de membres abstraits. Fournissez une implémentation de membre par défaut ou ajoutez l’attribut « [<AbstractClass>] » à votre type. diff --git a/src/Compiler/xlf/FSStrings.it.xlf b/src/Compiler/xlf/FSStrings.it.xlf index 50e1808b266..d472951805a 100644 --- a/src/Compiler/xlf/FSStrings.it.xlf +++ b/src/Compiler/xlf/FSStrings.it.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Le classi non astratte non possono contenere membri astratti. Specificare un'implementazione di membro predefinita o aggiungere l'attributo '[<AbstractClass>]' al tipo. diff --git a/src/Compiler/xlf/FSStrings.ja.xlf b/src/Compiler/xlf/FSStrings.ja.xlf index 595d7054e81..75adc21ebe5 100644 --- a/src/Compiler/xlf/FSStrings.ja.xlf +++ b/src/Compiler/xlf/FSStrings.ja.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + 非抽象クラスに抽象メンバーを含めることはできません。既定のメンバー実装を指定するか、'[<AbstractClass>]' 属性を型に追加してください。 diff --git a/src/Compiler/xlf/FSStrings.ko.xlf b/src/Compiler/xlf/FSStrings.ko.xlf index a197fac66f7..0c281d399b2 100644 --- a/src/Compiler/xlf/FSStrings.ko.xlf +++ b/src/Compiler/xlf/FSStrings.ko.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + 비 추상 클래스는 추상 구성원을 포함할 수 없습니다. 기본 구성원 구현을 제공하거나 형식에 '[<AbstractClass>]' 특성을 추가하세요. diff --git a/src/Compiler/xlf/FSStrings.pl.xlf b/src/Compiler/xlf/FSStrings.pl.xlf index 2b5e0c8bb58..1e0b51f8199 100644 --- a/src/Compiler/xlf/FSStrings.pl.xlf +++ b/src/Compiler/xlf/FSStrings.pl.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Klasy nieabstrakcyjne nie mogą zawierać abstrakcyjnych składowych. Podaj domyślną implementację składowej lub dodaj atrybut „[<AbstractClass>]” do typu. diff --git a/src/Compiler/xlf/FSStrings.pt-BR.xlf b/src/Compiler/xlf/FSStrings.pt-BR.xlf index c33dd00893d..5d870ae4040 100644 --- a/src/Compiler/xlf/FSStrings.pt-BR.xlf +++ b/src/Compiler/xlf/FSStrings.pt-BR.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Classes não abstratas não podem conter membros abstratos. Forneça uma implantação de membro padrão ou adicione o atributo '[<AbstractClass>]' ao seu tipo. diff --git a/src/Compiler/xlf/FSStrings.ru.xlf b/src/Compiler/xlf/FSStrings.ru.xlf index bda7e0cbe72..a4275f1763d 100644 --- a/src/Compiler/xlf/FSStrings.ru.xlf +++ b/src/Compiler/xlf/FSStrings.ru.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Неабстрактные классы не могут содержать абстрактные элементы. Укажите реализацию элемента по умолчанию или добавьте атрибут "[<AbstractClass>]" в тип. diff --git a/src/Compiler/xlf/FSStrings.tr.xlf b/src/Compiler/xlf/FSStrings.tr.xlf index c3dfc9c3ece..f2aff261952 100644 --- a/src/Compiler/xlf/FSStrings.tr.xlf +++ b/src/Compiler/xlf/FSStrings.tr.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + Soyut olmayan sınıflar soyut üyeler içeremez. Varsayılan bir üye uygulaması belirtin veya türünüze '[<AbstractClass>]' özniteliğini ekleyin. diff --git a/src/Compiler/xlf/FSStrings.zh-Hans.xlf b/src/Compiler/xlf/FSStrings.zh-Hans.xlf index 124774d0027..0f48c864825 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hans.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hans.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + 非抽象类不能包含抽象成员。提供默认成员实现或将 “[<AbstractClass>]” 属性添加到类型。 diff --git a/src/Compiler/xlf/FSStrings.zh-Hant.xlf b/src/Compiler/xlf/FSStrings.zh-Hant.xlf index 2d86f0c07ec..088394d8925 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hant.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hant.xlf @@ -249,7 +249,7 @@ Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. - Non-abstract classes cannot contain abstract members. Either provide a default member implementation or add the '[<AbstractClass>]' attribute to your type. + 非抽象類別不能包含抽象成員。請提供預設成員實作,或將 '[<AbstractClass>]' 屬性新增至您的類型。 From cb9f3a1530d2d219bcb21a3aa0f40cb3e135a267 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Tue, 25 Jun 2024 17:31:23 +0200 Subject: [PATCH 13/14] Add dependencies for System libraries that need to be lifted in the source-build / VMR context (#17344) --- eng/Version.Details.xml | 12 ++++++++++++ eng/Versions.props | 2 -- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fca61d74423..61f0493ca4e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -28,6 +28,18 @@ https://github.com/dotnet/msbuild 2d02daa886f279e2ee749cad03db4b1b75bb9adb + + https://github.com/dotnet/runtime + 5535e31a712343a63f5d7d796cd874e563e5ac14 + + + https://github.com/dotnet/runtime + 5535e31a712343a63f5d7d796cd874e563e5ac14 + + + https://github.com/dotnet/runtime + 5535e31a712343a63f5d7d796cd874e563e5ac14 + diff --git a/eng/Versions.props b/eng/Versions.props index 9a1da2fc017..4a851763231 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -91,7 +91,6 @@ $(SystemPackageVersionVersion) 4.5.0 1.6.0 - 4.11.0-2.24264.2 17.10.191 @@ -99,7 +98,6 @@ 17.10.526-pre-g1b474069f5 17.10.41 17.11.0-preview-24178-03 - $(RoslynVersion) $(RoslynVersion) From 3700b4156be8b235dfb1fca24506dd98a922229b Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 25 Jun 2024 19:52:21 -0700 Subject: [PATCH 14/14] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2482116 (#17349) * Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2482116 * Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2482116 --- src/Compiler/xlf/FSComp.txt.cs.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.de.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.es.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.fr.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.it.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.ja.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.ko.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.pl.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.ru.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.tr.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 6 +++--- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 6 +++--- src/Compiler/xlf/FSStrings.cs.xlf | 6 +++--- src/Compiler/xlf/FSStrings.de.xlf | 6 +++--- src/Compiler/xlf/FSStrings.es.xlf | 6 +++--- src/Compiler/xlf/FSStrings.fr.xlf | 6 +++--- src/Compiler/xlf/FSStrings.it.xlf | 6 +++--- src/Compiler/xlf/FSStrings.ja.xlf | 6 +++--- src/Compiler/xlf/FSStrings.ko.xlf | 6 +++--- src/Compiler/xlf/FSStrings.pl.xlf | 6 +++--- src/Compiler/xlf/FSStrings.pt-BR.xlf | 6 +++--- src/Compiler/xlf/FSStrings.ru.xlf | 6 +++--- src/Compiler/xlf/FSStrings.tr.xlf | 6 +++--- src/Compiler/xlf/FSStrings.zh-Hans.xlf | 6 +++--- src/Compiler/xlf/FSStrings.zh-Hant.xlf | 6 +++--- 26 files changed, 78 insertions(+), 78 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 6be814b12c2..db570b9b554 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + Direktivy # s řetězcovými argumenty bez uvozovek Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Neočekávaný identifikátor {0}. Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Neočekávaný celočíselný literál {0}. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 34e41451e24..3dd70752d1e 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + # Direktiven mit Zeichenfolgenargumenten ohne Anführungszeichen Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Unerwarteter Bezeichner: "{0}". Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Unerwartetes Ganzzahl-Literal "{0}". diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index d75cdaf2b30..f351fb0b0ab 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + # directivas con argumentos de cadena sin comillas Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Identificador inesperado "{0}". Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Literal entero inesperado "{0}". diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 8801eb22771..f98e8b31158 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + # directives avec des arguments de chaîne non entre guillemets Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Identificateur inattendu '{0}'. Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Littéral entier inattendu '{0}'. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index aa805295420..cf6994ace26 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + # direttive con argomenti stringa non delimitati Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Identificatore non previsto: '{0}'. Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Valore letterale integer '{0}' imprevisto. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 4826083c815..3f7e14f3a7d 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + 引用符で囲まれていない文字列引数を含む # ディレクティブ Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + '{0}' は予期しない識別子です。 Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + '{0}' は予期しない整数リテラルです。 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index 7d665ff4dc8..249ed173fe1 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + 따옴표가 없는 문자열 인수가 있는 #개의 지시문 Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + 예기치 않은 식별자 '{0}' Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + 예기치 않은 정수 리터럴 '{0}'. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index a7018b9507e..276ce3fc162 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + Dyrektywy (#) z argumentami ciągu niezawartymi w cudzysłów Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Nieoczekiwany identyfikator „{0}”. Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Nieoczekiwany literał liczby całkowitej „{0}”. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index e19b54ce61e..bd43f6b30c6 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + Diretivas # com argumentos de cadeia de caracteres sem aspas Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Identificador inesperado "{0}". Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Literal de inteiro inesperado "{0}". diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index a3e1c16a08c..f05b4935403 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + Директивы # с аргументами строк без кавычек Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Недопустимый идентификатор: "{0}". Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Непредвиденный литерал целого числа "{0}". diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 23098131959..9db798abf43 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + Tırnak içine alınmamış dize bağımsız değişkenlerine sahip # yönergeleri Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + Beklenmeyen tanımlayıcı: '{0}'. Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + Beklenmeyen tamsayı değişmez değeri '{0}'. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index d334a23438d..a67ecd20ec8 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + # 指令的字符串参数不带引号 Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + 意外的标识符:“{0}”。 Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + 意外的整数文本“{0}”。 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 56c3c038896..6fb9beb23e6 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -459,17 +459,17 @@ # directives with non-quoted string arguments - # directives with non-quoted string arguments + # 個具有非引號字串引數的指示詞 Unexpected identifier '{0}'. - Unexpected identifier '{0}'. + 未預期的識別碼 '{0}'。 Unexpected integer literal '{0}'. - Unexpected integer literal '{0}'. + 未預期的整數常值 '{0}'。 diff --git a/src/Compiler/xlf/FSStrings.cs.xlf b/src/Compiler/xlf/FSStrings.cs.xlf index 8c4b8a719e4..4c71607759e 100644 --- a/src/Compiler/xlf/FSStrings.cs.xlf +++ b/src/Compiler/xlf/FSStrings.cs.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + Implementace rozhraní by se měly normálně provádět při počáteční deklaraci typu. Implementace rozhraní v postupných krocích mohou vést k přístupu ke statickým vazbám před jejich inicializací, ale pouze v případě, že je implementace rozhraní vyvolána během inicializace statických dat, a následně může dojít k přístupu ke statickým datům. Toto upozornění můžete odebrat pomocí #nowarn "69", pokud jste zkontrolovali, že tomu tak není. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + Direktivy #I se můžou používat jenom v souborech skriptu F# (s příponou .fsx nebo .fsscript). Přesuňte tento kód do souboru skriptu nebo přidejte pro tento odkaz možnost kompilátoru -I anebo direktivu ohraničte pomocí notace #if INTERACTIVE/#endif. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + Direktivy #r se můžou vyskytovat jenom v souborech skriptu F# (s příponou .fsx nebo .fsscript). Buď tento kód přesuňte do souboru skriptu, nebo nahraďte tento odkaz možností kompilátoru -r. Pokud se tato direktiva spouští jako uživatelský vstup, můžete ji oddělit #if INTERACTIVE / #endif. diff --git a/src/Compiler/xlf/FSStrings.de.xlf b/src/Compiler/xlf/FSStrings.de.xlf index 2b98a1cd4f5..a4798632f7b 100644 --- a/src/Compiler/xlf/FSStrings.de.xlf +++ b/src/Compiler/xlf/FSStrings.de.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + Schnittstellenimplementierungen sollten normalerweise in der ersten Deklaration eines Typs angegeben werden. Schnittstellenimplementierungen in Augmentationen können dazu führen, dass auf statische Bindungen zugegriffen wird, bevor sie initialisiert werden. Dies gilt jedoch nur, wenn die Schnittstellenimplementierung während der Initialisierung der statischen Daten aufgerufen wird und sie wiederum auf die statischen Daten zugreift. Sie können diese Warnung mithilfe von "#nowarn "69"" entfernen, wenn Sie überprüft haben, dass dies nicht der Fall ist. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + #I-Direktiven dürfen nur in F#-Skriptdateien (Dateierweiterungen .fsx oder .fsscript) verwendet werden. Verschieben Sie entweder diesen Code in eine Skriptdatei, fügen Sie die Compileroption "-I" für diesen Verweis hinzu, oder trennen Sie die Direktive mit "#if INTERACTIVE"/"#endif" ab. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #r-Direktiven dürfen nur in F#-Skriptdateien (Dateierweiterungen .fsx oder .fsscript) verwendet werden. Verschieben Sie entweder diesen Code in eine Skriptdatei, oder ersetzen Sie diesen Verweis durch die Compileroption "-r". Wenn diese Anweisung als Benutzereingabe ausgeführt wird, trennen Sie sie mit "#if INTERACTIVE"/"#endif" ab. diff --git a/src/Compiler/xlf/FSStrings.es.xlf b/src/Compiler/xlf/FSStrings.es.xlf index 58bf8136087..49ca0efe4e2 100644 --- a/src/Compiler/xlf/FSStrings.es.xlf +++ b/src/Compiler/xlf/FSStrings.es.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + Normalmente, las implementaciones de interfaz deben proporcionarse en la declaración inicial de un tipo. Las implementaciones de interfaz en aumentos pueden dar lugar al acceso a enlaces estáticos antes de inicializarse, aunque solo si la implementación de interfaz se invoca durante la inicialización de los datos estáticos y, a su vez, obtiene acceso a los datos estáticos. Puede quitar esta advertencia con 'nowarn "69"' si ha comprobado que este no es el caso. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + Las directivas #I solo pueden utilizarse en archivos de script de F# (extensiones .fsx o .fsscript). Mueva este código a un archivo de script, agregue una opción de compilador '-I' para esta referencia o delimite la directiva con '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + Las directivas #r solo pueden utilizarse en archivos de script de F# (extensiones .fsx o .fsscript). Mueva este código a un archivo de script o sustituta esta referencia por la opción de compilador '-r'. Si esta directiva se ejecuta como entrada de usuario, puede delimitarla con '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.fr.xlf b/src/Compiler/xlf/FSStrings.fr.xlf index 82b7896dc35..7b56833eace 100644 --- a/src/Compiler/xlf/FSStrings.fr.xlf +++ b/src/Compiler/xlf/FSStrings.fr.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + Les implémentations d’interfaces doivent normalement être fournies lors de la déclaration initiale d’un type. Les implémentations d’interface dans les augmentations peuvent entraîner l’accès à des liaisons statiques avant leur initialisation, mais seulement si l’implémentation de l’interface est invoquée pendant l’initialisation des données statiques, et accède à son tour aux données statiques. Vous pouvez supprimer cet avertissement à l’aide de '#nowarn "69"' si vous avez vérifié que ce n’est pas le cas. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + #I directives ne peuvent être utilisées que dans les fichiers de script F# (extensions .fsx ou .fsscript). Déplacez ce code vers un fichier de script, ajoutez une option de compilateur '-I' pour cette référence ou délimitez la directive par '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #r directives ne peuvent être utilisées que dans les fichiers de script F# (extensions .fsx ou .fsscript). Déplacez ce code vers un fichier de script ou remplacez cette référence par l'option de compilateur '-r'. Si cette directive est exécutée en tant qu'entrée d'utilisateur, vous pouvez la délimiter avec '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.it.xlf b/src/Compiler/xlf/FSStrings.it.xlf index d472951805a..595f6758384 100644 --- a/src/Compiler/xlf/FSStrings.it.xlf +++ b/src/Compiler/xlf/FSStrings.it.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + In genere, le implementazioni di interfaccia devono essere specificate nella dichiarazione iniziale di un tipo. Le implementazioni di interfaccia negli aumenti possono portare all'accesso ai binding statici prima dell'inizializzazione, anche se l'implementazione dell'interfaccia viene richiamata durante l'inizializzazione dei dati statici e a sua volta accede ai dati statici. È possibile rimuovere questo avviso utilizzando '#nowarn "69"' se è stato verificato che il caso specifico non lo richiede. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + Le direttive #I possono essere usate solo in file di script F# (estensioni fsx o fsscript). Spostare il codice in un file di script, aggiungere un'opzione di compilazione '-I' per questo riferimento oppure delimitare la direttiva con '#if INTERACTIVE'/'#endif'. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #r direttive #I possono essere usate solo in file di script F# (estensioni fsx o fsscript). Spostare il codice in un file di script oppure sostituire questo riferimento con l'opzione del compilatore '-r'. Se questa direttiva viene eseguita come input utente, è possibile delimitarla con '#if INTERACTIVE'/'#endif'. diff --git a/src/Compiler/xlf/FSStrings.ja.xlf b/src/Compiler/xlf/FSStrings.ja.xlf index 75adc21ebe5..2b0f25af2ba 100644 --- a/src/Compiler/xlf/FSStrings.ja.xlf +++ b/src/Compiler/xlf/FSStrings.ja.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + 通常、インターフェイスの実装は、型の最初の宣言で指定する必要があります。拡張でのインターフェイス実装は、初期化前の静的バインディングへのアクセスを引き起こすことがあります。ただし、静的データの初期化中にそのインターフェイスの実装が呼び出された後に、静的データにアクセスする場合のみです。この件が問題でないと確認できたら、この警告を '#nowarn "69"' を使用して削除できます。 @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + #I ディレクティブを使用できるのは F# スクリプト ファイル (拡張子が .fsx または .fsscript) のみです。このコードをスクリプト ファイルに移動し、この参照に '-I' コンパイラー オプションを追加するか、ディレクティブを '#if INTERACTIVE'/'#endif' で区切ってください。 #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #r ディレクティブを使用できるのは F# スクリプト ファイル (拡張子が .fsx または .fsscript) のみです。このコードをスクリプト ファイルに移動するか、この参照を '-r' コンパイラ オプションに置き換えてください。このディレクティブがユーザー入力として実行されている場合は、'#if INTERACTIVE'/'#endif' でディレクティブを区切ることができます。 diff --git a/src/Compiler/xlf/FSStrings.ko.xlf b/src/Compiler/xlf/FSStrings.ko.xlf index 0c281d399b2..a7641343802 100644 --- a/src/Compiler/xlf/FSStrings.ko.xlf +++ b/src/Compiler/xlf/FSStrings.ko.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + 인터페이스 구현은 일반적으로 유형의 초기 선언에 제공되어야 합니다. 확대의 인터페이스 구현은 초기화되기 전에 정적 바인딩에 액세스할 수 있지만 정적 데이터의 초기화 중에 인터페이스 구현이 호출되어 정적 데이터에 액세스하는 경우에만 가능합니다. 사실이 아님을 확인한 경우 #nowarn "69"를 사용하여 이 경고를 제거할 수 있습니다. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + #I 지시문은 F# 스크립트 파일(확장명 .fsx 또는 .fsscript)에서만 사용할 수 있습니다. 이 코드를 스크립트 파일로 이동하거나, 이 참조에 대한 '-I' 컴파일러 옵션을 추가하거나, 지시문을 '#if INTERACTIVE'/'#endif'로 구분하세요. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #r 지시문은 F# 스크립트 파일(확장명 .fsx 또는 .fsscript)에서만 사용할 수 있습니다. 이 코드를 스크립트 파일로 이동하거나 이 참조를 '-r' 컴파일러 옵션으로 바꾸세요. 이 지시문이 사용자 입력으로 실행되는 경우 지시문을 '#if INTERACTIVE'/'#endif'로 구분할 수 있습니다. diff --git a/src/Compiler/xlf/FSStrings.pl.xlf b/src/Compiler/xlf/FSStrings.pl.xlf index 1e0b51f8199..34d583d2d25 100644 --- a/src/Compiler/xlf/FSStrings.pl.xlf +++ b/src/Compiler/xlf/FSStrings.pl.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + Implementacje interfejsu powinny być zwykle podane w początkowej deklaracji typu. Implementacje interfejsu w rozszerzeniach mogą prowadzić do uzyskania dostępu do powiązań statycznych przed ich zainicjowaniem, chociaż tylko wtedy, gdy implementacja interfejsu jest wywoływana podczas inicjowania danych statycznych i z kolei uzyskuje dostęp do danych statycznych. To ostrzeżenie można usunąć przy użyciu #nowarn „69” jeśli zaznaczono, że tak nie jest. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + Dyrektywy #I mogą być używane tylko w plikach skryptów języka F# (rozszerzenia FSX lub FSSCRIPT). Przenieś ten kod do pliku skryptu, dodaj opcję kompilatora „-I” dla tego odwołania lub rozdziel dyrektywę przy użyciu elementu „#if INTERACTIVE'/'#endif”. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + Dyrektywy #r mogą być używane tylko w plikach skryptów języka F# (rozszerzenia FSX lub FSSCRIPT). Przenieś ten kod do pliku skryptu lub zastąp to odwołanie za pomocą opcji kompilatora „-r”. Jeśli ta dyrektywa jest wykonywana jako dane wejściowe użytkownika, możesz ją ograniczyć przy użyciu elementu „#if INTERACTIVE'/'#endif”. diff --git a/src/Compiler/xlf/FSStrings.pt-BR.xlf b/src/Compiler/xlf/FSStrings.pt-BR.xlf index 5d870ae4040..9e802b99c8f 100644 --- a/src/Compiler/xlf/FSStrings.pt-BR.xlf +++ b/src/Compiler/xlf/FSStrings.pt-BR.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + As implementações de interface normalmente devem ser fornecidas na declaração inicial de um tipo. As implementações de interface em aumentos podem levar ao acesso a associações estáticas antes de serem inicializadas, embora somente se a implementação de interface for chamada durante a inicialização dos dados estáticos e, por sua vez, o acesso aos dados estáticos. Você poderá remover este aviso usando #nowarn "69" se tiver verificado que este não é o caso. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + Diretivas #I só podem ser usadas em arquivos de script F# (extensões .fsx ou .fsscript). Mova este código para o arquivo de script e adicione uma opção de compilador "-I" para esta referência, ou então, delimite a diretiva com "#if INTERACTIVE"/"#endif". #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + Diretivas #r só podem ser usadas em arquivos de script F# (extensões .fsx ou .fsscript). Mova este código para um arquivo de script ou substitua essa referência com a opção do compilador "-r". Se essa diretiva estiver sendo executada como uma entrada do usuário, você poderá delimitá-lo com "#if INTERACTIVE"/"#endif". diff --git a/src/Compiler/xlf/FSStrings.ru.xlf b/src/Compiler/xlf/FSStrings.ru.xlf index a4275f1763d..afe017d8096 100644 --- a/src/Compiler/xlf/FSStrings.ru.xlf +++ b/src/Compiler/xlf/FSStrings.ru.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + Реализации интерфейса обычно следует указывать при начальном объявлении типа. Реализации интерфейса в расширениях могут привести к доступу к статическим привязкам до их инициализации, но только в том случае, если реализация интерфейса вызывается во время инициализации статических данных и, в свою очередь, осуществляет доступ к статическим данным. Вы можете удалить это предупреждение, используя "#nowarn "69"", если это не так. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + Директивы #I можно использовать только в файлах сценариев F# (расширения .fsx или .fsscript). Нужно либо переместить данный код в файл скрипта, либо добавить для данной ссылки параметр компилятора "-I", либо ограничить директиву с помощью "#if INTERACTIVE"/"#endif". #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + Директивы #r можно использовать только в файлах сценариев F# (расширения .fsx или .fsscript). Переместите этот код в файл сценария или замените эту ссылку параметром компилятора "-r". Если эта директива выполняется в качестве пользовательских входных данных, вы можете заключить ее в блок "#if INTERACTIVE"/"#endif". diff --git a/src/Compiler/xlf/FSStrings.tr.xlf b/src/Compiler/xlf/FSStrings.tr.xlf index f2aff261952..68faf3f9355 100644 --- a/src/Compiler/xlf/FSStrings.tr.xlf +++ b/src/Compiler/xlf/FSStrings.tr.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + Arabirim uygulamaları normalde bir türün ilk bildiriminde verilmelidir. Genişletmelerdeki arabirim uygulamaları, başlatılmadan önce statik bağlamalara erişilmesine neden olabilirse de bu yalnızca arabirim uygulaması statik verilerin başlatılması sırasında çağrılmışsa ve buna bağlı olarak statik verilere erişiyorsa olur. Bunun söz konusu olmadığından eminseniz #nowarn "69" seçeneğini kullanarak bu uyarıyı kaldırabilirsiniz. @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + #I yönergeleri yalnızca F# betik dosyalarında (.fsx veya .fsscript uzantılı) kullanılabilir. Ya bu kodu bir betik dosyasına taşıyıp bu başvuru için bir '-I' derleyici seçeneği ekleyin ya da yönergeyi '#if INTERACTIVE'/'#endif' ile sınırlandırın. #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #I yönergeleri yalnızca F# betik dosyalarında (.fsx veya .fsscript uzantılı) kullanılabilir. Bu kodu bir betik dosyasına taşıyın veya bu başvuruyu '-r' derleyici seçeneği ile değiştirin. Yönerge kullanıcı girişi olarak yürütülüyorsa, yönergeyi '#if INTERACTIVE'/'#endif' ile sınırlandırabilirsiniz. diff --git a/src/Compiler/xlf/FSStrings.zh-Hans.xlf b/src/Compiler/xlf/FSStrings.zh-Hans.xlf index 0f48c864825..432882db81e 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hans.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hans.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + 通常应在类型的初始声明中提供接口实现。扩充中的接口实现可能会导致在初始化静态绑定之前访问静态绑定,尽管只有在静态数据初始化期间调用了接口实现,并进而访问静态数据时才会发生这种情况。如果已经核实并非如此,则可以使用 '#nowarn "69"' 移除此警告。 @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + #I 指令只能用于 F# 脚本文件中(文件扩展名为 .fsx 或 .fsscript)。请将此代码添加到脚本文件中、添加此引用的 "-I" 编译器选项或使用 "#if INTERACTIVE"/"#endif" 分隔此指令。 #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #r 指令只能用于 F# 脚本文件中(文件扩展名为 .fsx 或 .fsscript)。请将此代码移动到脚本文件或使用 "-r" 编译器选项替换此引用。如果该指令作为用户输入执行,则可以使用 "#if INTERACTIVE"/"#endif" 分隔它。 diff --git a/src/Compiler/xlf/FSStrings.zh-Hant.xlf b/src/Compiler/xlf/FSStrings.zh-Hant.xlf index 088394d8925..0d50870b5c7 100644 --- a/src/Compiler/xlf/FSStrings.zh-Hant.xlf +++ b/src/Compiler/xlf/FSStrings.zh-Hant.xlf @@ -1574,7 +1574,7 @@ Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. - Interface implementations should normally be given on the initial declaration of a type. Interface implementations in augmentations may lead to accessing static bindings before they are initialized, though only if the interface implementation is invoked during initialization of the static data, and in turn access the static data. You may remove this warning using '#nowarn "69"' if you have checked this is not the case. + 通常應該在類型的初始宣告上指定介面實作。擴增中的介面實作可能會在初始化之前存取靜態繫結,但只有在初始化靜態資料時叫用介面實作,並依序存取靜態資料。如果您未檢查過這種情況,可以使用「#nowarn "69"」移除此警告。 @@ -1594,12 +1594,12 @@ #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. - #I directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file, add a '-I' compiler option for this reference or delimit the directive with delimit it with '#if INTERACTIVE'/'#endif'. + #I 指示詞只能用於 F# 指令碼檔案 (副檔名 .fsx 或 .fsscript) 中。請將這個程式碼移到指令碼檔案、為這個參考加入 '-I' 編譯器選項,或用 '#if INTERACTIVE'/'#endif' 分隔這個指示詞。 #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. - #r directives may only be used in F# script files (extensions .fsx or .fsscript). Either move this code to a script file or replace this reference with the '-r' compiler option. If this directive is being executed as user input, you may delimit it with '#if INTERACTIVE'/'#endif'. + #r 指示詞只能用於 F# 指令碼檔案 (副檔名為 .fsx 或 .fsscript) 中。請將此程式碼移至指令碼檔案,或以 '-r' 編譯器選項取代此參考。若此指示詞要以使用者輸入的方式執行,可以使用 '#if INTERACTIVE'/'#endif' 加以分隔。