diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index 0ddda4a2e1..6738904189 100644 --- a/src/Compiler/Symbols/Symbols.fs +++ b/src/Compiler/Symbols/Symbols.fs @@ -2410,6 +2410,13 @@ type FSharpType(cenv, ty:TType) = | TType_app _ | TType_measure (Measure.Const _ | Measure.Prod _ | Measure.Inv _ | Measure.One) -> true | _ -> false + member _.IsMeasureType = + isResolved() && + protect <| fun () -> + match stripTyparEqns ty with + | TType_measure _ -> true + | _ -> false + member _.IsTupleType = isResolved() && protect <| fun () -> diff --git a/src/Compiler/Symbols/Symbols.fsi b/src/Compiler/Symbols/Symbols.fsi index e9ce9d8b11..68344ade4e 100644 --- a/src/Compiler/Symbols/Symbols.fsi +++ b/src/Compiler/Symbols/Symbols.fsi @@ -1073,6 +1073,9 @@ type FSharpType = /// Get the generic arguments for a tuple type, a function type or a type constructed using a named entity member GenericArguments: IList + /// Indicates if the type is a measure type. + member IsMeasureType: bool + /// Indicates if the type is a tuple type (reference or struct). The GenericArguments property returns the elements of the tuple type. member IsTupleType: bool