Skip to content

Commit 0825e8c

Browse files
Add FSharpType.IsMeasureType (#14978)
* Add FSharpType.IsMeasureType * Surface area updated --------- Co-authored-by: Tomas Grosup <[email protected]>
1 parent 2ce1825 commit 0825e8c

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

src/Compiler/Symbols/Symbols.fs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2423,6 +2423,13 @@ type FSharpType(cenv, ty:TType) =
24232423
| TType_app _ | TType_measure (Measure.Const _ | Measure.Prod _ | Measure.Inv _ | Measure.One) -> true
24242424
| _ -> false
24252425

2426+
member _.IsMeasureType =
2427+
isResolved() &&
2428+
protect <| fun () ->
2429+
match stripTyparEqns ty with
2430+
| TType_measure _ -> true
2431+
| _ -> false
2432+
24262433
member _.IsTupleType =
24272434
isResolved() &&
24282435
protect <| fun () ->

src/Compiler/Symbols/Symbols.fsi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1073,6 +1073,9 @@ type FSharpType =
10731073
/// Get the generic arguments for a tuple type, a function type or a type constructed using a named entity
10741074
member GenericArguments: IList<FSharpType>
10751075

1076+
/// Indicates if the type is a measure type.
1077+
member IsMeasureType: bool
1078+
10761079
/// Indicates if the type is a tuple type (reference or struct). The GenericArguments property returns the elements of the tuple type.
10771080
member IsTupleType: bool
10781081

tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.debug.bsl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5066,6 +5066,7 @@ FSharp.Compiler.Symbols.FSharpType: Boolean IsAbbreviation
50665066
FSharp.Compiler.Symbols.FSharpType: Boolean IsAnonRecordType
50675067
FSharp.Compiler.Symbols.FSharpType: Boolean IsFunctionType
50685068
FSharp.Compiler.Symbols.FSharpType: Boolean IsGenericParameter
5069+
FSharp.Compiler.Symbols.FSharpType: Boolean IsMeasureType
50695070
FSharp.Compiler.Symbols.FSharpType: Boolean IsStructTupleType
50705071
FSharp.Compiler.Symbols.FSharpType: Boolean IsTupleType
50715072
FSharp.Compiler.Symbols.FSharpType: Boolean IsUnresolved
@@ -5074,6 +5075,7 @@ FSharp.Compiler.Symbols.FSharpType: Boolean get_IsAbbreviation()
50745075
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsAnonRecordType()
50755076
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsFunctionType()
50765077
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsGenericParameter()
5078+
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsMeasureType()
50775079
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsStructTupleType()
50785080
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsTupleType()
50795081
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsUnresolved()

tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.SurfaceArea.netstandard20.release.bsl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5066,6 +5066,7 @@ FSharp.Compiler.Symbols.FSharpType: Boolean IsAbbreviation
50665066
FSharp.Compiler.Symbols.FSharpType: Boolean IsAnonRecordType
50675067
FSharp.Compiler.Symbols.FSharpType: Boolean IsFunctionType
50685068
FSharp.Compiler.Symbols.FSharpType: Boolean IsGenericParameter
5069+
FSharp.Compiler.Symbols.FSharpType: Boolean IsMeasureType
50695070
FSharp.Compiler.Symbols.FSharpType: Boolean IsStructTupleType
50705071
FSharp.Compiler.Symbols.FSharpType: Boolean IsTupleType
50715072
FSharp.Compiler.Symbols.FSharpType: Boolean IsUnresolved
@@ -5074,6 +5075,7 @@ FSharp.Compiler.Symbols.FSharpType: Boolean get_IsAbbreviation()
50745075
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsAnonRecordType()
50755076
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsFunctionType()
50765077
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsGenericParameter()
5078+
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsMeasureType()
50775079
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsStructTupleType()
50785080
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsTupleType()
50795081
FSharp.Compiler.Symbols.FSharpType: Boolean get_IsUnresolved()

0 commit comments

Comments
 (0)