From cd4e6f127df449c4a422f35003720c46ef59254d Mon Sep 17 00:00:00 2001 From: Alfonso Garcia-Caro Date: Sun, 26 Mar 2023 02:02:45 +0900 Subject: [PATCH] FSharpType.IsMeasureType --- src/Compiler/Symbols/Symbols.fs | 7 +++++++ src/Compiler/Symbols/Symbols.fsi | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/Compiler/Symbols/Symbols.fs b/src/Compiler/Symbols/Symbols.fs index 0ddda4a2e13..67389041896 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 e9ce9d8b11e..68344ade4ef 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