@@ -440,7 +440,7 @@ module Query =
440440 let IsIEnumerableTy ( ty : System.Type ) = ty.IsGenericType && ty.GetGenericTypeDefinition() = IEnumerableTypeDef
441441
442442 // Check a tag type on QuerySource is IQueryable
443- let qTyIsIQueryable ( ty : System.Type ) = not ( ty.Equals ( typeof< IEnumerable>))
443+ let qTyIsIQueryable ( ty : System.Type ) = not ( Type.op _ Equality ( ty , typeof< IEnumerable>))
444444
445445 let FuncExprToDelegateExpr ( srcTy , targetTy , v , body ) =
446446 Expr.NewDelegate ( Linq.Expressions.Expression.GetFuncType [| srcTy; targetTy |], [ v], body)
@@ -588,21 +588,21 @@ module Query =
588588 let selector = MakeImplicitExpressionConversion selector
589589 let maker =
590590 match resTyNoNullable with
591- | ty when ty = typeof< double> -> mq_ double
592- | ty when ty = typeof< single> -> mq_ single
593- | ty when ty = typeof< decimal> -> mq_ decimal
594- | ty when ty = typeof< int32> -> mq_ int32
595- | ty when ty = typeof< int64> -> mq_ int64
591+ | ty when Type.op _ Equality ( ty , typeof< double>) -> mq_ double
592+ | ty when Type.op _ Equality ( ty , typeof< single>) -> mq_ single
593+ | ty when Type.op _ Equality ( ty , typeof< decimal>) -> mq_ decimal
594+ | ty when Type.op _ Equality ( ty , typeof< int32>) -> mq_ int32
595+ | ty when Type.op _ Equality ( ty , typeof< int64>) -> mq_ int64
596596 | _ -> failDueToUnsupportedInputTypeInSumByOrAverageBy()
597597 maker ([ srcItemTy], [ src; selector])
598598 else
599599 // Try to dynamically invoke a LINQ method if one exists, since these may be optimized over arrays etc.
600600 match resTyNoNullable with
601- | ty when ty = typeof< double> -> me_ double ([ srcItemTy], [ src; selector])
602- | ty when ty = typeof< single> -> me_ single ([ srcItemTy], [ src; selector])
603- | ty when ty = typeof< decimal> -> me_ decimal ([ srcItemTy], [ src; selector])
604- | ty when ty = typeof< int32> -> me_ int32 ([ srcItemTy], [ src; selector])
605- | ty when ty = typeof< int64> -> me_ int64 ([ srcItemTy], [ src; selector])
601+ | ty when Type.op _ Equality ( ty , typeof< double>) -> me_ double ([ srcItemTy], [ src; selector])
602+ | ty when Type.op _ Equality ( ty , typeof< single>) -> me_ single ([ srcItemTy], [ src; selector])
603+ | ty when Type.op _ Equality ( ty , typeof< decimal>) -> me_ decimal ([ srcItemTy], [ src; selector])
604+ | ty when Type.op _ Equality ( ty , typeof< int32>) -> me_ int32 ([ srcItemTy], [ src; selector])
605+ | ty when Type.op _ Equality ( ty , typeof< int64>) -> me_ int64 ([ srcItemTy], [ src; selector])
606606 | _ ->
607607 // The F# implementation needs a QuerySource as a parameter.
608608 let qTy = typeof< IEnumerable>
@@ -617,22 +617,22 @@ module Query =
617617 let selector = FuncExprToLinqFunc2Expression ( srcItemTy, resTy, v, res)
618618 let caller =
619619 match resTyNoNullable with
620- | ty when ty = typeof< double> -> cq_ double
621- | ty when ty = typeof< single> -> cq_ single
622- | ty when ty = typeof< decimal> -> cq_ decimal
623- | ty when ty = typeof< int32> -> cq_ int32
624- | ty when ty = typeof< int64> -> cq_ int64
620+ | ty when Type.op _ Equality ( ty , typeof< double>) -> cq_ double
621+ | ty when Type.op _ Equality ( ty , typeof< single>) -> cq_ single
622+ | ty when Type.op _ Equality ( ty , typeof< decimal>) -> cq_ decimal
623+ | ty when Type.op _ Equality ( ty , typeof< int32>) -> cq_ int32
624+ | ty when Type.op _ Equality ( ty , typeof< int64>) -> cq_ int64
625625 | _ -> failDueToUnsupportedInputTypeInSumByOrAverageBy()
626626 caller ([ srcItemTy], [ src; box selector]) : obj
627627 else
628628 // Try to dynamically invoke a LINQ method if one exists, since these may be optimized over arrays etc.
629629 let linqMethOpt =
630630 match resTyNoNullable with
631- | ty when ty = typeof< double> -> Some ce_ double
632- | ty when ty = typeof< single> -> Some ce_ single
633- | ty when ty = typeof< decimal> -> Some ce_ decimal
634- | ty when ty = typeof< int32> -> Some ce_ int32
635- | ty when ty = typeof< int64> -> Some ce_ int64
631+ | ty when Type.op _ Equality ( ty , typeof< double>) -> Some ce_ double
632+ | ty when Type.op _ Equality ( ty , typeof< single>) -> Some ce_ single
633+ | ty when Type.op _ Equality ( ty , typeof< decimal>) -> Some ce_ decimal
634+ | ty when Type.op _ Equality ( ty , typeof< int32>) -> Some ce_ int32
635+ | ty when Type.op _ Equality ( ty , typeof< int64>) -> Some ce_ int64
636636 | _ -> None
637637 match linqMethOpt with
638638 | Some ce ->
@@ -1617,7 +1617,7 @@ module Query =
16171617 let IQueryableTySpec = MakeIQueryableTy tyArg
16181618 // if result type of nested query is derived from IQueryable but not IQueryable itself (i.e. IOrderedQueryable)
16191619 // then add coercion to IQueryable so result type will match expected signature of QuerySource.Run
1620- if ( IQueryableTySpec.IsAssignableFrom replNestedQuery.Type) && not ( IQueryableTySpec.Equals replNestedQuery.Type) then
1620+ if ( IQueryableTySpec.IsAssignableFrom replNestedQuery.Type) && not ( Type.op _ Equality ( IQueryableTySpec , replNestedQuery.Type) ) then
16211621 Expr.Coerce ( replNestedQuery, IQueryableTySpec)
16221622 else
16231623 replNestedQuery
0 commit comments