diff --git a/src/ProvidedTypes.fs b/src/ProvidedTypes.fs index 531e139..3e34f29 100644 --- a/src/ProvidedTypes.fs +++ b/src/ProvidedTypes.fs @@ -14044,25 +14044,59 @@ namespace ProviderImplementation.ProvidedTypes let stringTypeTgt = convTypeToTgt typeof let mathTypeTgt = convTypeToTgt typeof +#if FSHARP6_OR_GREATER let makeTypePattern tp = let tt = convTypeToTgt tp - fun (t : Type) -> if t = tt then Some() else None + fun (t : Type) -> if t = tt then ValueSome() else ValueNone + [] let (|Bool|_|) = makeTypePattern(typeof) + [] let (|SByte|_|) = makeTypePattern(typeof) + [] let (|Int16|_|) = makeTypePattern(typeof) + [] let (|Int32|_|) = makeTypePattern(typeof) + [] let (|Int64|_|) = makeTypePattern(typeof) + [] let (|Byte|_|) = makeTypePattern(typeof) + [] let (|UInt16|_|) = makeTypePattern(typeof) + [] let (|UInt32|_|) = makeTypePattern(typeof) + [] let (|UInt64|_|) = makeTypePattern(typeof) + [] let (|Single|_|) = makeTypePattern(typeof) + [] let (|Double|_|) = makeTypePattern(typeof) + [] let (|Char|_|) = makeTypePattern(typeof) + [] let (|Decimal|_|) = makeTypePattern(typeof) + [] let (|String|_|) = makeTypePattern(typeof) +#else + let makeTypePattern tp = + let tt = convTypeToTgt tp + fun (t : Type) -> if t = tt then Some() else None + let (|Bool|_|) = makeTypePattern(typeof) + let (|SByte|_|) = makeTypePattern(typeof) + let (|Int16|_|) = makeTypePattern(typeof) + let (|Int32|_|) = makeTypePattern(typeof) + let (|Int64|_|) = makeTypePattern(typeof) + let (|Byte|_|) = makeTypePattern(typeof) + let (|UInt16|_|) = makeTypePattern(typeof) + let (|UInt32|_|) = makeTypePattern(typeof) + let (|UInt64|_|) = makeTypePattern(typeof) + let (|Single|_|) = makeTypePattern(typeof) + let (|Double|_|) = makeTypePattern(typeof) + let (|Char|_|) = makeTypePattern(typeof) + let (|Decimal|_|) = makeTypePattern(typeof) + let (|String|_|) = makeTypePattern(typeof) +#endif let (|StaticMethod|_|) name tps (t : Type) = match t.GetMethod(name, BindingFlags.Static ||| BindingFlags.Public, null, tps, null) with | null -> None @@ -14115,7 +14149,10 @@ namespace ProviderImplementation.ProvidedTypes minfo1 = minfo2) -> Some(args) | _ -> None) - + +#if FSHARP6_OR_GREATER + [] +#endif let (|NaN|_|) = let operatorsType = convTypeToTgt (typedefof>.Assembly.GetType("Microsoft.FSharp.Core.Operators")) let minfo1 = operatorsType.GetProperty("NaN").GetGetMethod() @@ -14124,9 +14161,17 @@ namespace ProviderImplementation.ProvidedTypes | Call(None, minfo2, []) when (minfo1.MetadataToken = minfo2.MetadataToken && minfo1 = minfo2) -> +#if FSHARP6_OR_GREATER + ValueSome() + | _ -> ValueNone) +#else Some() | _ -> None) - +#endif + +#if FSHARP6_OR_GREATER + [] +#endif let (|NaNSingle|_|) = let operatorsType = convTypeToTgt (typedefof>.Assembly.GetType("Microsoft.FSharp.Core.Operators")) let minfo1 = operatorsType.GetProperty("NaNSingle").GetGetMethod() @@ -14135,8 +14180,13 @@ namespace ProviderImplementation.ProvidedTypes | Call(None, minfo2, []) when (minfo1.MetadataToken = minfo2.MetadataToken && minfo1 = minfo2) -> +#if FSHARP6_OR_GREATER + ValueSome() + | _ -> ValueNone) +#else Some() | _ -> None) +#endif let (|TypeOf|_|) = (|SpecificCall|_|) <@ typeof @>