From 7ed6a65b145cf272feed6ac65feee2cc5eb2f74b Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 1 Sep 2022 14:57:43 +0200 Subject: [PATCH 01/11] Symbols: add BasicQualifiedName, FSharpType.StrippedType --- src/Compiler/Symbols/Symbols.fs | 44 ++++++++++++++++++++++++-------- src/Compiler/Symbols/Symbols.fsi | 9 +++++++ 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index ec343ad2a8..359576673c 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -430,18 +430,27 @@ type FSharpEntity(cenv: SymbolEnv, entity: EntityRef) = Some (buildAccessPath (Some cp)) | Some _ -> None - member x.QualifiedName = + member x.CompiledRepresentation = checkIsResolved() - let fail() = invalidOp (sprintf "the type '%s' does not have a qualified name" x.LogicalName) -#if !NO_TYPEPROVIDERS - if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail() - #else - if entity.IsTypeAbbrev || entity.IsNamespace then fail() + + let fail () = + invalidOp (sprintf $"the type '{x.LogicalName}' does not have a qualified name") + +#if !NO_EXTENSIONTYPING + if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail () else +#else + if entity.IsTypeAbbrev || entity.IsNamespace then fail () else #endif - match entity.CompiledRepresentation with - | CompiledTypeRepr.ILAsmNamed(tref, _, _) -> tref.QualifiedName - | CompiledTypeRepr.ILAsmOpen _ -> fail() - + match entity.CompiledRepresentation with + | CompiledTypeRepr.ILAsmNamed(tref, _, _) -> tref + | CompiledTypeRepr.ILAsmOpen _ -> fail () + + member x.QualifiedName = + x.CompiledRepresentation.QualifiedName + + member x.BasicQualifiedName = + x.CompiledRepresentation.BasicQualifiedName + member x.FullName = checkIsResolved() match x.TryFullName with @@ -2478,6 +2487,21 @@ type FSharpType(cenv, ty:TType) = GetSuperTypeOfType cenv.g cenv.amap range0 ty |> Option.map (fun ty -> FSharpType(cenv, ty)) + member x.StrippedType = + FSharpType(cenv, stripTyEqnsWrtErasure EraseAll cenv.g ty) + + member x.BasicQualifiedName = + let fail () = + invalidOp (sprintf $"the type '{x}' does not have a qualified name") + + protect <| fun () -> + match stripTyparEqns ty with + | TType_app(tcref, _, _) -> + match tcref.CompiledRepresentation with + | CompiledTypeRepr.ILAsmNamed(tref, _, _) -> tref.BasicQualifiedName + | CompiledTypeRepr.ILAsmOpen _ -> fail () + | _ -> fail () + member _.Instantiate(instantiation:(FSharpGenericParameter * FSharpType) list) = let resTy = instType (instantiation |> List.map (fun (tyv, ty) -> tyv.TypeParameter, ty.Type)) ty FSharpType(cenv, resTy) diff --git a/src/Compiler/Symbols/Symbols.fsi b/src/Compiler/Symbols/Symbols.fsi index 024448bf17..91f2e0eeb9 100644 --- a/src/Compiler/Symbols/Symbols.fsi +++ b/src/Compiler/Symbols/Symbols.fsi @@ -217,6 +217,9 @@ type FSharpEntity = /// Get the fully qualified name of the type or module member QualifiedName: string + /// The fully qualified name of the type or module without strong assembly name. + member BasicQualifiedName: string + /// Get the full name of the type or module member FullName: string @@ -1108,6 +1111,12 @@ type FSharpType = /// if it is an instantiation of a generic type. member BaseType: FSharpType option + /// Canonical form of the type with abbreviations, measures, and F# tuples and functions erased. + member StrippedType: FSharpType + + /// The fully qualified name of the type or module without strong assembly name. + member BasicQualifiedName: string + /// Adjust the type by removing any occurrences of type inference variables, replacing them /// systematically with lower-case type inference variables such as 'a. static member Prettify: ty: FSharpType -> FSharpType From 61971c945a2ad0fe5500ae2af0e71f3c0868d8bc Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 1 Sep 2022 15:04:16 +0200 Subject: [PATCH 02/11] Add FSharpEntity.AsType --- src/Compiler/Symbols/Symbols.fs | 4 ++++ src/Compiler/Symbols/Symbols.fsi | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index 359576673c..b1da22deee 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -750,6 +750,10 @@ type FSharpEntity(cenv: SymbolEnv, entity: EntityRef) = | None -> invalidOp "not a type abbreviation" | Some ty -> FSharpType(cenv, ty) + member _.AsType() = + let ty = generalizedTyconRef cenv.g entity + FSharpType(cenv, ty) + override _.Attributes = if isUnresolved() then makeReadOnlyCollection [] else GetAttribInfosOfEntity cenv.g cenv.amap range0 entity diff --git a/src/Compiler/Symbols/Symbols.fsi b/src/Compiler/Symbols/Symbols.fsi index 91f2e0eeb9..f99ef2bb13 100644 --- a/src/Compiler/Symbols/Symbols.fsi +++ b/src/Compiler/Symbols/Symbols.fsi @@ -349,6 +349,9 @@ type FSharpEntity = /// Get the type abbreviated by an F# type abbreviation member AbbreviatedType: FSharpType + /// Instantiates FSharpType + member AsType: unit -> FSharpType + /// Get the cases of a union type member UnionCases: IList From 7b685643d883ce1cd4dc48e33a786e6ca7988b5e Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 1 Sep 2022 16:18:31 +0200 Subject: [PATCH 03/11] Add Mfv.IsRefCell --- src/Compiler/Symbols/Symbols.fs | 5 +++++ src/Compiler/Symbols/Symbols.fsi | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index b1da22deee..a1d2f21444 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -2258,6 +2258,11 @@ type FSharpMemberOrFunctionOrValue(cenv, d:FSharpMemberOrValData, item) = | V vref -> isForallFunctionTy cenv.g vref.Type | _ -> false + member x.IsRefCell = + match d with + | V vref -> not vref.IsCtorThisVal && isRefCellTy cenv.g vref.Type + | _ -> false + override x.Equals(other: obj) = box x === other || match other with diff --git a/src/Compiler/Symbols/Symbols.fsi b/src/Compiler/Symbols/Symbols.fsi index f99ef2bb13..ff0016f4e5 100644 --- a/src/Compiler/Symbols/Symbols.fsi +++ b/src/Compiler/Symbols/Symbols.fsi @@ -939,6 +939,9 @@ type FSharpMemberOrFunctionOrValue = /// Indicated if this is a value compiled to a method member IsValCompiledAsMethod: bool + /// Indicates if this is a ref cell + member IsRefCell: bool + /// Indicates if this is a function member IsFunction: bool From 30ad1f7c74bd6111571a256ad917e0bc019e0bb4 Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 1 Sep 2022 16:19:10 +0200 Subject: [PATCH 04/11] Remove duplicate Mfv.IsFunction definition --- src/Compiler/Symbols/Symbols.fsi | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Compiler/Symbols/Symbols.fsi b/src/Compiler/Symbols/Symbols.fsi index ff0016f4e5..03e2ac172e 100644 --- a/src/Compiler/Symbols/Symbols.fsi +++ b/src/Compiler/Symbols/Symbols.fsi @@ -942,9 +942,6 @@ type FSharpMemberOrFunctionOrValue = /// Indicates if this is a ref cell member IsRefCell: bool - /// Indicates if this is a function - member IsFunction: bool - /// Indicated if this is a value member IsValue: bool From db119fd1672803b606d47e80c0c35cb0be301fcb Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 1 Sep 2022 16:19:51 +0200 Subject: [PATCH 05/11] Update define --- src/Compiler/Symbols/Symbols.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index a1d2f21444..496bc82469 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -436,7 +436,7 @@ type FSharpEntity(cenv: SymbolEnv, entity: EntityRef) = let fail () = invalidOp (sprintf $"the type '{x.LogicalName}' does not have a qualified name") -#if !NO_EXTENSIONTYPING +#if !NO_TYPEPROVIDERS if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail () else #else if entity.IsTypeAbbrev || entity.IsNamespace then fail () else From b44bbc3f1a5a621a2a8056ccc264f8ebe8347784 Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 1 Sep 2022 16:21:13 +0200 Subject: [PATCH 06/11] Reduce diff --- src/Compiler/Symbols/Symbols.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index 496bc82469..ba2373cabd 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -437,9 +437,9 @@ type FSharpEntity(cenv: SymbolEnv, entity: EntityRef) = invalidOp (sprintf $"the type '{x.LogicalName}' does not have a qualified name") #if !NO_TYPEPROVIDERS - if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail () else + if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail () #else - if entity.IsTypeAbbrev || entity.IsNamespace then fail () else + if entity.IsTypeAbbrev || entity.IsNamespace then fail () #endif match entity.CompiledRepresentation with | CompiledTypeRepr.ILAsmNamed(tref, _, _) -> tref From e0b96b7ff84a056efc3b3f58d6b7c4acbf946e11 Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Thu, 1 Sep 2022 21:46:52 +0200 Subject: [PATCH 07/11] Cleanup --- src/Compiler/Symbols/Symbols.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index ba2373cabd..a3861bb6df 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -434,7 +434,7 @@ type FSharpEntity(cenv: SymbolEnv, entity: EntityRef) = checkIsResolved() let fail () = - invalidOp (sprintf $"the type '{x.LogicalName}' does not have a qualified name") + invalidOp $"the type '{x.LogicalName}' does not have a qualified name" #if !NO_TYPEPROVIDERS if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail () @@ -2501,7 +2501,7 @@ type FSharpType(cenv, ty:TType) = member x.BasicQualifiedName = let fail () = - invalidOp (sprintf $"the type '{x}' does not have a qualified name") + invalidOp $"the type '{x}' does not have a qualified name" protect <| fun () -> match stripTyparEqns ty with From 233c7ec5a28040d14916f111df69a36c962e0191 Mon Sep 17 00:00:00 2001 From: Eugene Auduchinok Date: Mon, 12 Sep 2022 11:48:47 +0200 Subject: [PATCH 08/11] Update surface --- ...harp.CompilerService.SurfaceArea.netstandard.expected | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected b/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected index b808314ad5..c200ecf78b 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected @@ -4508,6 +4508,7 @@ FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpAccessibilit FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpDelegateSignature FSharpDelegateSignature FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpDelegateSignature get_FSharpDelegateSignature() FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpType AbbreviatedType +FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpType AsType() FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpType get_AbbreviatedType() FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpXmlDoc XmlDoc FSharp.Compiler.Symbols.FSharpEntity: FSharp.Compiler.Symbols.FSharpXmlDoc get_XmlDoc() @@ -4553,6 +4554,7 @@ FSharp.Compiler.Symbols.FSharpEntity: System.Collections.Generic.IList`1[FSharp. FSharp.Compiler.Symbols.FSharpEntity: System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpUnionCase] UnionCases FSharp.Compiler.Symbols.FSharpEntity: System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpUnionCase] get_UnionCases() FSharp.Compiler.Symbols.FSharpEntity: System.String AccessPath +FSharp.Compiler.Symbols.FSharpEntity: System.String BasicQualifiedName FSharp.Compiler.Symbols.FSharpEntity: System.String CompiledName FSharp.Compiler.Symbols.FSharpEntity: System.String DisplayName FSharp.Compiler.Symbols.FSharpEntity: System.String FullName @@ -4561,6 +4563,7 @@ FSharp.Compiler.Symbols.FSharpEntity: System.String QualifiedName FSharp.Compiler.Symbols.FSharpEntity: System.String ToString() FSharp.Compiler.Symbols.FSharpEntity: System.String XmlDocSig FSharp.Compiler.Symbols.FSharpEntity: System.String get_AccessPath() +FSharp.Compiler.Symbols.FSharpEntity: System.String get_BasicQualifiedName() FSharp.Compiler.Symbols.FSharpEntity: System.String get_CompiledName() FSharp.Compiler.Symbols.FSharpEntity: System.String get_DisplayName() FSharp.Compiler.Symbols.FSharpEntity: System.String get_FullName() @@ -4866,6 +4869,7 @@ FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsOverrideOrExpli FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsProperty FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsPropertyGetterMethod FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsPropertySetterMethod +FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsRefCell FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsTypeFunction FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsUnresolved FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean IsValCompiledAsMethod @@ -4897,6 +4901,7 @@ FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsOverrideOrE FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsProperty() FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsPropertyGetterMethod() FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsPropertySetterMethod() +FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsRefCell() FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsTypeFunction() FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsUnresolved() FSharp.Compiler.Symbols.FSharpMemberOrFunctionOrValue: Boolean get_IsValCompiledAsMethod() @@ -5113,7 +5118,9 @@ FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType Abbreviat FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType Instantiate(Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.Symbols.FSharpGenericParameter,FSharp.Compiler.Symbols.FSharpType]]) FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType Prettify(FSharp.Compiler.Symbols.FSharpType) FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType StripAbbreviations() +FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType StrippedType FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType get_AbbreviatedType() +FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType get_StrippedType() FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Text.TaggedText[] FormatLayout(FSharp.Compiler.Symbols.FSharpDisplayContext) FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Text.TaggedText[] FormatLayoutWithConstraints(FSharp.Compiler.Symbols.FSharpDisplayContext) FSharp.Compiler.Symbols.FSharpType: Int32 GetHashCode() @@ -5126,9 +5133,11 @@ FSharp.Compiler.Symbols.FSharpType: System.Collections.Generic.IList`1[FSharp.Co FSharp.Compiler.Symbols.FSharpType: System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpType] get_AllInterfaces() FSharp.Compiler.Symbols.FSharpType: System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpType] get_GenericArguments() FSharp.Compiler.Symbols.FSharpType: System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpParameter]] Prettify(System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpParameter]]) +FSharp.Compiler.Symbols.FSharpType: System.String BasicQualifiedName FSharp.Compiler.Symbols.FSharpType: System.String Format(FSharp.Compiler.Symbols.FSharpDisplayContext) FSharp.Compiler.Symbols.FSharpType: System.String FormatWithConstraints(FSharp.Compiler.Symbols.FSharpDisplayContext) FSharp.Compiler.Symbols.FSharpType: System.String ToString() +FSharp.Compiler.Symbols.FSharpType: System.String get_BasicQualifiedName() FSharp.Compiler.Symbols.FSharpType: System.Tuple`2[System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpParameter]],FSharp.Compiler.Symbols.FSharpParameter] Prettify(System.Collections.Generic.IList`1[System.Collections.Generic.IList`1[FSharp.Compiler.Symbols.FSharpParameter]], FSharp.Compiler.Symbols.FSharpParameter) FSharp.Compiler.Symbols.FSharpUnionCase FSharp.Compiler.Symbols.FSharpUnionCase: Boolean Equals(System.Object) From 2376c1e439e5670fbe4bdd48760589f9d69eee0c Mon Sep 17 00:00:00 2001 From: Don Syme Date: Thu, 27 Oct 2022 15:20:12 +0100 Subject: [PATCH 09/11] Update src/Compiler/Symbols/Symbols.fs Co-authored-by: Tomas Grosup --- src/Compiler/Symbols/Symbols.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index 410b79f8d9..499654b029 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -2501,7 +2501,7 @@ type FSharpType(cenv, ty:TType) = GetSuperTypeOfType cenv.g cenv.amap range0 ty |> Option.map (fun ty -> FSharpType(cenv, ty)) - member x.StrippedType = + member x.ErasedType= FSharpType(cenv, stripTyEqnsWrtErasure EraseAll cenv.g ty) member x.BasicQualifiedName = From 6223c88876395ff4a6fc7c8d3c2d35173bbf35ae Mon Sep 17 00:00:00 2001 From: Don Syme Date: Thu, 27 Oct 2022 15:21:07 +0100 Subject: [PATCH 10/11] Update src/Compiler/Symbols/Symbols.fsi Co-authored-by: Tomas Grosup --- src/Compiler/Symbols/Symbols.fsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler/Symbols/Symbols.fsi b/src/Compiler/Symbols/Symbols.fsi index 03e2ac172e..8a38e2cb03 100644 --- a/src/Compiler/Symbols/Symbols.fsi +++ b/src/Compiler/Symbols/Symbols.fsi @@ -1115,7 +1115,7 @@ type FSharpType = member BaseType: FSharpType option /// Canonical form of the type with abbreviations, measures, and F# tuples and functions erased. - member StrippedType: FSharpType + member ErasedType: FSharpType /// The fully qualified name of the type or module without strong assembly name. member BasicQualifiedName: string From d62433c0c0d9bd2eb4d2ac5f44517131283ed6a1 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Thu, 3 Nov 2022 15:26:53 +0100 Subject: [PATCH 11/11] renaming StrippedType to ErasedType --- .../FSharp.CompilerService.SurfaceArea.netstandard.expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected b/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected index 08b4ffe4bd..812bacc06f 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstandard.expected @@ -5116,9 +5116,9 @@ FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType Abbreviat FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType Instantiate(Microsoft.FSharp.Collections.FSharpList`1[System.Tuple`2[FSharp.Compiler.Symbols.FSharpGenericParameter,FSharp.Compiler.Symbols.FSharpType]]) FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType Prettify(FSharp.Compiler.Symbols.FSharpType) FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType StripAbbreviations() -FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType StrippedType +FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType ErasedType FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType get_AbbreviatedType() -FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType get_StrippedType() +FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Symbols.FSharpType get_ErasedType() FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Text.TaggedText[] FormatLayout(FSharp.Compiler.Symbols.FSharpDisplayContext) FSharp.Compiler.Symbols.FSharpType: FSharp.Compiler.Text.TaggedText[] FormatLayoutWithConstraints(FSharp.Compiler.Symbols.FSharpDisplayContext) FSharp.Compiler.Symbols.FSharpType: Int32 GetHashCode()