From 2e1faba0cbdce9ba2c13733bda691496167e31cc Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Mon, 7 Jul 2025 11:39:13 +0200 Subject: [PATCH 1/7] Preview>V10:AllowAccessModifiersToAutoPropertiesGettersAndSetters --- src/Compiler/Facilities/LanguageFeatures.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Facilities/LanguageFeatures.fs b/src/Compiler/Facilities/LanguageFeatures.fs index daabcd21d1b..8a51f653b8b 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fs +++ b/src/Compiler/Facilities/LanguageFeatures.fs @@ -236,11 +236,11 @@ type LanguageVersion(versionText) = LanguageFeature.BetterAnonymousRecordParsing, languageVersion100 LanguageFeature.ScopedNowarn, languageVersion100 LanguageFeature.AllowTypedLetOrUseBang, languageVersion100 + LanguageFeature.AllowAccessModifiersToAutoPropertiesGettersAndSetters, languageVersion100 // F# preview (still preview in 10.0) LanguageFeature.UnmanagedConstraintCsharpInterop, previewVersion // not enabled because: https://github.com/dotnet/fsharp/issues/17509 - LanguageFeature.FromEndSlicing, previewVersion // Unfinished features --- needs work - LanguageFeature.AllowAccessModifiersToAutoPropertiesGettersAndSetters, previewVersion // Stopped printing arguments to indexed properties + LanguageFeature.FromEndSlicing, previewVersion // Unfinished features --- needs work ] static let defaultLanguageVersion = LanguageVersion("default") From 39f45b80e2f31f2852dc1b9d2a9ed59bd9b6bf19 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Mon, 7 Jul 2025 16:27:06 +0200 Subject: [PATCH 2/7] Use Preview -> Use 10 --- .../AutoPropsWithModifierBeforeGetSet.fs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs index 7e7cdff06cc..d30dfff697a 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs @@ -192,9 +192,9 @@ type A = |> compile |> shouldFail |> withDiagnostics [ - (Error 3350, Line 5, Col 24, Line 5, Col 32, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 'PREVIEW' or greater.") - (Error 3350, Line 6, Col 24, Line 6, Col 32, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 'PREVIEW' or greater.") - (Error 3350, Line 7, Col 24, Line 7, Col 32, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 'PREVIEW' or greater.") - (Error 3350, Line 4, Col 32, Line 4, Col 40, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 'PREVIEW' or greater.") - (Error 3350, Line 6, Col 32, Line 6, Col 40, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 'PREVIEW' or greater.") + (Error 3350, Line 5, Col 24, Line 5, Col 32, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 10.0 or greater.") + (Error 3350, Line 6, Col 24, Line 6, Col 32, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 10.0 or greater.") + (Error 3350, Line 7, Col 24, Line 7, Col 32, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 10.0 or greater.") + (Error 3350, Line 4, Col 32, Line 4, Col 40, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 10.0 or greater.") + (Error 3350, Line 6, Col 32, Line 6, Col 40, "Feature 'Allow access modifiers to auto properties getters and setters' is not available in F# 8.0. Please use language version 10.0 or greater.") ] From 7e020580f0af1adeb80bd8fad134d6bea1e0e23c Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Tue, 8 Jul 2025 13:39:12 +0200 Subject: [PATCH 3/7] Dont print superflous `with get` on members that do not need it --- src/Compiler/Checking/NicePrint.fs | 5 +++-- .../FSharp.Compiler.ComponentTests/Signatures/TestHelpers.fs | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Checking/NicePrint.fs b/src/Compiler/Checking/NicePrint.fs index f1de3d43389..77b3a6e3acb 100644 --- a/src/Compiler/Checking/NicePrint.fs +++ b/src/Compiler/Checking/NicePrint.fs @@ -1413,9 +1413,10 @@ module PrintTastMemberOrVals = if short then tauL --- withGet else - let nameL = layoutMemberName denv vref niceMethodTypars argInfos tagProperty vref.DisplayNameCoreMangled prefixAccessModifier + let prefixAccess = prefixAccessModifier || isNil argInfos + let nameL = layoutMemberName denv vref niceMethodTypars argInfos tagProperty vref.DisplayNameCoreMangled prefixAccess let nameL = if short then nameL else mkInlineL denv vref.Deref nameL - stat --- ((nameL |> addColonL) ^^ (if isNil argInfos && not supportAccessModifiersBeforeGetSet then tauL else tauL --- withGet)) + stat --- ((nameL |> addColonL) ^^ (if isNil argInfos then tauL else (tauL --- withGet))) prettyTyparInst, resL | SynMemberKind.PropertySet -> diff --git a/tests/FSharp.Compiler.ComponentTests/Signatures/TestHelpers.fs b/tests/FSharp.Compiler.ComponentTests/Signatures/TestHelpers.fs index b778cb3d783..f0004aeb550 100644 --- a/tests/FSharp.Compiler.ComponentTests/Signatures/TestHelpers.fs +++ b/tests/FSharp.Compiler.ComponentTests/Signatures/TestHelpers.fs @@ -7,6 +7,8 @@ open FSharp.Test.Compiler let prependNewline v = String.Concat("\n", v) let assertEqualIgnoreLineEnding (x: string) (y: string) = + if (x<>y) then + printfn "Expected:\n%s\n\nActual:\n%s" x y Assert.Equal(x, y, ignoreLineEndingDifferences = true) let assertSingleSignatureBinding implementation signature = From be524cc5ebdcd75aa714a076ee5e3eae6559d93f Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Tue, 8 Jul 2025 14:20:55 +0200 Subject: [PATCH 4/7] Minimize changes in printing caused by AllowAccessModifiersToAutoPropertiesGettersAndSetters The change AllowAccessModifiersToAutoPropertiesGettersAndSetters affected printing of indexed members and also lead to dropping of "with get,set" for auto properties - the current `replace with ` logic has some flaws. If those are fixed, the behavior can be brought back - pay special attention to indexer related tests, in error messages and generated signatures. Special care also for properties where getter and setter have differing types. --- src/Compiler/Checking/NicePrint.fs | 25 +------------------ .../AutoPropsWithModifierBeforeGetSet.fs | 4 +-- .../Signatures/MemberTests.fs | 4 +-- 3 files changed, 5 insertions(+), 28 deletions(-) diff --git a/src/Compiler/Checking/NicePrint.fs b/src/Compiler/Checking/NicePrint.fs index 77b3a6e3acb..7dca2705946 100644 --- a/src/Compiler/Checking/NicePrint.fs +++ b/src/Compiler/Checking/NicePrint.fs @@ -1928,11 +1928,8 @@ module TastDefinitionPrinting = let layoutPropInfo denv (infoReader: InfoReader) m (pinfo: PropInfo) : Layout list = let amap = infoReader.amap - let supportAccessModifiersBeforeGetSet = - denv.g.langVersion.SupportsFeature Features.LanguageFeature.AllowAccessModifiersToAutoPropertiesGettersAndSetters - match pinfo.ArbitraryValRef with - | Some vref when not supportAccessModifiersBeforeGetSet -> + | Some vref -> match pinfo with | DifferentGetterAndSetter(getValRef, setValRef) -> let getSuffix = if pinfo.IsIndexer then emptyL else WordL.keywordWith ^^ WordL.keywordGet @@ -1952,26 +1949,6 @@ module TastDefinitionPrinting = [ propL ^^ WordL.keywordWith ^^ wordL (tagText "get, set") ] else [ propL ] - - | Some vref -> - let propL = PrintTastMemberOrVals.prettyLayoutOfValOrMemberNoInst denv infoReader vref - if pinfo.HasGetter && pinfo.HasSetter then - let rec ``replace 'with'`` layout newLayout = - match layout with - | Node(Leaf (text = text), _, _) when text.Text = "with" -> newLayout - | Node(l, r, i) -> Node(l, ``replace 'with'`` r newLayout , i) - | Attr(text, attr, l) -> Attr(text, attr, ``replace 'with'`` l newLayout ) - | Leaf _ - | ObjLeaf _ -> layout - - let getterAccess, setterAccess = - pinfo.GetterMethod.ArbitraryValRef |> Option.map _.Accessibility |> Option.defaultValue taccessPublic, - pinfo.SetterMethod.ArbitraryValRef |> Option.map _.Accessibility |> Option.defaultValue taccessPublic - let getSet = - WordL.keywordWith ^^ layoutAccessibilityCore denv getterAccess ^^ wordL (tagText "get") ^^ RightL.comma --- layoutAccessibilityCore denv setterAccess ^^ wordL (tagText "set") - [ ``replace 'with'`` propL getSet ] - else - [ propL ] | None -> let modifierAndMember = diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs index d30dfff697a..97749d24068 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/BasicGrammarElements/MemberDefinitions/MethodsAndProperties/AutoPropsWithModifierBeforeGetSet.fs @@ -165,9 +165,9 @@ but its signature specifies member A.E: int with set The accessibility specified in the signature is more than that specified in the implementation") (Error 0034, Line 7, Col 16, Line 7, Col 17, "Module 'Program' contains - member A.E: int with internal get + member internal A.E: int but its signature specifies - member A.E: int with get + member A.E: int The accessibility specified in the signature is more than that specified in the implementation") ] diff --git a/tests/FSharp.Compiler.ComponentTests/Signatures/MemberTests.fs b/tests/FSharp.Compiler.ComponentTests/Signatures/MemberTests.fs index aa0deb220d1..63668797f91 100644 --- a/tests/FSharp.Compiler.ComponentTests/Signatures/MemberTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/Signatures/MemberTests.fs @@ -22,7 +22,7 @@ type Foo = new: unit -> Foo - member internal X: key1: obj * key2: obj -> bool with get + member X: key1: obj * key2: obj -> bool with internal get member X: key1: obj * key2: obj -> obj with set""" @@ -46,4 +46,4 @@ type Foo = member Y: char with get - member internal Y: char with set""" + member Y: char with internal set""" From c887a539c3070d8c778f126067b0de01ba8631d8 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Tue, 8 Jul 2025 14:21:53 +0200 Subject: [PATCH 5/7] fantomas --- src/Compiler/Facilities/LanguageFeatures.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler/Facilities/LanguageFeatures.fs b/src/Compiler/Facilities/LanguageFeatures.fs index 8a51f653b8b..e72782ccf2b 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fs +++ b/src/Compiler/Facilities/LanguageFeatures.fs @@ -240,7 +240,7 @@ type LanguageVersion(versionText) = // F# preview (still preview in 10.0) LanguageFeature.UnmanagedConstraintCsharpInterop, previewVersion // not enabled because: https://github.com/dotnet/fsharp/issues/17509 - LanguageFeature.FromEndSlicing, previewVersion // Unfinished features --- needs work + LanguageFeature.FromEndSlicing, previewVersion // Unfinished features --- needs work ] static let defaultLanguageVersion = LanguageVersion("default") From 272b2c6154d9d0dfba472f0348d9130b16c9f174 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Tue, 8 Jul 2025 15:27:14 +0200 Subject: [PATCH 6/7] Fix GetValSignatureText for indexer properties (avoid regression that drops indexer argument types) --- src/Compiler/Symbols/Symbols.fs | 34 ++++++++++--------- .../FSharp.Compiler.Service.Tests/Symbols.fs | 2 ++ 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index a2407b7fad5..fb413eccea7 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -2401,22 +2401,24 @@ type FSharpMemberOrFunctionOrValue(cenv, d:FSharpMemberOrValData, item) = let stringValOfPropInfo (p: PropInfo) = let supportAccessModifiersBeforeGetSet = cenv.g.langVersion.SupportsFeature Features.LanguageFeature.AllowAccessModifiersToAutoPropertiesGettersAndSetters - if not supportAccessModifiersBeforeGetSet then - match p with - | DifferentGetterAndSetter(getValRef, setValRef) -> - let g = NicePrint.stringValOrMember displayEnv cenv.infoReader getValRef - let s = NicePrint.stringValOrMember displayEnv cenv.infoReader setValRef - $"{g}\n{s}" - | _ -> - let t = p.GetPropertyType(cenv.amap, m) |> NicePrint.layoutType displayEnv |> LayoutRender.showL - let withGetSet = - if p.HasGetter && p.HasSetter then "with get, set" - elif p.HasGetter then "with get" - elif p.HasSetter then "with set" - else "" - - $"member %s{p.DisplayName}: %s{t} %s{withGetSet}" - else + + match p with + | DifferentGetterAndSetter(getValRef, setValRef) when (not supportAccessModifiersBeforeGetSet || p.IsIndexer) -> + let g = NicePrint.stringValOrMember displayEnv cenv.infoReader getValRef + let s = NicePrint.stringValOrMember displayEnv cenv.infoReader setValRef + $"{g}\n{s}" + + | _ when not supportAccessModifiersBeforeGetSet-> + let t = p.GetPropertyType(cenv.amap, m) |> NicePrint.layoutType displayEnv |> LayoutRender.showL + let withGetSet = + if p.HasGetter && p.HasSetter then "with get, set" + elif p.HasGetter then "with get" + elif p.HasSetter then "with set" + else "" + + $"member %s{p.DisplayName}: %s{t} %s{withGetSet}" + + | _ -> let layoutAccessibilityCore (denv: DisplayEnv) accessibility = let isInternalCompPath x = match x with diff --git a/tests/FSharp.Compiler.Service.Tests/Symbols.fs b/tests/FSharp.Compiler.Service.Tests/Symbols.fs index 2da98810e0a..72df8fa58cc 100644 --- a/tests/FSharp.Compiler.Service.Tests/Symbols.fs +++ b/tests/FSharp.Compiler.Service.Tests/Symbols.fs @@ -786,6 +786,8 @@ module GetValSignatureText = | :? FSharpMemberOrFunctionOrValue as mfv -> let expected = expected.Replace("\r", "") let signature = mfv.GetValSignatureText(symbolUse.DisplayContext, symbolUse.Range) + if expected <> signature.Value then + printfn $"Expected:\n{expected}\n\n\nActual:\n{signature.Value}" Assert.Equal(expected, signature.Value) | symbol -> failwith $"Expected FSharpMemberOrFunctionOrValue, got %A{symbol}" From 915c10435229d7d56ce783aea675e71b4f79632d Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Tue, 8 Jul 2025 16:42:26 +0200 Subject: [PATCH 7/7] il bsl udate --- .../ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl | 4 ++-- ...lverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl index bc72e960ef4..756a6fa55d7 100644 --- a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl +++ b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Debug_netstandard2.0.bsl @@ -40,7 +40,7 @@ [IL]: Error [StackUnexpected]: : .$ServiceLexing+clo@924-515::Invoke([FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,Microsoft.FSharp.Core.Unit>)][offset 0x00000082][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : .$ServiceLexing+clo@924-515::Invoke([FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,Microsoft.FSharp.Core.Unit>)][offset 0x0000008B][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : .$ServiceLexing+clo@924-515::Invoke([FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,Microsoft.FSharp.Core.Unit>)][offset 0x00000094][found Char] Unexpected type on the stack. -[IL]: Error [StackUnexpected]: : .$Symbols+fullName@2496-1::Invoke([FSharp.Core]Microsoft.FSharp.Core.Unit)][offset 0x00000015][found Char] Unexpected type on the stack. +[IL]: Error [StackUnexpected]: : .$Symbols+fullName@2498-1::Invoke([FSharp.Core]Microsoft.FSharp.Core.Unit)][offset 0x00000015][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.CreateILModule+MainModuleBuilder::ConvertProductVersionToILVersionInfo(string)][offset 0x00000011][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.StaticLinking+TypeForwarding::followTypeForwardForILTypeRef([FSharp.Compiler.Service]FSharp.Compiler.AbstractIL.IL+ILTypeRef)][offset 0x00000010][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.CompilerOptions::getCompilerOption([FSharp.Compiler.Service]FSharp.Compiler.CompilerOptions+CompilerOption, [FSharp.Core]Microsoft.FSharp.Core.FSharpOption`1)][offset 0x000000E6][found Char] Unexpected type on the stack. @@ -60,7 +60,7 @@ [IL]: Error [StackUnexpected]: : FSharp.Compiler.CompilerConfig+TcConfig::.ctor([FSharp.Compiler.Service]FSharp.Compiler.CompilerConfig+TcConfigBuilder, bool)][offset 0x00000634][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.PatternMatchCompilation::isProblematicClause([FSharp.Compiler.Service]FSharp.Compiler.PatternMatchCompilation+MatchClause)][offset 0x00000065][found Byte] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : .$FSharp.Compiler.PatternMatchCompilation::.cctor()][offset 0x00000015][found Boolean] Unexpected type on the stack. -[IL]: Error [StackUnexpected]: : FSharp.Compiler.NicePrint+TastDefinitionPrinting+meths@2092-3::Invoke([FSharp.Compiler.Service]FSharp.Compiler.Infos+MethInfo)][offset 0x000000BE][found Char] Unexpected type on the stack. +[IL]: Error [StackUnexpected]: : FSharp.Compiler.NicePrint+TastDefinitionPrinting+meths@2070-3::Invoke([FSharp.Compiler.Service]FSharp.Compiler.Infos+MethInfo)][offset 0x000000BE][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.NicePrint+PrintUtilities::layoutXmlDoc([FSharp.Compiler.Service]FSharp.Compiler.TypedTreeOps+DisplayEnv, bool, [FSharp.Compiler.Service]FSharp.Compiler.Xml.XmlDoc, [FSharp.Compiler.Service]FSharp.Compiler.Text.Layout)][offset 0x00000033][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.TypeProviders::ValidateNamespaceName(string, [FSharp.Compiler.Service]FSharp.Compiler.Tainted`1, [FSharp.Compiler.Service]FSharp.Compiler.Text.Range, string)][offset 0x00000063][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.TypeProviders::ValidateExpectedName([FSharp.Compiler.Service]FSharp.Compiler.Text.Range, string[], string, [FSharp.Compiler.Service]FSharp.Compiler.Tainted`1)][offset 0x000000AD][found Char] Unexpected type on the stack. diff --git a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl index ec773d8ba15..b2afcae84a3 100644 --- a/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl +++ b/tests/ILVerify/ilverify_FSharp.Compiler.Service_Release_netstandard2.0.bsl @@ -39,7 +39,7 @@ [IL]: Error [StackUnexpected]: : .$ServiceLexing+clo@924-530::Invoke([FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,Microsoft.FSharp.Core.Unit>)][offset 0x00000064][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : .$ServiceLexing+clo@924-530::Invoke([FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,Microsoft.FSharp.Core.Unit>)][offset 0x0000006D][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : .$ServiceLexing+clo@924-530::Invoke([FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,Microsoft.FSharp.Core.Unit>)][offset 0x00000076][found Char] Unexpected type on the stack. -[IL]: Error [StackUnexpected]: : .$Symbols+fullName@2496-3::Invoke([FSharp.Core]Microsoft.FSharp.Core.Unit)][offset 0x00000030][found Char] Unexpected type on the stack. +[IL]: Error [StackUnexpected]: : .$Symbols+fullName@2498-3::Invoke([FSharp.Core]Microsoft.FSharp.Core.Unit)][offset 0x00000030][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.Driver+ProcessCommandLineFlags@286-1::Invoke(string)][offset 0x0000000B][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.Driver+ProcessCommandLineFlags@286-1::Invoke(string)][offset 0x00000014][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.CreateILModule+MainModuleBuilder::ConvertProductVersionToILVersionInfo(string)][offset 0x00000010][found Char] Unexpected type on the stack. @@ -65,7 +65,7 @@ [IL]: Error [StackUnexpected]: : FSharp.Compiler.IlxGen::HashRangeSorted([S.P.CoreLib]System.Collections.Generic.IDictionary`2>)][offset 0x00000012][found ref '[FSharp.Compiler.Service]FSharp.Compiler.IlxGen+HashRangeSorted@1873'][expected ref '[FSharp.Core]Microsoft.FSharp.Core.FSharpFunc`2,T0>'] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.PatternMatchCompilation::isProblematicClause([FSharp.Compiler.Service]FSharp.Compiler.PatternMatchCompilation+MatchClause)][offset 0x00000040][found Byte] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : .$FSharp.Compiler.PatternMatchCompilation::.cctor()][offset 0x0000000B][found Boolean] Unexpected type on the stack. -[IL]: Error [StackUnexpected]: : FSharp.Compiler.NicePrint+TastDefinitionPrinting+meths@2092-3::Invoke([FSharp.Compiler.Service]FSharp.Compiler.Infos+MethInfo)][offset 0x000000B3][found Char] Unexpected type on the stack. +[IL]: Error [StackUnexpected]: : FSharp.Compiler.NicePrint+TastDefinitionPrinting+meths@2070-3::Invoke([FSharp.Compiler.Service]FSharp.Compiler.Infos+MethInfo)][offset 0x000000B3][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.NicePrint+PrintUtilities::layoutXmlDoc([FSharp.Compiler.Service]FSharp.Compiler.TypedTreeOps+DisplayEnv, bool, [FSharp.Compiler.Service]FSharp.Compiler.Xml.XmlDoc, [FSharp.Compiler.Service]FSharp.Compiler.Text.Layout)][offset 0x00000034][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.TypeProviders::ValidateNamespaceName(string, [FSharp.Compiler.Service]FSharp.Compiler.Tainted`1, [FSharp.Compiler.Service]FSharp.Compiler.Text.Range, string)][offset 0x00000074][found Char] Unexpected type on the stack. [IL]: Error [StackUnexpected]: : FSharp.Compiler.TypeProviders::ValidateExpectedName([FSharp.Compiler.Service]FSharp.Compiler.Text.Range, string[], string, [FSharp.Compiler.Service]FSharp.Compiler.Tainted`1)][offset 0x000000A8][found Char] Unexpected type on the stack.