1724 references to ExpressionType
Microsoft.AspNetCore.Components.Forms (6)
FieldIdentifier.cs (2)
101&& unaryExpression.NodeType == ExpressionType.Convert 144case BinaryExpression binaryExpression when binaryExpression.NodeType == ExpressionType.ArrayIndex:
src\Components\Shared\src\ExpressionFormatting\ExpressionFormatter.cs (4)
49case ExpressionType.Constant: 53case ExpressionType.Call: 80case ExpressionType.ArrayIndex: 100case ExpressionType.MemberAccess:
Microsoft.AspNetCore.Components.Web (4)
src\Components\Shared\src\ExpressionFormatting\ExpressionFormatter.cs (4)
49case ExpressionType.Constant: 53case ExpressionType.Call: 80case ExpressionType.ArrayIndex: 100case ExpressionType.MemberAccess:
Microsoft.AspNetCore.JsonPatch (5)
JsonPatchDocumentOfT.cs (5)
681case ExpressionType.ArrayIndex: 687case ExpressionType.Call: 693case ExpressionType.Convert: 697case ExpressionType.MemberAccess: 704case ExpressionType.Parameter:
Microsoft.AspNetCore.Mvc.Core (4)
ModelBinding\ModelBindingHelper.cs (4)
288if (expression.NodeType == ExpressionType.Convert || 289expression.NodeType == ExpressionType.ConvertChecked) 295if (expression.NodeType != ExpressionType.MemberAccess) 304if (memberExpression.Expression!.NodeType != ExpressionType.Parameter)
Microsoft.AspNetCore.Mvc.ViewFeatures (18)
ExpressionHelper.cs (7)
51case ExpressionType.Call: 72case ExpressionType.ArrayIndex: 83case ExpressionType.MemberAccess: 104case ExpressionType.Parameter: 147case ExpressionType.Call: 156case ExpressionType.ArrayIndex: 165case ExpressionType.MemberAccess:
ExpressionMetadataProvider.cs (5)
31case ExpressionType.ArrayIndex: 37case ExpressionType.Call: 42case ExpressionType.MemberAccess: 48memberExpression.Expression.NodeType == ExpressionType.Constant) 65case ExpressionType.Parameter:
LambdaExpressionComparer.cs (4)
44case ExpressionType.MemberAccess: 66case ExpressionType.ArrayIndex: 70case ExpressionType.Call: 88if (expression != null && expression.NodeType == ExpressionType.MemberAccess)
ModelStateDictionaryExtensions.cs (2)
166return expression?.NodeType == ExpressionType.Convert && 167expression.Operand?.NodeType == ExpressionType.MemberAccess &&
Microsoft.CodeAnalysis.CSharp (36)
Binder\Semantics\Operators\OperatorKindExtensions.cs (36)
336public static ExpressionType ToExpressionType(this BinaryOperatorKind kind, bool isCompoundAssignment) 342case BinaryOperatorKind.Multiplication: return ExpressionType.MultiplyAssign; 343case BinaryOperatorKind.Addition: return ExpressionType.AddAssign; 344case BinaryOperatorKind.Subtraction: return ExpressionType.SubtractAssign; 345case BinaryOperatorKind.Division: return ExpressionType.DivideAssign; 346case BinaryOperatorKind.Remainder: return ExpressionType.ModuloAssign; 347case BinaryOperatorKind.LeftShift: return ExpressionType.LeftShiftAssign; 348case BinaryOperatorKind.RightShift: return ExpressionType.RightShiftAssign; 349case BinaryOperatorKind.And: return ExpressionType.AndAssign; 350case BinaryOperatorKind.Xor: return ExpressionType.ExclusiveOrAssign; 351case BinaryOperatorKind.Or: return ExpressionType.OrAssign; 358case BinaryOperatorKind.Multiplication: return ExpressionType.Multiply; 359case BinaryOperatorKind.Addition: return ExpressionType.Add; 360case BinaryOperatorKind.Subtraction: return ExpressionType.Subtract; 361case BinaryOperatorKind.Division: return ExpressionType.Divide; 362case BinaryOperatorKind.Remainder: return ExpressionType.Modulo; 363case BinaryOperatorKind.LeftShift: return ExpressionType.LeftShift; 364case BinaryOperatorKind.RightShift: return ExpressionType.RightShift; 365case BinaryOperatorKind.Equal: return ExpressionType.Equal; 366case BinaryOperatorKind.NotEqual: return ExpressionType.NotEqual; 367case BinaryOperatorKind.GreaterThan: return ExpressionType.GreaterThan; 368case BinaryOperatorKind.LessThan: return ExpressionType.LessThan; 369case BinaryOperatorKind.GreaterThanOrEqual: return ExpressionType.GreaterThanOrEqual; 370case BinaryOperatorKind.LessThanOrEqual: return ExpressionType.LessThanOrEqual; 371case BinaryOperatorKind.And: return ExpressionType.And; 372case BinaryOperatorKind.Xor: return ExpressionType.ExclusiveOr; 373case BinaryOperatorKind.Or: return ExpressionType.Or; 380public static ExpressionType ToExpressionType(this UnaryOperatorKind kind) 386return ExpressionType.Increment; 390return ExpressionType.Decrement; 392case UnaryOperatorKind.UnaryPlus: return ExpressionType.UnaryPlus; 393case UnaryOperatorKind.UnaryMinus: return ExpressionType.Negate; 394case UnaryOperatorKind.LogicalNegation: return ExpressionType.Not; 395case UnaryOperatorKind.BitwiseComplement: return ExpressionType.OnesComplement; 396case UnaryOperatorKind.True: return ExpressionType.IsTrue; 397case UnaryOperatorKind.False: return ExpressionType.IsFalse;
Microsoft.CSharp (81)
Microsoft\CSharp\RuntimeBinder\Binder.cs (2)
33ExpressionType operation, 272ExpressionType operation,
Microsoft\CSharp\RuntimeBinder\BinderHelper.cs (37)
301&& (operatorPayload.Operation == ExpressionType.Increment || operatorPayload.Operation == ExpressionType.Decrement); 373internal static string GetCLROperatorName(this ExpressionType p) => 378ExpressionType.Add => SpecialNames.CLR_Add, 379ExpressionType.Subtract => SpecialNames.CLR_Subtract, 380ExpressionType.Multiply => SpecialNames.CLR_Multiply, 381ExpressionType.Divide => SpecialNames.CLR_Division, 382ExpressionType.Modulo => SpecialNames.CLR_Modulus, 383ExpressionType.LeftShift => SpecialNames.CLR_LShift, 384ExpressionType.RightShift => SpecialNames.CLR_RShift, 385ExpressionType.LessThan => SpecialNames.CLR_LT, 386ExpressionType.GreaterThan => SpecialNames.CLR_GT, 387ExpressionType.LessThanOrEqual => SpecialNames.CLR_LTE, 388ExpressionType.GreaterThanOrEqual => SpecialNames.CLR_GTE, 389ExpressionType.Equal => SpecialNames.CLR_Equality, 390ExpressionType.NotEqual => SpecialNames.CLR_Inequality, 391ExpressionType.And => SpecialNames.CLR_BitwiseAnd, 392ExpressionType.ExclusiveOr => SpecialNames.CLR_ExclusiveOr, 393ExpressionType.Or => SpecialNames.CLR_BitwiseOr, 396ExpressionType.AddAssign => SpecialNames.CLR_InPlaceAdd, 397ExpressionType.SubtractAssign => SpecialNames.CLR_InPlaceSubtract, 398ExpressionType.MultiplyAssign => SpecialNames.CLR_InPlaceMultiply, 399ExpressionType.DivideAssign => SpecialNames.CLR_InPlaceDivide, 400ExpressionType.ModuloAssign => SpecialNames.CLR_InPlaceModulus, 401ExpressionType.AndAssign => SpecialNames.CLR_InPlaceBitwiseAnd, 402ExpressionType.ExclusiveOrAssign => SpecialNames.CLR_InPlaceExclusiveOr, 403ExpressionType.OrAssign => SpecialNames.CLR_InPlaceBitwiseOr, 404ExpressionType.LeftShiftAssign => SpecialNames.CLR_InPlaceLShift, 405ExpressionType.RightShiftAssign => SpecialNames.CLR_InPlaceRShift, 408ExpressionType.Negate => SpecialNames.CLR_UnaryNegation, 409ExpressionType.UnaryPlus => SpecialNames.CLR_UnaryPlus, 410ExpressionType.Not => SpecialNames.CLR_LogicalNot, 411ExpressionType.OnesComplement => SpecialNames.CLR_OnesComplement, 412ExpressionType.IsTrue => SpecialNames.CLR_True, 413ExpressionType.IsFalse => SpecialNames.CLR_False, 415ExpressionType.Increment => SpecialNames.CLR_Increment, 416ExpressionType.Decrement => SpecialNames.CLR_Decrement,
Microsoft\CSharp\RuntimeBinder\CSharpBinaryOperationBinder.cs (1)
72ExpressionType operation,
Microsoft\CSharp\RuntimeBinder\CSharpUnaryOperationBinder.cs (1)
61ExpressionType operation,
Microsoft\CSharp\RuntimeBinder\DynamicDebuggerProxy.cs (4)
118ExpressionType opKind, 136public static object TryEvalUnaryOperators<T>(T obj, ExpressionType oper, Type accessibilityContext) 138if (oper == ExpressionType.IsTrue || oper == ExpressionType.IsFalse)
Microsoft\CSharp\RuntimeBinder\RuntimeBinder.cs (36)
1004private static OperatorKind GetOperatorKind(ExpressionType p) 1009private static OperatorKind GetOperatorKind(ExpressionType p, bool bIsLogical) 1018case ExpressionType.Add: 1020case ExpressionType.Subtract: 1022case ExpressionType.Multiply: 1024case ExpressionType.Divide: 1026case ExpressionType.Modulo: 1028case ExpressionType.LeftShift: 1030case ExpressionType.RightShift: 1032case ExpressionType.LessThan: 1034case ExpressionType.GreaterThan: 1036case ExpressionType.LessThanOrEqual: 1038case ExpressionType.GreaterThanOrEqual: 1040case ExpressionType.Equal: 1042case ExpressionType.NotEqual: 1044case ExpressionType.And: 1046case ExpressionType.ExclusiveOr: 1048case ExpressionType.Or: 1052case ExpressionType.AddAssign: 1054case ExpressionType.SubtractAssign: 1056case ExpressionType.MultiplyAssign: 1058case ExpressionType.DivideAssign: 1060case ExpressionType.ModuloAssign: 1062case ExpressionType.AndAssign: 1064case ExpressionType.ExclusiveOrAssign: 1066case ExpressionType.OrAssign: 1068case ExpressionType.LeftShiftAssign: 1070case ExpressionType.RightShiftAssign: 1074case ExpressionType.Negate: 1076case ExpressionType.UnaryPlus: 1078case ExpressionType.Not: 1080case ExpressionType.OnesComplement: 1082case ExpressionType.IsTrue: 1084case ExpressionType.IsFalse: 1088case ExpressionType.Increment: 1090case ExpressionType.Decrement:
Microsoft.VisualBasic.Core (26)
Microsoft\VisualBasic\CompilerServices\IDOBinder.vb (26)
269Dim linqOp As ExpressionType? = IDOUtils.LinqOperator(op) 273Dim linqOperator As ExpressionType = CType(linqOp, ExpressionType) 871Public Sub New(ByVal op As UserDefinedOperator, ByVal linqOp As ExpressionType) 919Public Sub New(ByVal op As UserDefinedOperator, ByVal linqOp As ExpressionType) 1158Friend Shared Function LinqOperator(ByVal vbOperator As UserDefinedOperator) As ExpressionType? 1162Return ExpressionType.Negate 1164Return ExpressionType.Not 1166Return ExpressionType.UnaryPlus 1168Return ExpressionType.Add 1170Return ExpressionType.Subtract 1172Return ExpressionType.Multiply 1174Return ExpressionType.Divide 1176Return ExpressionType.Power 1178Return ExpressionType.LeftShift 1180Return ExpressionType.RightShift 1182Return ExpressionType.Modulo 1184Return ExpressionType.Or 1186Return ExpressionType.ExclusiveOr 1188Return ExpressionType.And 1190Return ExpressionType.Equal 1192Return ExpressionType.NotEqual 1194Return ExpressionType.LessThan 1196Return ExpressionType.LessThanOrEqual 1198Return ExpressionType.GreaterThanOrEqual 1200Return ExpressionType.GreaterThan
netstandard (1)
netstandard.cs (1)
998[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Linq.Expressions.ExpressionType))]
System.ComponentModel.Composition (3)
System\ComponentModel\Composition\ConstraintServices.cs (3)
97return Expression.MakeBinary(ExpressionType.OrElse, 98Expression.MakeBinary(ExpressionType.OrElse, 112return Expression.MakeBinary(ExpressionType.AndAlso,
System.ComponentModel.Composition.Registration (4)
System\ComponentModel\Composition\Registration\PartBuilderOfT.cs (4)
50if (expr.NodeType == ExpressionType.MemberAccess) 105if (expr.NodeType != ExpressionType.New) 118if (argument.NodeType == ExpressionType.Call) 124if (parameter.NodeType == ExpressionType.Lambda)
System.Composition.Convention (5)
System\Composition\Convention\PartConventionBuilderOfT.cs (5)
38if (expr.NodeType == ExpressionType.Call) 109if (expr.NodeType == ExpressionType.MemberAccess) 168if (expr.NodeType != ExpressionType.New) 180if (argument.NodeType == ExpressionType.Call) 186if (parameter.NodeType == ExpressionType.Lambda)
System.Core (1)
System.Core.cs (1)
136[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(System.Linq.Expressions.ExpressionType))]
System.Linq.Expressions (1527)
System\Dynamic\BinaryOperationBinder.cs (32)
20protected BinaryOperationBinder(ExpressionType operation) 34public ExpressionType Operation { get; } 79internal static bool OperationIsValid(ExpressionType operation) 83case ExpressionType.Add: 84case ExpressionType.And: 85case ExpressionType.Divide: 86case ExpressionType.Equal: 87case ExpressionType.ExclusiveOr: 88case ExpressionType.GreaterThan: 89case ExpressionType.GreaterThanOrEqual: 90case ExpressionType.LeftShift: 91case ExpressionType.LessThan: 92case ExpressionType.LessThanOrEqual: 93case ExpressionType.Modulo: 94case ExpressionType.Multiply: 95case ExpressionType.NotEqual: 96case ExpressionType.Or: 97case ExpressionType.Power: 98case ExpressionType.RightShift: 99case ExpressionType.Subtract: 100case ExpressionType.AddAssign: 101case ExpressionType.AndAssign: 102case ExpressionType.DivideAssign: 103case ExpressionType.ExclusiveOrAssign: 104case ExpressionType.LeftShiftAssign: 105case ExpressionType.ModuloAssign: 106case ExpressionType.MultiplyAssign: 107case ExpressionType.OrAssign: 108case ExpressionType.PowerAssign: 109case ExpressionType.RightShiftAssign: 110case ExpressionType.SubtractAssign: 111case ExpressionType.Extension:
System\Dynamic\DynamicMetaObjectBinder.cs (1)
123if (body.NodeType != ExpressionType.Goto)
System\Dynamic\UnaryOperationBinder.cs (14)
20protected UnaryOperationBinder(ExpressionType operation) 35case ExpressionType.IsFalse: 36case ExpressionType.IsTrue: 47public ExpressionType Operation { get; } 86internal static bool OperationIsValid(ExpressionType operation) 90case ExpressionType.Negate: 91case ExpressionType.UnaryPlus: 92case ExpressionType.Not: 93case ExpressionType.Decrement: 94case ExpressionType.Increment: 95case ExpressionType.OnesComplement: 96case ExpressionType.IsTrue: 97case ExpressionType.IsFalse: 98case ExpressionType.Extension:
System\Dynamic\Utils\ExpressionUtils.cs (19)
100public static void ValidateArgumentTypes(MethodBase method, ExpressionType nodeKind, ref ReadOnlyCollection<Expression> arguments, string? methodParamName) 102Debug.Assert(nodeKind == ExpressionType.Invoke || nodeKind == ExpressionType.Call || nodeKind == ExpressionType.Dynamic || nodeKind == ExpressionType.New); 134public static void ValidateArgumentCount(MethodBase method, ExpressionType nodeKind, int count, ParameterInfo[] pis) 141case ExpressionType.New: 143case ExpressionType.Invoke: 145case ExpressionType.Dynamic: 146case ExpressionType.Call: 154public static Expression ValidateOneArgument(MethodBase method, ExpressionType nodeKind, Expression arguments, ParameterInfo pi, string? methodParamName, string argumentParamName, int index = -1) 171case ExpressionType.New: 173case ExpressionType.Invoke: 175case ExpressionType.Dynamic: 176case ExpressionType.Call: 198case ExpressionType.Index: 205case ExpressionType.MemberAccess: 235internal static ParameterInfo[] GetParametersForValidation(MethodBase method, ExpressionType nodeKind) 239if (nodeKind == ExpressionType.Dynamic)
System\Linq\Expressions\BinaryExpression.cs (342)
38private static bool IsOpAssignment(ExpressionType op) 42case ExpressionType.AddAssign: 43case ExpressionType.SubtractAssign: 44case ExpressionType.MultiplyAssign: 45case ExpressionType.AddAssignChecked: 46case ExpressionType.SubtractAssignChecked: 47case ExpressionType.MultiplyAssignChecked: 48case ExpressionType.DivideAssign: 49case ExpressionType.ModuloAssign: 50case ExpressionType.PowerAssign: 51case ExpressionType.AndAssign: 52case ExpressionType.OrAssign: 53case ExpressionType.RightShiftAssign: 54case ExpressionType.LeftShiftAssign: 55case ExpressionType.ExclusiveOrAssign: 100if (NodeType == ExpressionType.Equal) 126ExpressionType.MemberAccess => ReduceMember(), 127ExpressionType.Index => ReduceIndex(), 135private static ExpressionType GetBinaryOpFromAssignmentOp(ExpressionType op) 140ExpressionType.AddAssign => ExpressionType.Add, 141ExpressionType.AddAssignChecked => ExpressionType.AddChecked, 142ExpressionType.SubtractAssign => ExpressionType.Subtract, 143ExpressionType.SubtractAssignChecked => ExpressionType.SubtractChecked, 144ExpressionType.MultiplyAssign => ExpressionType.Multiply, 145ExpressionType.MultiplyAssignChecked => ExpressionType.MultiplyChecked, 146ExpressionType.DivideAssign => ExpressionType.Divide, 147ExpressionType.ModuloAssign => ExpressionType.Modulo, 148ExpressionType.PowerAssign => ExpressionType.Power, 149ExpressionType.AndAssign => ExpressionType.And, 150ExpressionType.OrAssign => ExpressionType.Or, 151ExpressionType.RightShiftAssign => ExpressionType.RightShift, 152ExpressionType.LeftShiftAssign => ExpressionType.LeftShift, 153ExpressionType.ExclusiveOrAssign => ExpressionType.ExclusiveOr, 163ExpressionType op = GetBinaryOpFromAssignmentOp(NodeType); 196ExpressionType op = GetBinaryOpFromAssignmentOp(NodeType); 255ExpressionType binaryOp = GetBinaryOpFromAssignmentOp(NodeType); 286if (NodeType == ExpressionType.Coalesce || NodeType == ExpressionType.Assign) 313internal static BinaryExpression Create(ExpressionType nodeType, Expression left, Expression right, Type type, MethodInfo? method, LambdaExpression? conversion) 315Debug.Assert(nodeType != ExpressionType.Assign); 318Debug.Assert(method == null && TypeUtils.AreEquivalent(type, right.Type) && nodeType == ExpressionType.Coalesce); 339ExpressionType kind = NodeType; 342(kind == ExpressionType.AndAlso || kind == ExpressionType.OrElse) && 357ExpressionType kind = NodeType; 359return (kind == ExpressionType.Equal || kind == ExpressionType.NotEqual) && 399string opName = NodeType == ExpressionType.AndAlso ? "op_False" : "op_True"; 460internal LogicalBinaryExpression(ExpressionType nodeType, Expression left, Expression right) 468public sealed override ExpressionType NodeType { get; } 495public sealed override ExpressionType NodeType => ExpressionType.Assign; 523public sealed override ExpressionType NodeType => ExpressionType.Coalesce; 535internal OpAssignMethodConversionBinaryExpression(ExpressionType nodeType, Expression left, Expression right, Type type, MethodInfo method, LambdaExpression conversion) 548internal SimpleBinaryExpression(ExpressionType nodeType, Expression left, Expression right, Type type) 555public sealed override ExpressionType NodeType { get; } 566internal MethodBinaryExpression(ExpressionType nodeType, Expression left, Expression right, Type type, MethodInfo method) 584/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Assign"/> 602private static BinaryExpression? GetUserDefinedBinaryOperator(ExpressionType binaryType, string name, Expression left, Expression right, bool liftToNull) 631private static BinaryExpression GetMethodBasedBinaryOperator(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, bool liftToNull) 662private static BinaryExpression GetMethodBasedAssignOperator(ExpressionType binaryType, Expression left, Expression right, MethodInfo method, LambdaExpression? conversion, bool liftToNull) 682private static BinaryExpression GetUserDefinedBinaryOperatorOrThrow(ExpressionType binaryType, string name, Expression left, Expression right, bool liftToNull) 695private static BinaryExpression GetUserDefinedAssignOperatorOrThrow(ExpressionType binaryType, string name, Expression left, Expression right, LambdaExpression? conversion, bool liftToNull) 717private static MethodInfo? GetUserDefinedBinaryOperator(ExpressionType binaryType, Type leftType, Type rightType, string name) 737private static bool IsLiftingConditionalLogicalOperator(Type left, Type right, MethodInfo? method, ExpressionType binaryType) 742(binaryType == ExpressionType.AndAlso || binaryType == ExpressionType.OrElse); 753private static void ValidateParamsWithOperandsOrThrow(Type paramType, Type operandType, ExpressionType exprType, string name) 799private static void ValidateUserDefinedConditionalLogicOperator(ExpressionType nodeType, Type left, Type right, MethodInfo method) 843private static void VerifyOpTrueFalse(ExpressionType nodeType, Type left, MethodInfo opTrue, string paramName) 870public static BinaryExpression MakeBinary(ExpressionType binaryType, Expression left, Expression right) 884public static BinaryExpression MakeBinary(ExpressionType binaryType, Expression left, Expression right, bool liftToNull, MethodInfo? method) 900public static BinaryExpression MakeBinary(ExpressionType binaryType, Expression left, Expression right, bool liftToNull, MethodInfo? method, LambdaExpression? conversion) => 903ExpressionType.Add => Add(left, right, method), 904ExpressionType.AddChecked => AddChecked(left, right, method), 905ExpressionType.Subtract => Subtract(left, right, method), 906ExpressionType.SubtractChecked => SubtractChecked(left, right, method), 907ExpressionType.Multiply => Multiply(left, right, method), 908ExpressionType.MultiplyChecked => MultiplyChecked(left, right, method), 909ExpressionType.Divide => Divide(left, right, method), 910ExpressionType.Modulo => Modulo(left, right, method), 911ExpressionType.Power => Power(left, right, method), 912ExpressionType.And => And(left, right, method), 913ExpressionType.AndAlso => AndAlso(left, right, method), 914ExpressionType.Or => Or(left, right, method), 915ExpressionType.OrElse => OrElse(left, right, method), 916ExpressionType.LessThan => LessThan(left, right, liftToNull, method), 917ExpressionType.LessThanOrEqual => LessThanOrEqual(left, right, liftToNull, method), 918ExpressionType.GreaterThan => GreaterThan(left, right, liftToNull, method), 919ExpressionType.GreaterThanOrEqual => GreaterThanOrEqual(left, right, liftToNull, method), 920ExpressionType.Equal => Equal(left, right, liftToNull, method), 921ExpressionType.NotEqual => NotEqual(left, right, liftToNull, method), 922ExpressionType.ExclusiveOr => ExclusiveOr(left, right, method), 923ExpressionType.Coalesce => Coalesce(left, right, conversion), 924ExpressionType.ArrayIndex => ArrayIndex(left, right), 925ExpressionType.RightShift => RightShift(left, right, method), 926ExpressionType.LeftShift => LeftShift(left, right, method), 927ExpressionType.Assign => Assign(left, right), 928ExpressionType.AddAssign => AddAssign(left, right, method, conversion), 929ExpressionType.AndAssign => AndAssign(left, right, method, conversion), 930ExpressionType.DivideAssign => DivideAssign(left, right, method, conversion), 931ExpressionType.ExclusiveOrAssign => ExclusiveOrAssign(left, right, method, conversion), 932ExpressionType.LeftShiftAssign => LeftShiftAssign(left, right, method, conversion), 933ExpressionType.ModuloAssign => ModuloAssign(left, right, method, conversion), 934ExpressionType.MultiplyAssign => MultiplyAssign(left, right, method, conversion), 935ExpressionType.OrAssign => OrAssign(left, right, method, conversion), 936ExpressionType.PowerAssign => PowerAssign(left, right, method, conversion), 937ExpressionType.RightShiftAssign => RightShiftAssign(left, right, method, conversion), 938ExpressionType.SubtractAssign => SubtractAssign(left, right, method, conversion), 939ExpressionType.AddAssignChecked => AddAssignChecked(left, right, method, conversion), 940ExpressionType.SubtractAssignChecked => SubtractAssignChecked(left, right, method, conversion), 941ExpressionType.MultiplyAssignChecked => MultiplyAssignChecked(left, right, method, conversion), 952/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Equal"/> 966/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Equal"/> 975return GetEqualityComparisonOperator(ExpressionType.Equal, "op_Equality", left, right, liftToNull); 977return GetMethodBasedBinaryOperator(ExpressionType.Equal, left, right, method, liftToNull); 985/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Equal"/> 994return new LogicalBinaryExpression(ExpressionType.Equal, left, right); 1004/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NotEqual"/> 1018/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NotEqual"/> 1027return GetEqualityComparisonOperator(ExpressionType.NotEqual, "op_Inequality", left, right, liftToNull); 1029return GetMethodBasedBinaryOperator(ExpressionType.NotEqual, left, right, method, liftToNull); 1037/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NotEqual"/> 1046return new LogicalBinaryExpression(ExpressionType.NotEqual, left, right); 1051private static BinaryExpression GetEqualityComparisonOperator(ExpressionType binaryType, string opName, Expression left, Expression right, bool liftToNull) 1097/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThan"/> 1111/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThan"/> 1120return GetComparisonOperator(ExpressionType.GreaterThan, "op_GreaterThan", left, right, liftToNull); 1122return GetMethodBasedBinaryOperator(ExpressionType.GreaterThan, left, right, method, liftToNull); 1130/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThan"/> 1145/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThan"/> 1154return GetComparisonOperator(ExpressionType.LessThan, "op_LessThan", left, right, liftToNull); 1156return GetMethodBasedBinaryOperator(ExpressionType.LessThan, left, right, method, liftToNull); 1164/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThanOrEqual"/> 1178/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.GreaterThanOrEqual"/> 1187return GetComparisonOperator(ExpressionType.GreaterThanOrEqual, "op_GreaterThanOrEqual", left, right, liftToNull); 1189return GetMethodBasedBinaryOperator(ExpressionType.GreaterThanOrEqual, left, right, method, liftToNull); 1197/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThanOrEqual"/> 1211/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LessThanOrEqual"/> 1220return GetComparisonOperator(ExpressionType.LessThanOrEqual, "op_LessThanOrEqual", left, right, liftToNull); 1222return GetMethodBasedBinaryOperator(ExpressionType.LessThanOrEqual, left, right, method, liftToNull); 1225private static BinaryExpression GetComparisonOperator(ExpressionType binaryType, string opName, Expression left, Expression right, bool liftToNull) 1250/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAlso"/> 1263/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAlso"/> 1277return new LogicalBinaryExpression(ExpressionType.AndAlso, left, right); 1281return new SimpleBinaryExpression(ExpressionType.AndAlso, left, right, left.Type); 1284method = GetUserDefinedBinaryOperator(ExpressionType.AndAlso, left.Type, right.Type, "op_BitwiseAnd"); 1287ValidateUserDefinedConditionalLogicOperator(ExpressionType.AndAlso, left.Type, right.Type, method); 1289return new MethodBinaryExpression(ExpressionType.AndAlso, left, right, returnType, method); 1291throw Error.BinaryOperatorNotDefined(ExpressionType.AndAlso, left.Type, right.Type); 1293ValidateUserDefinedConditionalLogicOperator(ExpressionType.AndAlso, left.Type, right.Type, method); 1295return new MethodBinaryExpression(ExpressionType.AndAlso, left, right, returnType, method); 1303/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrElse"/> 1316/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrElse"/> 1330return new LogicalBinaryExpression(ExpressionType.OrElse, left, right); 1334return new SimpleBinaryExpression(ExpressionType.OrElse, left, right, left.Type); 1337method = GetUserDefinedBinaryOperator(ExpressionType.OrElse, left.Type, right.Type, "op_BitwiseOr"); 1340ValidateUserDefinedConditionalLogicOperator(ExpressionType.OrElse, left.Type, right.Type, method); 1342return new MethodBinaryExpression(ExpressionType.OrElse, left, right, returnType, method); 1344throw Error.BinaryOperatorNotDefined(ExpressionType.OrElse, left.Type, right.Type); 1346ValidateUserDefinedConditionalLogicOperator(ExpressionType.OrElse, left.Type, right.Type, method); 1348return new MethodBinaryExpression(ExpressionType.OrElse, left, right, returnType, method); 1360/// <returns>A <see cref="BinaryExpression" /> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Coalesce"/> 1373/// <returns>A <see cref="BinaryExpression" /> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Coalesce"/> 1384return new SimpleBinaryExpression(ExpressionType.Coalesce, left, right, resultType); 1411throw Error.OperandTypesDoNotMatchParameters(ExpressionType.Coalesce, conversion.ToString()); 1418throw Error.OperandTypesDoNotMatchParameters(ExpressionType.Coalesce, conversion.ToString()); 1457/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Add"/> 1470/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Add"/> 1481return new SimpleBinaryExpression(ExpressionType.Add, left, right, left.Type); 1483return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.Add, "op_Addition", left, right, liftToNull: true); 1485return GetMethodBasedBinaryOperator(ExpressionType.Add, left, right, method, liftToNull: true); 1493/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssign"/> 1506/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssign"/> 1521/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssign"/> 1539return new SimpleBinaryExpression(ExpressionType.AddAssign, left, right, left.Type); 1541return GetUserDefinedAssignOperatorOrThrow(ExpressionType.AddAssign, "op_Addition", left, right, conversion, liftToNull: true); 1543return GetMethodBasedAssignOperator(ExpressionType.AddAssign, left, right, method, conversion, liftToNull: true); 1546private static void ValidateOpAssignConversionLambda(LambdaExpression conversion, Expression left, MethodInfo method, ExpressionType nodeType) 1575/// <see cref="ExpressionType.AddAssignChecked"/> and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> 1589/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssignChecked"/> 1604/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddAssignChecked"/> 1623return new SimpleBinaryExpression(ExpressionType.AddAssignChecked, left, right, left.Type); 1625return GetUserDefinedAssignOperatorOrThrow(ExpressionType.AddAssignChecked, "op_Addition", left, right, conversion, liftToNull: true); 1627return GetMethodBasedAssignOperator(ExpressionType.AddAssignChecked, left, right, method, conversion, liftToNull: true); 1635/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddChecked"/> 1648/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AddChecked"/> 1659return new SimpleBinaryExpression(ExpressionType.AddChecked, left, right, left.Type); 1661return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.AddChecked, "op_Addition", left, right, liftToNull: true); 1663return GetMethodBasedBinaryOperator(ExpressionType.AddChecked, left, right, method, liftToNull: true); 1671/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Subtract"/> 1684/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Subtract"/> 1695return new SimpleBinaryExpression(ExpressionType.Subtract, left, right, left.Type); 1697return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.Subtract, "op_Subtraction", left, right, liftToNull: true); 1699return GetMethodBasedBinaryOperator(ExpressionType.Subtract, left, right, method, liftToNull: true); 1707/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssign"/> 1720/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssign"/> 1735/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssign"/> 1753return new SimpleBinaryExpression(ExpressionType.SubtractAssign, left, right, left.Type); 1755return GetUserDefinedAssignOperatorOrThrow(ExpressionType.SubtractAssign, "op_Subtraction", left, right, conversion, liftToNull: true); 1757return GetMethodBasedAssignOperator(ExpressionType.SubtractAssign, left, right, method, conversion, liftToNull: true); 1765/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssignChecked"/> 1778/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssignChecked"/> 1793/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractAssignChecked"/> 1811return new SimpleBinaryExpression(ExpressionType.SubtractAssignChecked, left, right, left.Type); 1813return GetUserDefinedAssignOperatorOrThrow(ExpressionType.SubtractAssignChecked, "op_Subtraction", left, right, conversion, liftToNull: true); 1815return GetMethodBasedAssignOperator(ExpressionType.SubtractAssignChecked, left, right, method, conversion, liftToNull: true); 1823/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractChecked"/> 1836/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.SubtractChecked"/> 1847return new SimpleBinaryExpression(ExpressionType.SubtractChecked, left, right, left.Type); 1849return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.SubtractChecked, "op_Subtraction", left, right, liftToNull: true); 1851return GetMethodBasedBinaryOperator(ExpressionType.SubtractChecked, left, right, method, liftToNull: true); 1859/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Divide"/> 1872/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Divide"/> 1883return new SimpleBinaryExpression(ExpressionType.Divide, left, right, left.Type); 1885return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.Divide, "op_Division", left, right, liftToNull: true); 1887return GetMethodBasedBinaryOperator(ExpressionType.Divide, left, right, method, liftToNull: true); 1895/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.DivideAssign"/> 1908/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.DivideAssign"/> 1923/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.DivideAssign"/> 1941return new SimpleBinaryExpression(ExpressionType.DivideAssign, left, right, left.Type); 1943return GetUserDefinedAssignOperatorOrThrow(ExpressionType.DivideAssign, "op_Division", left, right, conversion, liftToNull: true); 1945return GetMethodBasedAssignOperator(ExpressionType.DivideAssign, left, right, method, conversion, liftToNull: true); 1953/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Modulo"/> 1966/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Modulo"/> 1977return new SimpleBinaryExpression(ExpressionType.Modulo, left, right, left.Type); 1979return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.Modulo, "op_Modulus", left, right, liftToNull: true); 1981return GetMethodBasedBinaryOperator(ExpressionType.Modulo, left, right, method, liftToNull: true); 1989/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ModuloAssign"/> 2002/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ModuloAssign"/> 2017/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ModuloAssign"/> 2035return new SimpleBinaryExpression(ExpressionType.ModuloAssign, left, right, left.Type); 2037return GetUserDefinedAssignOperatorOrThrow(ExpressionType.ModuloAssign, "op_Modulus", left, right, conversion, liftToNull: true); 2039return GetMethodBasedAssignOperator(ExpressionType.ModuloAssign, left, right, method, conversion, liftToNull: true); 2047/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Multiply"/> 2060/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Multiply"/> 2071return new SimpleBinaryExpression(ExpressionType.Multiply, left, right, left.Type); 2073return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.Multiply, "op_Multiply", left, right, liftToNull: true); 2075return GetMethodBasedBinaryOperator(ExpressionType.Multiply, left, right, method, liftToNull: true); 2083/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssign"/> 2096/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssign"/> 2111/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssign"/> 2129return new SimpleBinaryExpression(ExpressionType.MultiplyAssign, left, right, left.Type); 2131return GetUserDefinedAssignOperatorOrThrow(ExpressionType.MultiplyAssign, "op_Multiply", left, right, conversion, liftToNull: true); 2133return GetMethodBasedAssignOperator(ExpressionType.MultiplyAssign, left, right, method, conversion, liftToNull: true); 2141/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssignChecked"/> 2154/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssignChecked"/> 2169/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyAssignChecked"/> 2187return new SimpleBinaryExpression(ExpressionType.MultiplyAssignChecked, left, right, left.Type); 2189return GetUserDefinedAssignOperatorOrThrow(ExpressionType.MultiplyAssignChecked, "op_Multiply", left, right, conversion, liftToNull: true); 2191return GetMethodBasedAssignOperator(ExpressionType.MultiplyAssignChecked, left, right, method, conversion, liftToNull: true); 2199/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyChecked"/> 2212/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MultiplyChecked"/> 2223return new SimpleBinaryExpression(ExpressionType.MultiplyChecked, left, right, left.Type); 2225return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.MultiplyChecked, "op_Multiply", left, right, liftToNull: true); 2227return GetMethodBasedBinaryOperator(ExpressionType.MultiplyChecked, left, right, method, liftToNull: true); 2251/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShift"/> 2264/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShift"/> 2276return new SimpleBinaryExpression(ExpressionType.LeftShift, left, right, resultType); 2278return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.LeftShift, "op_LeftShift", left, right, liftToNull: true); 2280return GetMethodBasedBinaryOperator(ExpressionType.LeftShift, left, right, method, liftToNull: true); 2288/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShiftAssign"/> 2301/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShiftAssign"/> 2316/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.LeftShiftAssign"/> 2335return new SimpleBinaryExpression(ExpressionType.LeftShiftAssign, left, right, resultType); 2337return GetUserDefinedAssignOperatorOrThrow(ExpressionType.LeftShiftAssign, "op_LeftShift", left, right, conversion, liftToNull: true); 2339return GetMethodBasedAssignOperator(ExpressionType.LeftShiftAssign, left, right, method, conversion, liftToNull: true); 2347/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShift"/> 2360/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShift"/> 2372return new SimpleBinaryExpression(ExpressionType.RightShift, left, right, resultType); 2374return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.RightShift, "op_RightShift", left, right, liftToNull: true); 2376return GetMethodBasedBinaryOperator(ExpressionType.RightShift, left, right, method, liftToNull: true); 2384/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShiftAssign"/> 2397/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShiftAssign"/> 2412/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RightShiftAssign"/> 2431return new SimpleBinaryExpression(ExpressionType.RightShiftAssign, left, right, resultType); 2433return GetUserDefinedAssignOperatorOrThrow(ExpressionType.RightShiftAssign, "op_RightShift", left, right, conversion, liftToNull: true); 2435return GetMethodBasedAssignOperator(ExpressionType.RightShiftAssign, left, right, method, conversion, liftToNull: true); 2443/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.And"/> 2456/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.And"/> 2467return new SimpleBinaryExpression(ExpressionType.And, left, right, left.Type); 2469return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.And, "op_BitwiseAnd", left, right, liftToNull: true); 2471return GetMethodBasedBinaryOperator(ExpressionType.And, left, right, method, liftToNull: true); 2479/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAssign"/> 2492/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAssign"/> 2507/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.AndAssign"/> 2525return new SimpleBinaryExpression(ExpressionType.AndAssign, left, right, left.Type); 2527return GetUserDefinedAssignOperatorOrThrow(ExpressionType.AndAssign, "op_BitwiseAnd", left, right, conversion, liftToNull: true); 2529return GetMethodBasedAssignOperator(ExpressionType.AndAssign, left, right, method, conversion, liftToNull: true); 2537/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Or"/> 2550/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Or"/> 2561return new SimpleBinaryExpression(ExpressionType.Or, left, right, left.Type); 2563return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.Or, "op_BitwiseOr", left, right, liftToNull: true); 2565return GetMethodBasedBinaryOperator(ExpressionType.Or, left, right, method, liftToNull: true); 2573/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrAssign"/> 2586/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrAssign"/> 2601/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.OrAssign"/> 2619return new SimpleBinaryExpression(ExpressionType.OrAssign, left, right, left.Type); 2621return GetUserDefinedAssignOperatorOrThrow(ExpressionType.OrAssign, "op_BitwiseOr", left, right, conversion, liftToNull: true); 2623return GetMethodBasedAssignOperator(ExpressionType.OrAssign, left, right, method, conversion, liftToNull: true); 2631/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOr"/> 2644/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOr"/> 2655return new SimpleBinaryExpression(ExpressionType.ExclusiveOr, left, right, left.Type); 2657return GetUserDefinedBinaryOperatorOrThrow(ExpressionType.ExclusiveOr, "op_ExclusiveOr", left, right, liftToNull: true); 2659return GetMethodBasedBinaryOperator(ExpressionType.ExclusiveOr, left, right, method, liftToNull: true); 2667/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOrAssign"/> 2680/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOrAssign"/> 2695/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ExclusiveOrAssign"/> 2713return new SimpleBinaryExpression(ExpressionType.ExclusiveOrAssign, left, right, left.Type); 2715return GetUserDefinedAssignOperatorOrThrow(ExpressionType.ExclusiveOrAssign, "op_ExclusiveOr", left, right, conversion, liftToNull: true); 2717return GetMethodBasedAssignOperator(ExpressionType.ExclusiveOrAssign, left, right, method, conversion, liftToNull: true); 2725/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Power"/> 2738/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Power"/> 2757BinaryExpression? b = GetUserDefinedBinaryOperator(ExpressionType.Power, name, left, right, liftToNull: true); 2761b = GetUserDefinedBinaryOperator(ExpressionType.Power, name, left, right, liftToNull: true); 2764throw Error.BinaryOperatorNotDefined(ExpressionType.Power, left.Type, right.Type); 2769ValidateParamsWithOperandsOrThrow(pis[0].ParameterType, left.Type, ExpressionType.Power, name); 2770ValidateParamsWithOperandsOrThrow(pis[1].ParameterType, right.Type, ExpressionType.Power, name); 2775return GetMethodBasedBinaryOperator(ExpressionType.Power, left, right, method, liftToNull: true); 2783/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.PowerAssign"/> 2796/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.PowerAssign"/> 2811/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.PowerAssign"/> 2825throw Error.BinaryOperatorNotDefined(ExpressionType.PowerAssign, left.Type, right.Type); 2828return GetMethodBasedAssignOperator(ExpressionType.PowerAssign, left, right, method, conversion, liftToNull: true); 2840/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ArrayIndex"/> 2861return new SimpleBinaryExpression(ExpressionType.ArrayIndex, array, index, arrayType.GetElementType()!);
System\Linq\Expressions\BlockExpression.cs (3)
50/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 51public sealed override ExpressionType NodeType => ExpressionType.Block;
System\Linq\Expressions\Common\ConstantCheck.cs (2)
22ExpressionType.Constant => ((ConstantExpression)e).Value == null, 23ExpressionType.Default => e.Type.IsNullableOrReferenceType(),
System\Linq\Expressions\Compiler\LambdaCompiler.Address.cs (10)
34case ExpressionType.ArrayIndex: 38case ExpressionType.Parameter: 42case ExpressionType.MemberAccess: 46case ExpressionType.Unbox: 50case ExpressionType.Call: 54case ExpressionType.Index: 68Debug.Assert(node.NodeType == ExpressionType.ArrayIndex && node.Method == null); 209Debug.Assert(node.NodeType == ExpressionType.Unbox); 241case ExpressionType.MemberAccess: 244case ExpressionType.Index:
System\Linq\Expressions\Compiler\LambdaCompiler.Binary.cs (71)
24Debug.Assert(b.NodeType != ExpressionType.AndAlso && b.NodeType != ExpressionType.OrElse && b.NodeType != ExpressionType.Coalesce); 36if ((b.NodeType == ExpressionType.Equal || b.NodeType == ExpressionType.NotEqual) && 69private void EmitNullEquality(ExpressionType op, Expression e, bool isLiftedToNull) 72Debug.Assert(op == ExpressionType.Equal || op == ExpressionType.NotEqual); 84if (op == ExpressionType.Equal) 108Debug.Assert(b.NodeType == ExpressionType.Equal 109|| b.NodeType == ExpressionType.NotEqual 110|| b.NodeType == ExpressionType.LessThan 111|| b.NodeType == ExpressionType.LessThanOrEqual 112|| b.NodeType == ExpressionType.GreaterThan 113|| b.NodeType == ExpressionType.GreaterThanOrEqual); 129private void EmitBinaryOperator(ExpressionType op, Type leftType, Type rightType, Type resultType, bool liftedToNull) 131Debug.Assert(op != ExpressionType.Coalesce); 132if (op == ExpressionType.ArrayIndex) 148private void EmitUnliftedBinaryOp(ExpressionType op, Type leftType, Type rightType) 152Debug.Assert(leftType.IsPrimitive || (op == ExpressionType.Equal || op == ExpressionType.NotEqual) && (!leftType.IsValueType || leftType.IsEnum)); 156case ExpressionType.NotEqual: 159goto case ExpressionType.ExclusiveOr; 164goto case ExpressionType.Equal; 165case ExpressionType.Equal: 168case ExpressionType.Add: 171case ExpressionType.AddChecked: 174case ExpressionType.Subtract: 177case ExpressionType.SubtractChecked: 189case ExpressionType.Multiply: 192case ExpressionType.MultiplyChecked: 195case ExpressionType.Divide: 198case ExpressionType.Modulo: 202case ExpressionType.And: 203case ExpressionType.AndAlso: 207case ExpressionType.Or: 208case ExpressionType.OrElse: 212case ExpressionType.LessThan: 216case ExpressionType.LessThanOrEqual: 222case ExpressionType.GreaterThan: 226case ExpressionType.GreaterThanOrEqual: 232case ExpressionType.ExclusiveOr: 236case ExpressionType.LeftShift: 241case ExpressionType.RightShift: 266private void EmitConvertArithmeticResult(ExpressionType op, Type resultType) 287private void EmitLiftedBinaryOp(ExpressionType op, Type leftType, Type rightType, Type resultType, bool liftedToNull) 292case ExpressionType.And: 302case ExpressionType.Or: 312case ExpressionType.ExclusiveOr: 313case ExpressionType.Add: 314case ExpressionType.AddChecked: 315case ExpressionType.Subtract: 316case ExpressionType.SubtractChecked: 317case ExpressionType.Multiply: 318case ExpressionType.MultiplyChecked: 319case ExpressionType.Divide: 320case ExpressionType.Modulo: 321case ExpressionType.LeftShift: 322case ExpressionType.RightShift: 325case ExpressionType.LessThan: 326case ExpressionType.LessThanOrEqual: 327case ExpressionType.GreaterThan: 328case ExpressionType.GreaterThanOrEqual: 329case ExpressionType.Equal: 330case ExpressionType.NotEqual: 346private void EmitLiftedRelational(ExpressionType op, Type type) 352bool invert = op == ExpressionType.NotEqual; 355op = ExpressionType.Equal; 375_ilg.Emit(op == ExpressionType.Equal ? OpCodes.Ceq : OpCodes.And); 384private void EmitLiftedToNullRelational(ExpressionType op, Type type) 417private void EmitLiftedBinaryArithmetic(ExpressionType op, Type leftType, Type rightType, Type resultType)
System\Linq\Expressions\Compiler\LambdaCompiler.ControlFlow.cs (9)
156case ExpressionType.Label: 175case ExpressionType.Block: 190case ExpressionType.Switch: 204case ExpressionType.Convert: 213case ExpressionType.Conditional: 214case ExpressionType.Loop: 215case ExpressionType.Goto: 254case ExpressionType.Label: 260case ExpressionType.Block:
System\Linq\Expressions\Compiler\LambdaCompiler.Expressions.cs (26)
91case ExpressionType.Assign: 94case ExpressionType.Block: 97case ExpressionType.Throw: 100case ExpressionType.Goto: 103case ExpressionType.Constant: 104case ExpressionType.Default: 105case ExpressionType.Parameter: 649if (node.NodeType == ExpressionType.TypeEqual) 749case ExpressionType.Index: 752case ExpressionType.MemberAccess: 755case ExpressionType.Parameter: 881Debug.Assert(instance.NodeType == ExpressionType.Parameter); 903if (node.NodeType == ExpressionType.NewArrayInit) 1112private void EmitLift(ExpressionType nodeType, Type resultType, MethodCallExpression mc, ParameterExpression[] paramList, Expression[] argList) 1119case ExpressionType.LessThan: 1120case ExpressionType.LessThanOrEqual: 1121case ExpressionType.GreaterThan: 1122case ExpressionType.GreaterThanOrEqual: 1186Debug.Assert(nodeType == ExpressionType.LessThan 1187|| nodeType == ExpressionType.LessThanOrEqual 1188|| nodeType == ExpressionType.GreaterThan 1189|| nodeType == ExpressionType.GreaterThanOrEqual); 1197case ExpressionType.Equal: 1198case ExpressionType.NotEqual: 1274_ilg.EmitPrimitive(nodeType == ExpressionType.Equal); 1278_ilg.EmitPrimitive(nodeType == ExpressionType.NotEqual);
System\Linq\Expressions\Compiler\LambdaCompiler.Generated.cs (75)
34case ExpressionType.Add: 35case ExpressionType.AddChecked: 36case ExpressionType.And: 37case ExpressionType.ArrayIndex: 38case ExpressionType.Divide: 39case ExpressionType.Equal: 40case ExpressionType.ExclusiveOr: 41case ExpressionType.GreaterThan: 42case ExpressionType.GreaterThanOrEqual: 43case ExpressionType.LeftShift: 44case ExpressionType.LessThan: 45case ExpressionType.LessThanOrEqual: 46case ExpressionType.Modulo: 47case ExpressionType.Multiply: 48case ExpressionType.MultiplyChecked: 49case ExpressionType.NotEqual: 50case ExpressionType.Or: 51case ExpressionType.Power: 52case ExpressionType.RightShift: 53case ExpressionType.Subtract: 54case ExpressionType.SubtractChecked: 57case ExpressionType.AndAlso: 60case ExpressionType.OrElse: 63case ExpressionType.Coalesce: 66case ExpressionType.Assign: 69case ExpressionType.ArrayLength: 70case ExpressionType.Decrement: 71case ExpressionType.Increment: 72case ExpressionType.IsFalse: 73case ExpressionType.IsTrue: 74case ExpressionType.Negate: 75case ExpressionType.NegateChecked: 76case ExpressionType.Not: 77case ExpressionType.OnesComplement: 78case ExpressionType.TypeAs: 79case ExpressionType.UnaryPlus: 82case ExpressionType.Convert: 83case ExpressionType.ConvertChecked: 86case ExpressionType.Quote: 89case ExpressionType.Throw: 92case ExpressionType.Unbox: 95case ExpressionType.Call: 98case ExpressionType.Conditional: 101case ExpressionType.Constant: 104case ExpressionType.Invoke: 107case ExpressionType.Lambda: 110case ExpressionType.ListInit: 113case ExpressionType.MemberAccess: 116case ExpressionType.MemberInit: 119case ExpressionType.New: 122case ExpressionType.NewArrayInit: 123case ExpressionType.NewArrayBounds: 126case ExpressionType.Parameter: 129case ExpressionType.TypeEqual: 130case ExpressionType.TypeIs: 133case ExpressionType.Block: 136case ExpressionType.DebugInfo: 139case ExpressionType.Dynamic: 142case ExpressionType.Default: 145case ExpressionType.Goto: 148case ExpressionType.Index: 151case ExpressionType.Label: 154case ExpressionType.RuntimeVariables: 157case ExpressionType.Loop: 160case ExpressionType.Switch: 163case ExpressionType.Try: 174private static bool IsChecked(ExpressionType op) 178case ExpressionType.AddChecked: 179case ExpressionType.ConvertChecked: 180case ExpressionType.MultiplyChecked: 181case ExpressionType.NegateChecked: 182case ExpressionType.SubtractChecked: 183case ExpressionType.AddAssignChecked: 184case ExpressionType.MultiplyAssignChecked: 185case ExpressionType.SubtractAssignChecked:
System\Linq\Expressions\Compiler\LambdaCompiler.Logical.cs (13)
462case ExpressionType.Not: 466case ExpressionType.AndAlso: 467case ExpressionType.OrElse: 471case ExpressionType.Block: 475case ExpressionType.Equal: 476case ExpressionType.NotEqual: 508Debug.Assert(node.NodeType == ExpressionType.Equal || node.NodeType == ExpressionType.NotEqual); 512bool branchWhenEqual = branch == (node.NodeType == ExpressionType.Equal); 570if (expression.NodeType == ExpressionType.Convert) 583Debug.Assert(node.NodeType == ExpressionType.AndAlso || node.NodeType == ExpressionType.OrElse); 594bool isAnd = node.NodeType == ExpressionType.AndAlso;
System\Linq\Expressions\Compiler\LambdaCompiler.Unary.cs (19)
72else if (node.NodeType == ExpressionType.NegateChecked && node.Operand.Type.IsInteger()) 94EmitBinaryOperator(ExpressionType.SubtractChecked, nnType, nnType, nnType, liftedToNull: false); 110EmitBinaryOperator(ExpressionType.SubtractChecked, type, type, type, liftedToNull: false); 120private void EmitUnaryOperator(ExpressionType op, Type operandType, Type resultType) 124if (op == ExpressionType.ArrayLength) 134case ExpressionType.UnaryPlus: 136case ExpressionType.TypeAs: 183case ExpressionType.Not: 191goto case ExpressionType.OnesComplement; 192case ExpressionType.OnesComplement: 200case ExpressionType.IsFalse: 205case ExpressionType.IsTrue: 210case ExpressionType.UnaryPlus: 213case ExpressionType.Negate: 214case ExpressionType.NegateChecked: 219case ExpressionType.TypeAs: 236case ExpressionType.Increment: 240case ExpressionType.Decrement: 344_ilg.EmitConvertToType(node.Operand.Type, node.Type, node.NodeType == ExpressionType.ConvertChecked, this);
System\Linq\Expressions\Compiler\StackSpiller.ChildRewriter.cs (4)
257case ExpressionType.Constant: 258case ExpressionType.Default: 262case ExpressionType.RuntimeVariables: 265case ExpressionType.MemberAccess:
System\Linq\Expressions\Compiler\StackSpiller.cs (9)
139Debug.Assert(result.Node.NodeType != ExpressionType.Extension, "extension nodes must be rewritten"); 299ExpressionType.Index => RewriteIndexAssignment(node, stack), 300ExpressionType.MemberAccess => RewriteMemberAssignment(node, stack), 301ExpressionType.Parameter => RewriteVariableAssignment(node, stack), 302ExpressionType.Extension => RewriteExtensionAssignment(node, stack), 471if (node.NodeType == ExpressionType.NewArrayInit) 595expr = new UnaryExpression(ExpressionType.Throw, value.Node, node.Type, null); 605Debug.Assert(node.NodeType != ExpressionType.Quote, "unexpected Quote"); 606Debug.Assert(node.NodeType != ExpressionType.Throw, "unexpected Throw");
System\Linq\Expressions\Compiler\StackSpiller.Generated.cs (85)
34case ExpressionType.Add: 35case ExpressionType.AddChecked: 36case ExpressionType.And: 37case ExpressionType.ArrayIndex: 38case ExpressionType.Divide: 39case ExpressionType.Equal: 40case ExpressionType.ExclusiveOr: 41case ExpressionType.GreaterThan: 42case ExpressionType.GreaterThanOrEqual: 43case ExpressionType.LeftShift: 44case ExpressionType.LessThan: 45case ExpressionType.LessThanOrEqual: 46case ExpressionType.Modulo: 47case ExpressionType.Multiply: 48case ExpressionType.MultiplyChecked: 49case ExpressionType.NotEqual: 50case ExpressionType.Or: 51case ExpressionType.Power: 52case ExpressionType.RightShift: 53case ExpressionType.Subtract: 54case ExpressionType.SubtractChecked: 57case ExpressionType.AndAlso: 58case ExpressionType.Coalesce: 59case ExpressionType.OrElse: 62case ExpressionType.Assign: 65case ExpressionType.ArrayLength: 66case ExpressionType.Convert: 67case ExpressionType.ConvertChecked: 68case ExpressionType.Decrement: 69case ExpressionType.Increment: 70case ExpressionType.IsFalse: 71case ExpressionType.IsTrue: 72case ExpressionType.Negate: 73case ExpressionType.NegateChecked: 74case ExpressionType.Not: 75case ExpressionType.OnesComplement: 76case ExpressionType.TypeAs: 77case ExpressionType.UnaryPlus: 78case ExpressionType.Unbox: 81case ExpressionType.Throw: 84case ExpressionType.Call: 87case ExpressionType.Conditional: 90case ExpressionType.Invoke: 93case ExpressionType.Lambda: 96case ExpressionType.ListInit: 99case ExpressionType.MemberAccess: 102case ExpressionType.MemberInit: 105case ExpressionType.New: 108case ExpressionType.NewArrayInit: 109case ExpressionType.NewArrayBounds: 112case ExpressionType.TypeEqual: 113case ExpressionType.TypeIs: 116case ExpressionType.Block: 119case ExpressionType.Dynamic: 122case ExpressionType.Extension: 125case ExpressionType.Goto: 128case ExpressionType.Index: 131case ExpressionType.Label: 134case ExpressionType.Loop: 137case ExpressionType.Switch: 140case ExpressionType.Try: 143case ExpressionType.AddAssign: 144case ExpressionType.AndAssign: 145case ExpressionType.DivideAssign: 146case ExpressionType.ExclusiveOrAssign: 147case ExpressionType.LeftShiftAssign: 148case ExpressionType.ModuloAssign: 149case ExpressionType.MultiplyAssign: 150case ExpressionType.OrAssign: 151case ExpressionType.PowerAssign: 152case ExpressionType.RightShiftAssign: 153case ExpressionType.SubtractAssign: 154case ExpressionType.AddAssignChecked: 155case ExpressionType.MultiplyAssignChecked: 156case ExpressionType.SubtractAssignChecked: 157case ExpressionType.PreIncrementAssign: 158case ExpressionType.PreDecrementAssign: 159case ExpressionType.PostIncrementAssign: 160case ExpressionType.PostDecrementAssign: 163case ExpressionType.Quote: 164case ExpressionType.Parameter: 165case ExpressionType.Constant: 166case ExpressionType.RuntimeVariables: 167case ExpressionType.Default: 168case ExpressionType.DebugInfo:
System\Linq\Expressions\Compiler\VariableBinder.cs (2)
71if (node.NodeType == ExpressionType.Quote) 165while (body.Count == 1 && body[0].NodeType == ExpressionType.Block)
System\Linq\Expressions\ConditionalExpression.cs (7)
42/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 43public sealed override ExpressionType NodeType => ExpressionType.Conditional; 132/// <see cref="ExpressionType.Conditional"/> and the <see cref="ConditionalExpression.Test"/>, <see cref="ConditionalExpression.IfTrue"/>, 160/// <see cref="ExpressionType.Conditional"/> and the <see cref="ConditionalExpression.Test"/>, <see cref="ConditionalExpression.IfTrue"/>, 195/// <see cref="ExpressionType.Conditional"/> and the <see cref="ConditionalExpression.Test"/>, <see cref="ConditionalExpression.IfTrue"/>, 210/// <see cref="ExpressionType.Conditional"/> and the <see cref="ConditionalExpression.Test"/>, <see cref="ConditionalExpression.IfTrue"/>,
System\Linq\Expressions\ConstantExpression.cs (5)
41/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 42public sealed override ExpressionType NodeType => ExpressionType.Constant; 77/// <see cref="ExpressionType.Constant"/> and the <see cref="ConstantExpression.Value"/> property set to the specified value. 92/// <see cref="ExpressionType.Constant"/> and the <see cref="ConstantExpression.Value"/> and
System\Linq\Expressions\DebugInfoExpression.cs (3)
33/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 34public sealed override ExpressionType NodeType => ExpressionType.DebugInfo;
System\Linq\Expressions\DebugViewWriter.cs (145)
294if (node.NodeType == ExpressionType.ArrayIndex) 310case ExpressionType.Assign: op = "="; break; 311case ExpressionType.Equal: op = "=="; break; 312case ExpressionType.NotEqual: op = "!="; break; 313case ExpressionType.AndAlso: op = "&&"; beforeOp = Flow.Break | Flow.Space; break; 314case ExpressionType.OrElse: op = "||"; beforeOp = Flow.Break | Flow.Space; break; 315case ExpressionType.GreaterThan: op = ">"; break; 316case ExpressionType.LessThan: op = "<"; break; 317case ExpressionType.GreaterThanOrEqual: op = ">="; break; 318case ExpressionType.LessThanOrEqual: op = "<="; break; 319case ExpressionType.Add: op = "+"; break; 320case ExpressionType.AddAssign: op = "+="; break; 321case ExpressionType.AddAssignChecked: op = "#+="; break; 322case ExpressionType.AddChecked: op = "#+"; break; 323case ExpressionType.Subtract: op = "-"; break; 324case ExpressionType.SubtractAssign: op = "-="; break; 325case ExpressionType.SubtractAssignChecked: op = "#-="; break; 326case ExpressionType.SubtractChecked: op = "#-"; break; 327case ExpressionType.Divide: op = "/"; break; 328case ExpressionType.DivideAssign: op = "/="; break; 329case ExpressionType.Modulo: op = "%"; break; 330case ExpressionType.ModuloAssign: op = "%="; break; 331case ExpressionType.Multiply: op = "*"; break; 332case ExpressionType.MultiplyAssign: op = "*="; break; 333case ExpressionType.MultiplyAssignChecked: op = "#*="; break; 334case ExpressionType.MultiplyChecked: op = "#*"; break; 335case ExpressionType.LeftShift: op = "<<"; break; 336case ExpressionType.LeftShiftAssign: op = "<<="; break; 337case ExpressionType.RightShift: op = ">>"; break; 338case ExpressionType.RightShiftAssign: op = ">>="; break; 339case ExpressionType.And: op = "&"; break; 340case ExpressionType.AndAssign: op = "&="; break; 341case ExpressionType.Or: op = "|"; break; 342case ExpressionType.OrAssign: op = "|="; break; 343case ExpressionType.ExclusiveOr: op = "^"; break; 344case ExpressionType.ExclusiveOrAssign: op = "^="; break; 345case ExpressionType.Power: op = "**"; break; 346case ExpressionType.PowerAssign: op = "**="; break; 347case ExpressionType.Coalesce: op = "??"; break; 565case ExpressionType.Increment: 566case ExpressionType.Decrement: 567case ExpressionType.IsTrue: 568case ExpressionType.IsFalse: 569case ExpressionType.Unbox: 591case ExpressionType.AndAlso: 592case ExpressionType.OrElse: 593case ExpressionType.And: 594case ExpressionType.Or: 595case ExpressionType.ExclusiveOr: 601case ExpressionType.Add: 602case ExpressionType.AddChecked: 603case ExpressionType.Multiply: 604case ExpressionType.MultiplyChecked: 606case ExpressionType.Subtract: 607case ExpressionType.SubtractChecked: 608case ExpressionType.Divide: 609case ExpressionType.Modulo: 620if (child != null && child.NodeType == ExpressionType.Constant && 621(parent.NodeType == ExpressionType.Negate || parent.NodeType == ExpressionType.NegateChecked)) 639case ExpressionType.Assign: 640case ExpressionType.ExclusiveOrAssign: 641case ExpressionType.AddAssign: 642case ExpressionType.AddAssignChecked: 643case ExpressionType.SubtractAssign: 644case ExpressionType.SubtractAssignChecked: 645case ExpressionType.DivideAssign: 646case ExpressionType.ModuloAssign: 647case ExpressionType.MultiplyAssign: 648case ExpressionType.MultiplyAssignChecked: 649case ExpressionType.LeftShiftAssign: 650case ExpressionType.RightShiftAssign: 651case ExpressionType.AndAssign: 652case ExpressionType.OrAssign: 653case ExpressionType.PowerAssign: 654case ExpressionType.Coalesce: 660case ExpressionType.OrElse: 664case ExpressionType.AndAlso: 668case ExpressionType.Or: 672case ExpressionType.ExclusiveOr: 676case ExpressionType.And: 680case ExpressionType.Equal: 681case ExpressionType.NotEqual: 685case ExpressionType.GreaterThan: 686case ExpressionType.LessThan: 687case ExpressionType.GreaterThanOrEqual: 688case ExpressionType.LessThanOrEqual: 689case ExpressionType.TypeAs: 690case ExpressionType.TypeIs: 691case ExpressionType.TypeEqual: 695case ExpressionType.LeftShift: 696case ExpressionType.RightShift: 700case ExpressionType.Add: 701case ExpressionType.AddChecked: 702case ExpressionType.Subtract: 703case ExpressionType.SubtractChecked: 707case ExpressionType.Divide: 708case ExpressionType.Modulo: 709case ExpressionType.Multiply: 710case ExpressionType.MultiplyChecked: 714case ExpressionType.Negate: 715case ExpressionType.NegateChecked: 716case ExpressionType.UnaryPlus: 717case ExpressionType.Not: 718case ExpressionType.Convert: 719case ExpressionType.ConvertChecked: 720case ExpressionType.PreIncrementAssign: 721case ExpressionType.PreDecrementAssign: 722case ExpressionType.OnesComplement: 723case ExpressionType.Increment: 724case ExpressionType.Decrement: 725case ExpressionType.IsTrue: 726case ExpressionType.IsFalse: 727case ExpressionType.Unbox: 728case ExpressionType.Throw: 733case ExpressionType.Power: 738case ExpressionType.PostIncrementAssign: 739case ExpressionType.PostDecrementAssign: 745case ExpressionType.Constant: 746case ExpressionType.Parameter: 788if (node.NodeType == ExpressionType.NewArrayBounds) 866case ExpressionType.TypeIs: 869case ExpressionType.TypeEqual: 881case ExpressionType.Convert: 884case ExpressionType.ConvertChecked: 887case ExpressionType.TypeAs: 889case ExpressionType.Not: 892case ExpressionType.OnesComplement: 895case ExpressionType.Negate: 898case ExpressionType.NegateChecked: 901case ExpressionType.UnaryPlus: 904case ExpressionType.ArrayLength: 906case ExpressionType.Quote: 909case ExpressionType.Throw: 919case ExpressionType.IsFalse: 922case ExpressionType.IsTrue: 925case ExpressionType.Decrement: 928case ExpressionType.Increment: 931case ExpressionType.PreDecrementAssign: 934case ExpressionType.PreIncrementAssign: 937case ExpressionType.Unbox: 946case ExpressionType.TypeAs: 951case ExpressionType.ArrayLength: 955case ExpressionType.PostDecrementAssign: 959case ExpressionType.PostIncrementAssign:
System\Linq\Expressions\DefaultExpression.cs (5)
30/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 31public sealed override ExpressionType NodeType => ExpressionType.Default; 49/// <see cref="ExpressionType.Default"/> and the <see cref="Type"/> property set to <see cref="Void"/>. 62/// <see cref="ExpressionType.Default"/> and the <see cref="Type"/> property set to the specified type.
System\Linq\Expressions\DynamicExpression.cs (42)
121/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 122public sealed override ExpressionType NodeType => ExpressionType.Dynamic; 235/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 257/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 279/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 302/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 326/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 351/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 373/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 392/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 410/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 429/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 449/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 470/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 828/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 846/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 873ExpressionUtils.ValidateArgumentTypes(method, ExpressionType.Dynamic, ref args, nameof(delegateType)); 886/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 900ExpressionUtils.ValidateArgumentCount(method, ExpressionType.Dynamic, 2, parameters); 902ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg0, parameters[1], nameof(delegateType), nameof(arg0)); 916/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 930ExpressionUtils.ValidateArgumentCount(method, ExpressionType.Dynamic, 3, parameters); 932ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg0, parameters[1], nameof(delegateType), nameof(arg0)); 934ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg1, parameters[2], nameof(delegateType), nameof(arg1)); 949/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 963ExpressionUtils.ValidateArgumentCount(method, ExpressionType.Dynamic, 4, parameters); 965ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg0, parameters[1], nameof(delegateType), nameof(arg0)); 967ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg1, parameters[2], nameof(delegateType), nameof(arg1)); 969ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg2, parameters[3], nameof(delegateType), nameof(arg2)); 985/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 999ExpressionUtils.ValidateArgumentCount(method, ExpressionType.Dynamic, 5, parameters); 1001ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg0, parameters[1], nameof(delegateType), nameof(arg0)); 1003ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg1, parameters[2], nameof(delegateType), nameof(arg1)); 1005ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg2, parameters[3], nameof(delegateType), nameof(arg2)); 1007ExpressionUtils.ValidateOneArgument(method, ExpressionType.Dynamic, arg3, parameters[4], nameof(delegateType), nameof(arg3)); 1028/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 1050/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 1086/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 1127/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 1173/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 1220/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the
System\Linq\Expressions\ElementInit.cs (1)
98ValidateArgumentTypes(addMethod, ExpressionType.Call, ref argumentsRO, nameof(addMethod));
System\Linq\Expressions\Error.cs (1)
1091internal static InvalidOperationException InvalidLvalue(ExpressionType p0)
System\Linq\Expressions\Expression.cs (22)
43public ExtensionInfo(ExpressionType nodeType, Type type) 49internal readonly ExpressionType NodeType; 61protected Expression(ExpressionType nodeType, Type type) 84/// The <see cref="ExpressionType"/> of the <see cref="Expression"/>. 86public virtual ExpressionType NodeType 162/// This default implementation for <see cref="ExpressionType.Extension"/> 204while (node.NodeType == ExpressionType.Extension) 254case ExpressionType.Index: 261case ExpressionType.MemberAccess: 280case ExpressionType.Parameter: 295/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 315/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 336/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 358/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 381/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 401/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 421/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 438/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 456/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 475/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 495/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the 512/// <see cref="ExpressionType.Dynamic">Dynamic</see> and has the
System\Linq\Expressions\Expression.DebuggerProxy.cs (24)
29public ExpressionType NodeType => _node.NodeType; 47public ExpressionType NodeType => _node.NodeType; 83public ExpressionType NodeType => _node.NodeType; 100public ExpressionType NodeType => _node.NodeType; 121public ExpressionType NodeType => _node.NodeType; 139public ExpressionType NodeType => _node.NodeType; 156public ExpressionType NodeType => _node.NodeType; 176public ExpressionType NodeType => _node.NodeType; 195public ExpressionType NodeType => _node.NodeType; 212public ExpressionType NodeType => _node.NodeType; 231public ExpressionType NodeType => _node.NodeType; 252public ExpressionType NodeType => _node.NodeType; 271public ExpressionType NodeType => _node.NodeType; 289public ExpressionType NodeType => _node.NodeType; 307public ExpressionType NodeType => _node.NodeType; 325public ExpressionType NodeType => _node.NodeType; 343public ExpressionType NodeType => _node.NodeType; 362public ExpressionType NodeType => _node.NodeType; 380public ExpressionType NodeType => _node.NodeType; 396public ExpressionType NodeType => _node.NodeType; 430public ExpressionType NodeType => _node.NodeType; 451public ExpressionType NodeType => _node.NodeType; 468public ExpressionType NodeType => _node.NodeType; 488public ExpressionType NodeType => _node.NodeType;
System\Linq\Expressions\ExpressionStringBuilder.cs (75)
144if (node.NodeType == ExpressionType.ArrayIndex) 160case ExpressionType.AndAlso: 163case ExpressionType.OrElse: 166case ExpressionType.Assign: 169case ExpressionType.Equal: 172case ExpressionType.NotEqual: 175case ExpressionType.GreaterThan: 178case ExpressionType.LessThan: 181case ExpressionType.GreaterThanOrEqual: 184case ExpressionType.LessThanOrEqual: 187case ExpressionType.Add: 188case ExpressionType.AddChecked: 191case ExpressionType.AddAssign: 192case ExpressionType.AddAssignChecked: 195case ExpressionType.Subtract: 196case ExpressionType.SubtractChecked: 199case ExpressionType.SubtractAssign: 200case ExpressionType.SubtractAssignChecked: 203case ExpressionType.Divide: 206case ExpressionType.DivideAssign: 209case ExpressionType.Modulo: 212case ExpressionType.ModuloAssign: 215case ExpressionType.Multiply: 216case ExpressionType.MultiplyChecked: 219case ExpressionType.MultiplyAssign: 220case ExpressionType.MultiplyAssignChecked: 223case ExpressionType.LeftShift: 226case ExpressionType.LeftShiftAssign: 229case ExpressionType.RightShift: 232case ExpressionType.RightShiftAssign: 235case ExpressionType.And: 238case ExpressionType.AndAssign: 241case ExpressionType.Or: 244case ExpressionType.OrAssign: 247case ExpressionType.ExclusiveOr: 250case ExpressionType.ExclusiveOrAssign: 253case ExpressionType.Power: 256case ExpressionType.PowerAssign: 259case ExpressionType.Coalesce: 543case ExpressionType.NewArrayBounds: 549case ExpressionType.NewArrayInit: 588case ExpressionType.TypeIs: 591case ExpressionType.TypeEqual: 604case ExpressionType.Negate: 605case ExpressionType.NegateChecked: Out('-'); break; 606case ExpressionType.Not: Out("Not("); break; 607case ExpressionType.IsFalse: Out("IsFalse("); break; 608case ExpressionType.IsTrue: Out("IsTrue("); break; 609case ExpressionType.OnesComplement: Out("~("); break; 610case ExpressionType.ArrayLength: Out("ArrayLength("); break; 611case ExpressionType.Convert: Out("Convert("); break; 612case ExpressionType.ConvertChecked: Out("ConvertChecked("); break; 613case ExpressionType.Throw: Out("throw("); break; 614case ExpressionType.TypeAs: Out('('); break; 615case ExpressionType.UnaryPlus: Out('+'); break; 616case ExpressionType.Unbox: Out("Unbox("); break; 617case ExpressionType.Increment: Out("Increment("); break; 618case ExpressionType.Decrement: Out("Decrement("); break; 619case ExpressionType.PreIncrementAssign: Out("++"); break; 620case ExpressionType.PreDecrementAssign: Out("--"); break; 621case ExpressionType.Quote: 622case ExpressionType.PostIncrementAssign: 623case ExpressionType.PostDecrementAssign: 633case ExpressionType.Negate: 634case ExpressionType.NegateChecked: 635case ExpressionType.UnaryPlus: 636case ExpressionType.PreDecrementAssign: 637case ExpressionType.PreIncrementAssign: 638case ExpressionType.Quote: 640case ExpressionType.TypeAs: 644case ExpressionType.Convert: 645case ExpressionType.ConvertChecked: 649case ExpressionType.PostIncrementAssign: Out("++"); break; 650case ExpressionType.PostDecrementAssign: Out("--"); break; 793Out(node.NodeType == ExpressionType.Extension ? node.GetType().FullName : node.NodeType.ToString());
System\Linq\Expressions\GotoExpression.cs (3)
55/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 56public sealed override ExpressionType NodeType => ExpressionType.Goto;
System\Linq\Expressions\IndexExpression.cs (3)
42/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 43public sealed override ExpressionType NodeType => ExpressionType.Index;
System\Linq\Expressions\Interpreter\LightCompiler.cs (151)
735case ExpressionType.Index: 739case ExpressionType.MemberAccess: 743case ExpressionType.Parameter: 744case ExpressionType.Extension: 779case ExpressionType.Equal: 780case ExpressionType.NotEqual: 806if (node.NodeType == ExpressionType.Equal) 827node.NodeType == ExpressionType.Equal ? AstUtils.BoxedFalse : AstUtils.BoxedTrue, 864case ExpressionType.LessThan: 865case ExpressionType.LessThanOrEqual: 866case ExpressionType.GreaterThan: 867case ExpressionType.GreaterThanOrEqual: 897case ExpressionType.ArrayIndex: 904case ExpressionType.Add: 905case ExpressionType.AddChecked: 906case ExpressionType.Subtract: 907case ExpressionType.SubtractChecked: 908case ExpressionType.Multiply: 909case ExpressionType.MultiplyChecked: 910case ExpressionType.Divide: 911case ExpressionType.Modulo: 915case ExpressionType.ExclusiveOr: 920case ExpressionType.Or: 925case ExpressionType.And: 931case ExpressionType.Equal: 935case ExpressionType.NotEqual: 939case ExpressionType.LessThan: 940case ExpressionType.LessThanOrEqual: 941case ExpressionType.GreaterThan: 942case ExpressionType.GreaterThanOrEqual: 946case ExpressionType.LeftShift: 951case ExpressionType.RightShift: 1007case ExpressionType.LessThan: _instructions.EmitLessThan(left.Type, node.IsLiftedToNull); break; 1008case ExpressionType.LessThanOrEqual: _instructions.EmitLessThanOrEqual(left.Type, node.IsLiftedToNull); break; 1009case ExpressionType.GreaterThan: _instructions.EmitGreaterThan(left.Type, node.IsLiftedToNull); break; 1010case ExpressionType.GreaterThanOrEqual: _instructions.EmitGreaterThanOrEqual(left.Type, node.IsLiftedToNull); break; 1015private void CompileArithmetic(ExpressionType nodeType, Expression left, Expression right) 1022case ExpressionType.Add: _instructions.EmitAdd(left.Type, @checked: false); break; 1023case ExpressionType.AddChecked: _instructions.EmitAdd(left.Type, @checked: true); break; 1024case ExpressionType.Subtract: _instructions.EmitSub(left.Type, @checked: false); break; 1025case ExpressionType.SubtractChecked: _instructions.EmitSub(left.Type, @checked: true); break; 1026case ExpressionType.Multiply: _instructions.EmitMul(left.Type, @checked: false); break; 1027case ExpressionType.MultiplyChecked: _instructions.EmitMul(left.Type, @checked: true); break; 1028case ExpressionType.Divide: _instructions.EmitDiv(left.Type); break; 1029case ExpressionType.Modulo: _instructions.EmitModulo(left.Type); break; 1109CompileConvertToType(node.Operand.Type, node.Type, node.NodeType == ExpressionType.ConvertChecked, node.IsLiftedToNull); 1237case ExpressionType.Not: 1238case ExpressionType.OnesComplement: 1241case ExpressionType.TypeAs: 1244case ExpressionType.ArrayLength: 1248case ExpressionType.NegateChecked: 1252case ExpressionType.Negate: 1256case ExpressionType.Increment: 1260case ExpressionType.Decrement: 1264case ExpressionType.UnaryPlus: 1267case ExpressionType.IsTrue: 1268case ExpressionType.IsFalse: 1311_instructions.EmitLoad(node.NodeType == ExpressionType.IsTrue); 1318_instructions.EmitLoad(node.NodeType == ExpressionType.IsTrue); 1835case ExpressionType.Label: 1854case ExpressionType.Block: 1863case ExpressionType.Switch: 1877case ExpressionType.Convert: 1886case ExpressionType.Conditional: 1887case ExpressionType.Loop: 1888case ExpressionType.Goto: 2230case ExpressionType.Parameter: 2231case ExpressionType.Call: 2232case ExpressionType.ArrayIndex: 2234case ExpressionType.Index: 2236case ExpressionType.MemberAccess: 2255case ExpressionType.Parameter: 2259case ExpressionType.ArrayIndex: 2263case ExpressionType.Index: 2302case ExpressionType.MemberAccess: 2332case ExpressionType.Call: 2528if (node.NodeType == ExpressionType.NewArrayInit) 2534Debug.Assert(node.NodeType == ExpressionType.NewArrayBounds); 2900Debug.Assert(expr.NodeType == ExpressionType.TypeEqual); 2923Debug.Assert(expr.NodeType == ExpressionType.TypeIs); 2983case ExpressionType.Assign: 2987case ExpressionType.Block: 2991case ExpressionType.Throw: 2995case ExpressionType.Constant: 2996case ExpressionType.Default: 2997case ExpressionType.Parameter: 3030case ExpressionType.Add: 3031case ExpressionType.AddChecked: 3032case ExpressionType.And: 3033case ExpressionType.ArrayIndex: 3034case ExpressionType.Divide: 3035case ExpressionType.Equal: 3036case ExpressionType.ExclusiveOr: 3037case ExpressionType.GreaterThan: 3038case ExpressionType.GreaterThanOrEqual: 3039case ExpressionType.LeftShift: 3040case ExpressionType.LessThan: 3041case ExpressionType.LessThanOrEqual: 3042case ExpressionType.Modulo: 3043case ExpressionType.Multiply: 3044case ExpressionType.MultiplyChecked: 3045case ExpressionType.NotEqual: 3046case ExpressionType.Or: 3047case ExpressionType.Power: 3048case ExpressionType.RightShift: 3049case ExpressionType.Subtract: 3050case ExpressionType.SubtractChecked: CompileBinaryExpression(expr); break; 3051case ExpressionType.AndAlso: CompileAndAlsoBinaryExpression(expr); break; 3052case ExpressionType.OrElse: CompileOrElseBinaryExpression(expr); break; 3053case ExpressionType.Coalesce: CompileCoalesceBinaryExpression(expr); break; 3054case ExpressionType.ArrayLength: 3055case ExpressionType.Decrement: 3056case ExpressionType.Increment: 3057case ExpressionType.IsTrue: 3058case ExpressionType.IsFalse: 3059case ExpressionType.Negate: 3060case ExpressionType.NegateChecked: 3061case ExpressionType.Not: 3062case ExpressionType.OnesComplement: 3063case ExpressionType.TypeAs: 3064case ExpressionType.UnaryPlus: CompileUnaryExpression(expr); break; 3065case ExpressionType.Convert: 3066case ExpressionType.ConvertChecked: CompileConvertUnaryExpression(expr); break; 3067case ExpressionType.Quote: CompileQuoteUnaryExpression(expr); break; 3068case ExpressionType.Throw: CompileThrowUnaryExpression(expr, expr.Type == typeof(void)); break; 3069case ExpressionType.Unbox: CompileUnboxUnaryExpression(expr); break; 3070case ExpressionType.Call: CompileMethodCallExpression(expr); break; 3071case ExpressionType.Conditional: CompileConditionalExpression(expr, expr.Type == typeof(void)); break; 3072case ExpressionType.Constant: CompileConstantExpression(expr); break; 3073case ExpressionType.Invoke: CompileInvocationExpression(expr); break; 3074case ExpressionType.Lambda: CompileLambdaExpression(expr); break; 3075case ExpressionType.ListInit: CompileListInitExpression(expr); break; 3076case ExpressionType.MemberAccess: CompileMemberExpression(expr); break; 3077case ExpressionType.MemberInit: CompileMemberInitExpression(expr); break; 3078case ExpressionType.New: CompileNewExpression(expr); break; 3079case ExpressionType.NewArrayInit: 3080case ExpressionType.NewArrayBounds: CompileNewArrayExpression(expr); break; 3081case ExpressionType.Parameter: CompileParameterExpression(expr); break; 3082case ExpressionType.TypeIs: CompileTypeIsExpression(expr); break; 3083case ExpressionType.TypeEqual: CompileTypeEqualExpression(expr); break; 3084case ExpressionType.Assign: CompileAssignBinaryExpression(expr, expr.Type == typeof(void)); break; 3085case ExpressionType.Block: CompileBlockExpression(expr, expr.Type == typeof(void)); break; 3086case ExpressionType.DebugInfo: CompileDebugInfoExpression(expr); break; 3087case ExpressionType.Default: CompileDefaultExpression(expr); break; 3088case ExpressionType.Goto: CompileGotoExpression(expr); break; 3089case ExpressionType.Index: CompileIndexExpression(expr); break; 3090case ExpressionType.Label: CompileLabelExpression(expr); break; 3091case ExpressionType.RuntimeVariables: CompileRuntimeVariablesExpression(expr); break; 3092case ExpressionType.Loop: CompileLoopExpression(expr); break; 3093case ExpressionType.Switch: CompileSwitchExpression(expr); break; 3094case ExpressionType.Try: CompileTryExpression(expr); break;
System\Linq\Expressions\InvocationExpression.cs (32)
35/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 36public sealed override ExpressionType NodeType => ExpressionType.Invoke; 116return (Expression.NodeType == ExpressionType.Quote) 426ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke); 428ValidateArgumentCount(method, ExpressionType.Invoke, 0, pis); 462ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke); 464ValidateArgumentCount(method, ExpressionType.Invoke, 1, pis); 466arg0 = ValidateOneArgument(method, ExpressionType.Invoke, arg0, pis[0], nameof(expression), nameof(arg0)); 502ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke); 504ValidateArgumentCount(method, ExpressionType.Invoke, 2, pis); 506arg0 = ValidateOneArgument(method, ExpressionType.Invoke, arg0, pis[0], nameof(expression), nameof(arg0)); 507arg1 = ValidateOneArgument(method, ExpressionType.Invoke, arg1, pis[1], nameof(expression), nameof(arg1)); 547ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke); 549ValidateArgumentCount(method, ExpressionType.Invoke, 3, pis); 551arg0 = ValidateOneArgument(method, ExpressionType.Invoke, arg0, pis[0], nameof(expression), nameof(arg0)); 552arg1 = ValidateOneArgument(method, ExpressionType.Invoke, arg1, pis[1], nameof(expression), nameof(arg1)); 553arg2 = ValidateOneArgument(method, ExpressionType.Invoke, arg2, pis[2], nameof(expression), nameof(arg2)); 596ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke); 598ValidateArgumentCount(method, ExpressionType.Invoke, 4, pis); 600arg0 = ValidateOneArgument(method, ExpressionType.Invoke, arg0, pis[0], nameof(expression), nameof(arg0)); 601arg1 = ValidateOneArgument(method, ExpressionType.Invoke, arg1, pis[1], nameof(expression), nameof(arg1)); 602arg2 = ValidateOneArgument(method, ExpressionType.Invoke, arg2, pis[2], nameof(expression), nameof(arg2)); 603arg3 = ValidateOneArgument(method, ExpressionType.Invoke, arg3, pis[3], nameof(expression), nameof(arg3)); 649ParameterInfo[] pis = GetParametersForValidation(method, ExpressionType.Invoke); 651ValidateArgumentCount(method, ExpressionType.Invoke, 5, pis); 653arg0 = ValidateOneArgument(method, ExpressionType.Invoke, arg0, pis[0], nameof(expression), nameof(arg0)); 654arg1 = ValidateOneArgument(method, ExpressionType.Invoke, arg1, pis[1], nameof(expression), nameof(arg1)); 655arg2 = ValidateOneArgument(method, ExpressionType.Invoke, arg2, pis[2], nameof(expression), nameof(arg2)); 656arg3 = ValidateOneArgument(method, ExpressionType.Invoke, arg3, pis[3], nameof(expression), nameof(arg3)); 657arg4 = ValidateOneArgument(method, ExpressionType.Invoke, arg4, pis[4], nameof(expression), nameof(arg4)); 735ValidateArgumentTypes(mi, ExpressionType.Invoke, ref args, nameof(expression));
System\Linq\Expressions\LabelExpression.cs (3)
32/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 33public sealed override ExpressionType NodeType => ExpressionType.Label;
System\Linq\Expressions\LambdaExpression.cs (21)
52/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 53public sealed override ExpressionType NodeType => ExpressionType.Lambda; 650/// <returns>An <see cref="Expression{TDelegate}"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 663/// <returns>An <see cref="Expression{TDelegate}"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 675/// <returns>An <see cref="Expression{TDelegate}"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 688/// <returns>An <see cref="Expression{TDelegate}"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 701/// <returns>An <see cref="Expression{TDelegate}"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 715/// <returns>An <see cref="Expression{TDelegate}"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 735/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 748/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 760/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 773/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 786/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 799/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 811/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 824/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 836/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 850/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 888/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns> 905/// <returns>A <see cref="LambdaExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Lambda"/> and the <see cref="LambdaExpression.Body"/> and <see cref="LambdaExpression.Parameters"/> properties set to the specified values.</returns>
System\Linq\Expressions\ListInitExpression.cs (8)
33/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 34public sealed override ExpressionType NodeType => ExpressionType.ListInit; 106/// <returns>A <see cref="ListInitExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ListInit"/> and the <see cref="ListInitExpression.NewExpression"/> property set to the specified value.</returns> 119/// <returns>A <see cref="ListInitExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ListInit"/> and the <see cref="ListInitExpression.NewExpression"/> property set to the specified value.</returns> 143/// <returns>A <see cref="ListInitExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ListInit"/> and the <see cref="ListInitExpression.NewExpression"/> property set to the specified value.</returns> 157/// <returns>A <see cref="ListInitExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ListInit"/> and the <see cref="ListInitExpression.NewExpression"/> property set to the specified value.</returns> 184/// A <see cref="ListInitExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ListInit"/>
System\Linq\Expressions\LoopExpression.cs (3)
32/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 33public sealed override ExpressionType NodeType => ExpressionType.Loop;
System\Linq\Expressions\MemberExpression.cs (3)
54/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 55public sealed override ExpressionType NodeType => ExpressionType.MemberAccess;
System\Linq\Expressions\MemberInitExpression.cs (5)
38/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 39public sealed override ExpressionType NodeType => ExpressionType.MemberInit; 139/// <returns>A <see cref="MemberInitExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MemberInit"/> and the <see cref="MemberInitExpression.NewExpression"/> and <see cref="MemberInitExpression.Bindings"/> properties set to the specified values.</returns> 151/// <returns>A <see cref="MemberInitExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.MemberInit"/> and the <see cref="MemberInitExpression.NewExpression"/> and <see cref="MemberInitExpression.Bindings"/> properties set to the specified values.</returns>
System\Linq\Expressions\MethodCallExpression.cs (59)
29/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 30public sealed override ExpressionType NodeType => ExpressionType.Call; 836/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 848ValidateArgumentCount(method, ExpressionType.Call, 0, pis); 854/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 866ValidateArgumentCount(method, ExpressionType.Call, 1, pis); 868arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 874/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 888ValidateArgumentCount(method, ExpressionType.Call, 2, pis); 890arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 891arg1 = ValidateOneArgument(method, ExpressionType.Call, arg1, pis[1], nameof(method), nameof(arg1)); 897/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 913ValidateArgumentCount(method, ExpressionType.Call, 3, pis); 915arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 916arg1 = ValidateOneArgument(method, ExpressionType.Call, arg1, pis[1], nameof(method), nameof(arg1)); 917arg2 = ValidateOneArgument(method, ExpressionType.Call, arg2, pis[2], nameof(method), nameof(arg2)); 923/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 941ValidateArgumentCount(method, ExpressionType.Call, 4, pis); 943arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 944arg1 = ValidateOneArgument(method, ExpressionType.Call, arg1, pis[1], nameof(method), nameof(arg1)); 945arg2 = ValidateOneArgument(method, ExpressionType.Call, arg2, pis[2], nameof(method), nameof(arg2)); 946arg3 = ValidateOneArgument(method, ExpressionType.Call, arg3, pis[3], nameof(method), nameof(arg3)); 952/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 961/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 973ValidateArgumentCount(method, ExpressionType.Call, 5, pis); 975arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 976arg1 = ValidateOneArgument(method, ExpressionType.Call, arg1, pis[1], nameof(method), nameof(arg1)); 977arg2 = ValidateOneArgument(method, ExpressionType.Call, arg2, pis[2], nameof(method), nameof(arg2)); 978arg3 = ValidateOneArgument(method, ExpressionType.Call, arg3, pis[3], nameof(method), nameof(arg3)); 979arg4 = ValidateOneArgument(method, ExpressionType.Call, arg4, pis[4], nameof(method), nameof(arg4)); 989/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 1000/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 1011/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 1018ValidateArgumentCount(method, ExpressionType.Call, 0, pis); 1034/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 1046/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 1056ValidateArgumentCount(method, ExpressionType.Call, 1, pis); 1058arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 1075/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 1084ValidateArgumentCount(method, ExpressionType.Call, 2, pis); 1086arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 1087arg1 = ValidateOneArgument(method, ExpressionType.Call, arg1, pis[1], nameof(method), nameof(arg1)); 1105/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Method"/> properties set to the specified values.</returns> 1115ValidateArgumentCount(method, ExpressionType.Call, 3, pis); 1117arg0 = ValidateOneArgument(method, ExpressionType.Call, arg0, pis[0], nameof(method), nameof(arg0)); 1118arg1 = ValidateOneArgument(method, ExpressionType.Call, arg1, pis[1], nameof(method), nameof(arg1)); 1119arg2 = ValidateOneArgument(method, ExpressionType.Call, arg2, pis[2], nameof(method), nameof(arg2)); 1129/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/>, the <see cref="MethodCallExpression.Object"/> property equal to <paramref name="instance"/>, <see cref="MethodCallExpression.Method"/> set to the <see cref="MethodInfo"/> that represents the specified instance method, and <see cref="MethodCallExpression.Arguments"/> set to the specified arguments.</returns> 1153/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/>, the <see cref="MethodCallExpression.Method"/> property set to the <see cref="MethodInfo"/> that represents the specified static (Shared in Visual Basic) method, and the <see cref="MethodCallExpression.Arguments"/> property set to the specified arguments.</returns> 1181/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/>, <see cref="MethodCallExpression.Method"/>, and <see cref="MethodCallExpression.Arguments"/> properties set to the specified values.</returns> 1227ValidateArgumentTypes(method, ExpressionType.Call, ref argList, nameof(method)); 1244return GetParametersForValidation(method, ExpressionType.Call); 1269private static void ValidateArgumentTypes(MethodBase method, ExpressionType nodeKind, ref ReadOnlyCollection<Expression> arguments, string methodParamName) 1274private static ParameterInfo[] GetParametersForValidation(MethodBase method, ExpressionType nodeKind) 1279private static void ValidateArgumentCount(MethodBase method, ExpressionType nodeKind, int count, ParameterInfo[] pis) 1284private static Expression ValidateOneArgument(MethodBase method, ExpressionType nodeKind, Expression arg, ParameterInfo pi, string methodParamName, string argumentParamName) 1393/// <returns>A <see cref="BinaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ArrayIndex"/> and the <see cref="BinaryExpression.Left"/> and <see cref="BinaryExpression.Right"/> properties set to the specified values.</returns> 1402/// <returns>A <see cref="MethodCallExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Call"/> and the <see cref="MethodCallExpression.Object"/> and <see cref="MethodCallExpression.Arguments"/> properties set to the specified values.</returns>
System\Linq\Expressions\NewArrayExpression.cs (16)
26internal static NewArrayExpression Make(ExpressionType nodeType, Type type, ReadOnlyCollection<Expression> expressions) 29if (nodeType == ExpressionType.NewArrayInit) 46/// Gets the bounds of the array if the value of the <see cref="ExpressionType"/> property is NewArrayBounds, or the values to initialize the elements of the new array if the value of the <see cref="Expression.NodeType"/> property is NewArrayInit. 75return NodeType == ExpressionType.NewArrayInit 93/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 94public sealed override ExpressionType NodeType => ExpressionType.NewArrayInit; 108/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 109public sealed override ExpressionType NodeType => ExpressionType.NewArrayBounds; 121/// <returns>A <see cref="NewArrayExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NewArrayInit"/> and the <see cref="NewArrayExpression.Expressions"/> property set to the specified value.</returns> 133/// <returns>A <see cref="NewArrayExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NewArrayInit"/> and the <see cref="NewArrayExpression.Expressions"/> property set to the specified value.</returns> 178return NewArrayExpression.Make(ExpressionType.NewArrayInit, type.MakeArrayType(), initializerList); 197/// <returns>A <see cref="NewArrayExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NewArrayBounds"/> and the <see cref="NewArrayExpression.Expressions"/> property set to the specified value.</returns> 209/// <returns>A <see cref="NewArrayExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NewArrayBounds"/> and the <see cref="NewArrayExpression.Expressions"/> property set to the specified value.</returns> 250return NewArrayExpression.Make(ExpressionType.NewArrayBounds, arrayType, boundsList);
System\Linq\Expressions\NewExpression.cs (10)
38/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 39public sealed override ExpressionType NodeType => ExpressionType.New; 113/// <returns>A <see cref="NewExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.New"/> and the <see cref="NewExpression.Constructor"/> property set to the specified value.</returns> 124/// <returns>A <see cref="NewExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.New"/> and the <see cref="NewExpression.Constructor"/> and <see cref="NewExpression.Arguments"/> properties set to the specified value.</returns> 135/// <returns>A <see cref="NewExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.New"/> and the <see cref="NewExpression.Constructor"/> and <see cref="NewExpression.Arguments"/> properties set to the specified value.</returns> 149ValidateArgumentTypes(constructor, ExpressionType.New, ref argList, nameof(constructor)); 160/// <returns>A <see cref="NewExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.New"/> and the <see cref="NewExpression.Constructor"/>, <see cref="NewExpression.Arguments"/> and <see cref="NewExpression.Members"/> properties set to the specified value.</returns> 185/// <returns>A <see cref="NewExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.New"/> and the <see cref="NewExpression.Constructor"/>, <see cref="NewExpression.Arguments"/> and <see cref="NewExpression.Members"/> properties set to the specified value.</returns> 196/// <returns>A <see cref="NewExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.New"/> and the <see cref="NewExpression.Constructor"/> property set to the <see cref="ConstructorInfo"/> that represents the parameterless constructor of the specified type.</returns>
System\Linq\Expressions\ParameterExpression.cs (3)
80/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 81public sealed override ExpressionType NodeType => ExpressionType.Parameter;
System\Linq\Expressions\RuntimeVariablesExpression.cs (5)
35/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 36public sealed override ExpressionType NodeType => ExpressionType.RuntimeVariables; 78/// <returns>An instance of <see cref="RuntimeVariablesExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RuntimeVariables"/> and the <see cref="RuntimeVariablesExpression.Variables"/> property set to the specified value.</returns> 88/// <returns>An instance of <see cref="RuntimeVariablesExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.RuntimeVariables"/> and the <see cref="RuntimeVariablesExpression.Variables"/> property set to the specified value.</returns>
System\Linq\Expressions\SwitchExpression.cs (3)
37/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 38public sealed override ExpressionType NodeType => ExpressionType.Switch;
System\Linq\Expressions\TryExpression.cs (3)
42/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 43public sealed override ExpressionType NodeType => ExpressionType.Try;
System\Linq\Expressions\TypeBinaryExpression.cs (9)
17internal TypeBinaryExpression(Expression expression, Type typeOperand, ExpressionType nodeType) 34/// <returns>The <see cref="ExpressionType"/> of the expression.</returns> 35public sealed override ExpressionType NodeType { get; } 80if (Expression.NodeType == ExpressionType.Constant) 175if (NodeType == ExpressionType.TypeIs) 190/// <returns>A <see cref="TypeBinaryExpression"/> for which the <see cref="NodeType"/> property is equal to <see cref="ExpressionType.TypeIs"/> and for which the <see cref="TypeBinaryExpression.Expression"/> and <see cref="TypeBinaryExpression.TypeOperand"/> properties are set to the specified values.</returns> 197return new TypeBinaryExpression(expression, type, ExpressionType.TypeIs); 205/// <returns>A <see cref="TypeBinaryExpression"/> for which the <see cref="NodeType"/> property is equal to <see cref="ExpressionType.TypeEqual"/> and for which the <see cref="TypeBinaryExpression.Expression"/> and <see cref="TypeBinaryExpression.TypeOperand"/> properties are set to the specified values.</returns> 212return new TypeBinaryExpression(expression, type, ExpressionType.TypeEqual);
System\Linq\Expressions\UnaryExpression.cs (121)
18internal UnaryExpression(ExpressionType nodeType, Expression expression, Type type, MethodInfo? method) 35/// <returns>The <see cref="ExpressionType"/> that represents this expression.</returns> 36public sealed override ExpressionType NodeType { get; } 41/// <returns> An <see cref="Expression"/> that represents the operand of the unary operation. Returns null if node type is <see cref="ExpressionType.Throw"/> with no operand.</returns> 58if (NodeType == ExpressionType.TypeAs || NodeType == ExpressionType.Quote || NodeType == ExpressionType.Throw) 96case ExpressionType.PreIncrementAssign: 97case ExpressionType.PreDecrementAssign: 98case ExpressionType.PostIncrementAssign: 99case ExpressionType.PostDecrementAssign: 119case ExpressionType.Index: 121case ExpressionType.MemberAccess: 124Debug.Assert(Operand.NodeType == ExpressionType.Parameter); 133get { return NodeType == ExpressionType.PreIncrementAssign || NodeType == ExpressionType.PreDecrementAssign; } 138ExpressionType functional; 139if (NodeType == ExpressionType.PreIncrementAssign || NodeType == ExpressionType.PostIncrementAssign) 141functional = ExpressionType.Increment; 145Debug.Assert(NodeType == ExpressionType.PreDecrementAssign || NodeType == ExpressionType.PostDecrementAssign); 146functional = ExpressionType.Decrement; 297/// <param name="unaryType">The <see cref="ExpressionType"/> that specifies the type of unary operation.</param> 303public static UnaryExpression MakeUnary(ExpressionType unaryType, Expression operand, Type type) 311/// <param name="unaryType">The <see cref="ExpressionType"/> that specifies the type of unary operation.</param> 318public static UnaryExpression MakeUnary(ExpressionType unaryType, Expression operand, Type type, MethodInfo? method) => 321ExpressionType.Negate => Negate(operand, method), 322ExpressionType.NegateChecked => NegateChecked(operand, method), 323ExpressionType.Not => Not(operand, method), 324ExpressionType.IsFalse => IsFalse(operand, method), 325ExpressionType.IsTrue => IsTrue(operand, method), 326ExpressionType.OnesComplement => OnesComplement(operand, method), 327ExpressionType.ArrayLength => ArrayLength(operand), 328ExpressionType.Convert => Convert(operand, type, method), 329ExpressionType.ConvertChecked => ConvertChecked(operand, type, method), 330ExpressionType.Throw => Throw(operand, type), 331ExpressionType.TypeAs => TypeAs(operand, type), 332ExpressionType.Quote => Quote(operand), 333ExpressionType.UnaryPlus => UnaryPlus(operand, method), 334ExpressionType.Unbox => Unbox(operand, type), 335ExpressionType.Increment => Increment(operand, method), 336ExpressionType.Decrement => Decrement(operand, method), 337ExpressionType.PreIncrementAssign => PreIncrementAssign(operand, method), 338ExpressionType.PostIncrementAssign => PostIncrementAssign(operand, method), 339ExpressionType.PreDecrementAssign => PreDecrementAssign(operand, method), 340ExpressionType.PostDecrementAssign => PostDecrementAssign(operand, method), 344private static UnaryExpression GetUserDefinedUnaryOperatorOrThrow(ExpressionType unaryType, string name, Expression operand) 357private static UnaryExpression? GetUserDefinedUnaryOperator(ExpressionType unaryType, string name, Expression operand) 380private static UnaryExpression GetMethodBasedUnaryOperator(ExpressionType unaryType, Expression operand, MethodInfo method) 403private static UnaryExpression GetUserDefinedCoercionOrThrow(ExpressionType coercionType, Expression expression, Type convertToType) 413private static UnaryExpression? GetUserDefinedCoercion(ExpressionType coercionType, Expression expression, Type convertToType) 426private static UnaryExpression GetMethodBasedCoercionOperator(ExpressionType unaryType, Expression operand, Type convertToType, MethodInfo method) 454/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Negate"/> and the <see cref="UnaryExpression.Operand"/> properties set to the specified value.</returns> 467/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Negate"/> and the <see cref="UnaryExpression.Operand"/> and <see cref="UnaryExpression.Method"/> properties set to the specified value.</returns> 478return new UnaryExpression(ExpressionType.Negate, expression, expression.Type, null); 480return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.Negate, "op_UnaryNegation", expression); 482return GetMethodBasedUnaryOperator(ExpressionType.Negate, expression, method); 489/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.UnaryPlus"/> and the <see cref="UnaryExpression.Operand"/> property set to the specified value.</returns> 502/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.UnaryPlus"/> and the <see cref="UnaryExpression.Operand"/> and <see cref="UnaryExpression.Method"/>property set to the specified value.</returns> 513return new UnaryExpression(ExpressionType.UnaryPlus, expression, expression.Type, null); 515return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.UnaryPlus, "op_UnaryPlus", expression); 517return GetMethodBasedUnaryOperator(ExpressionType.UnaryPlus, expression, method); 521/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NegateChecked"/> and the <see cref="UnaryExpression.Operand"/> property set to the specified value.</returns> 531/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.NegateChecked"/> and the <see cref="UnaryExpression.Operand"/> and <see cref="UnaryExpression.Method"/> properties set to the specified values.</returns> 547return new UnaryExpression(ExpressionType.NegateChecked, expression, expression.Type, null); 549return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.NegateChecked, "op_UnaryNegation", expression); 551return GetMethodBasedUnaryOperator(ExpressionType.NegateChecked, expression, method); 555/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Not"/> and the <see cref="UnaryExpression.Operand"/> property set to the specified value.</returns> 566/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Not"/> and the <see cref="UnaryExpression.Operand"/> and <see cref="UnaryExpression.Method"/> properties set to the specified values.</returns> 582return new UnaryExpression(ExpressionType.Not, expression, expression.Type, null); 584UnaryExpression? u = GetUserDefinedUnaryOperator(ExpressionType.Not, "op_LogicalNot", expression); 589return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.Not, "op_OnesComplement", expression); 591return GetMethodBasedUnaryOperator(ExpressionType.Not, expression, method); 617return new UnaryExpression(ExpressionType.IsFalse, expression, expression.Type, null); 619return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.IsFalse, "op_False", expression); 621return GetMethodBasedUnaryOperator(ExpressionType.IsFalse, expression, method); 647return new UnaryExpression(ExpressionType.IsTrue, expression, expression.Type, null); 649return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.IsTrue, "op_True", expression); 651return GetMethodBasedUnaryOperator(ExpressionType.IsTrue, expression, method); 677return new UnaryExpression(ExpressionType.OnesComplement, expression, expression.Type, null); 679return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.OnesComplement, "op_OnesComplement", expression); 681return GetMethodBasedUnaryOperator(ExpressionType.OnesComplement, expression, method); 685/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.TypeAs"/> and the <see cref="UnaryExpression.Operand"/> and <see cref="Expression.Type"/> properties set to the specified values.</returns> 700return new UnaryExpression(ExpressionType.TypeAs, expression, type, null); 719return new UnaryExpression(ExpressionType.Unbox, expression, type, null); 723/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Convert"/> and the <see cref="UnaryExpression.Operand"/> and <see cref="Expression.Type"/> properties set to the specified values.</returns> 735/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Convert"/> and the <see cref="UnaryExpression.Operand"/>, <see cref="Expression.Type"/>, and <see cref="UnaryExpression.Method"/> properties set to the specified values.</returns> 755return new UnaryExpression(ExpressionType.Convert, expression, type, null); 757return GetUserDefinedCoercionOrThrow(ExpressionType.Convert, expression, type); 759return GetMethodBasedCoercionOperator(ExpressionType.Convert, expression, type, method); 763/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ConvertChecked"/> and the <see cref="UnaryExpression.Operand"/> and <see cref="Expression.Type"/> properties set to the specified values.</returns> 775/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ConvertChecked"/> and the <see cref="UnaryExpression.Operand"/>, <see cref="Expression.Type"/>, and <see cref="UnaryExpression.Method"/> properties set to the specified values.</returns> 794return new UnaryExpression(ExpressionType.ConvertChecked, expression, type, null); 798return new UnaryExpression(ExpressionType.Convert, expression, type, null); 800return GetUserDefinedCoercionOrThrow(ExpressionType.ConvertChecked, expression, type); 802return GetMethodBasedCoercionOperator(ExpressionType.ConvertChecked, expression, type, method); 806/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.ArrayLength"/> and the <see cref="UnaryExpression.Operand"/> property equal to <paramref name="array"/>.</returns> 825return new UnaryExpression(ExpressionType.ArrayLength, array, typeof(int), null); 829/// <returns>A <see cref="UnaryExpression"/> that has the <see cref="NodeType"/> property equal to <see cref="ExpressionType.Quote"/> and the <see cref="UnaryExpression.Operand"/> property set to the specified value.</returns> 842return new UnaryExpression(ExpressionType.Quote, lambda, lambda.PublicType, null); 889return new UnaryExpression(ExpressionType.Throw, value!, type, null); 915return new UnaryExpression(ExpressionType.Increment, expression, expression.Type, null); 917return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.Increment, "op_Increment", expression); 919return GetMethodBasedUnaryOperator(ExpressionType.Increment, expression, method); 945return new UnaryExpression(ExpressionType.Decrement, expression, expression.Type, null); 947return GetUserDefinedUnaryOperatorOrThrow(ExpressionType.Decrement, "op_Decrement", expression); 949return GetMethodBasedUnaryOperator(ExpressionType.Decrement, expression, method); 960return MakeOpAssignUnary(ExpressionType.PreIncrementAssign, expression, method: null); 972return MakeOpAssignUnary(ExpressionType.PreIncrementAssign, expression, method); 983return MakeOpAssignUnary(ExpressionType.PreDecrementAssign, expression, method: null); 995return MakeOpAssignUnary(ExpressionType.PreDecrementAssign, expression, method); 1006return MakeOpAssignUnary(ExpressionType.PostIncrementAssign, expression, method: null); 1018return MakeOpAssignUnary(ExpressionType.PostIncrementAssign, expression, method); 1029return MakeOpAssignUnary(ExpressionType.PostDecrementAssign, expression, method: null); 1041return MakeOpAssignUnary(ExpressionType.PostDecrementAssign, expression, method); 1044private static UnaryExpression MakeOpAssignUnary(ExpressionType kind, Expression expression, MethodInfo? method) 1057if (kind == ExpressionType.PreIncrementAssign || kind == ExpressionType.PostIncrementAssign) 1063Debug.Assert(kind == ExpressionType.PreDecrementAssign || kind == ExpressionType.PostDecrementAssign);
System.Linq.Queryable (3)
System\Linq\EnumerableRewriter.cs (3)
98if (expr.NodeType != ExpressionType.Quote) 102if (!type.IsAssignableFrom(expr.Type) && type.IsArray && expr.NodeType == ExpressionType.NewArrayInit) 348if (arg.NodeType == ExpressionType.Quote)