8 types derived from Expr
Microsoft.CSharp (8)
Microsoft\CSharp\RuntimeBinder\ExpressionTreeCallRewriter.cs (1)
20
private sealed class ExpressionExpr :
Expr
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Assignment.cs (1)
6
internal sealed class ExprAssignment :
Expr
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\ExprWithType.cs (1)
8
internal abstract class ExprWithType :
Expr
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\List.cs (1)
6
internal sealed class ExprList :
Expr
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\LocalVariable.cs (1)
8
internal sealed class ExprLocal :
Expr
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\NamedArgumentSpecification.cs (1)
8
internal sealed class ExprNamedArgumentSpecification :
Expr
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Temporary.cs (1)
6
internal sealed class ExprWrap :
Expr
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\UserDefinedConversion.cs (1)
8
internal sealed class ExprUserDefinedConversion :
Expr
746 references to Expr
Microsoft.CSharp (746)
Microsoft\CSharp\RuntimeBinder\CSharpBinaryOperationBinder.cs (1)
35
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpConvertBinder.cs (1)
34
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpGetIndexBinder.cs (2)
25
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
27
Expr
indexerArguments = runtimeBinder.CreateArgumentListEXPR(arguments, locals, 1, arguments.Length);
Microsoft\CSharp\RuntimeBinder\CSharpGetMemberBinder.cs (1)
25
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpInvokeBinder.cs (1)
24
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpInvokeConstructorBinder.cs (1)
19
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpInvokeMemberBinder.cs (1)
25
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpIsEventBinder.cs (1)
21
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpSetIndexBinder.cs (1)
26
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpSetMemberBinder.cs (1)
24
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpUnaryOperationBinder.cs (1)
36
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\ExpressionTreeCallRewriter.cs (9)
73
protected override
Expr
VisitSAVE(ExprBinOp pExpr)
90
protected override
Expr
VisitCALL(ExprCall pExpr)
217
protected override
Expr
VisitWRAP(ExprWrap pExpr) => new ExpressionExpr(GetExpression(pExpr));
223
private
Expr
GenerateLambda(ExprCall pExpr)
390
Expr
instance = list.OptionalElement;
391
Expr
nextNode = list.OptionalNextListNode;
696
private Expression GetExpression(
Expr
pExpr)
895
Expr
list = arrinit.OptionalArguments;
898
Expr
p;
Microsoft\CSharp\RuntimeBinder\ICSharpBinder.cs (1)
24
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals);
Microsoft\CSharp\RuntimeBinder\RuntimeBinder.cs (53)
120
Expr
pResult = payload.DispatchPayload(this, arguments, locals);
158
Expr
callingObject = CreateCallingObjectForCall(callPayload, arguments, locals);
194
private static Expression CreateExpressionTreeFromResult(Expression[] parameters, Scope pScope,
Expr
pResult)
383
private static ExprBoundLambda GenerateBoundLambda(Scope pScope,
Expr
call)
397
private
Expr
CreateLocal(Type type, bool isOut, LocalVariableSymbol local)
416
Expr
result = _binder.tryConvert(exprLocal, ctype) ?? _binder.mustCast(exprLocal, ctype);
425
internal
Expr
CreateArgumentListEXPR(
431
Expr
args = null;
432
Expr
last = null;
439
Expr
arg = CreateArgumentEXPR(argument, locals[i]);
460
private
Expr
CreateArgumentEXPR(ArgumentObject argument, LocalVariableSymbol local)
462
Expr
arg;
534
Expr
callingObject,
635
private
Expr
CreateProperty(
637
Expr
callingObject,
656
private ExprWithArgs CreateIndexer(SymWithType swt,
Expr
callingObject,
Expr
arguments, BindingFlag bindFlags)
669
private
Expr
CreateArray(
Expr
callingObject,
Expr
optionalIndexerArguments)
678
private
Expr
CreateField(
680
Expr
callingObject)
688
Expr
field = _binder.BindToField(callingObject is ExprClass ? null : callingObject, fwt, 0);
703
private
Expr
CreateCallingObjectForCall(
710
Expr
callingObject;
745
Expr
callingObject,
862
private void ReorderArgumentsForNamedAndOptional(
Expr
callingObject, ExprWithArgs result)
864
Expr
arguments = result.OptionalArguments;
900
Expr
pList = null;
907
Expr
pArg = argInfo.prgexpr[i];
920
private
Expr
StripNamedArgument(
Expr
pArg)
934
private
Expr
StripNamedArguments(
Expr
pArg)
964
internal
Expr
BindUnaryOperation(
972
Expr
arg1 = CreateArgumentEXPR(arguments[0], locals[0]);
979
Expr
result = _binder.tryConvert(arg1, SymbolLoader.GetPredefindType(PredefinedType.PT_BOOL));
1005
internal
Expr
BindBinaryOperation(
1013
Expr
arg1 = CreateArgumentEXPR(arguments[0], locals[0]);
1014
Expr
arg2 = CreateArgumentEXPR(arguments[1], locals[1]);
1129
internal
Expr
BindProperty(
1133
Expr
optionalIndexerArguments)
1136
Expr
callingObject = argument.Info.IsStaticType ?
1214
internal
Expr
BindImplicitConversion(
1225
Expr
argument = CreateArgumentEXPR(arguments[0], locals[0]);
1254
internal
Expr
BindExplicitConversion(ArgumentObject[] arguments, Type returnType, LocalVariableSymbol[] locals)
1261
Expr
argument = CreateArgumentEXPR(arguments[0], locals[0]);
1275
internal
Expr
BindAssignment(
1286
Expr
indexerArguments;
1303
Expr
lhs = BindProperty(payload, arguments[0], locals[0], indexerArguments);
1306
Expr
rhs = CreateArgumentEXPR(arguments[indexOfLast], locals[indexOfLast]);
1316
internal
Expr
BindIsEvent(
1324
Expr
callingObject = CreateLocal(arguments[0].Type, false, locals[0]);
Microsoft\CSharp\RuntimeBinder\Semantics\Binding\Better.cs (1)
318
Expr
arg = args.prgexpr[i];
Microsoft\CSharp\RuntimeBinder\Semantics\BinOpArgInfo.cs (4)
13
public BinOpArgInfo(
Expr
op1,
Expr
op2)
29
public
Expr
arg1;
30
public
Expr
arg2;
Microsoft\CSharp\RuntimeBinder\Semantics\Conversion.cs (60)
46
Expr
pSourceExpr,
50
out
Expr
ppDestinationExpr,
353
private bool canConvert(
Expr
expr, CType dest) => canConvert(expr, dest, 0);
357
private bool canConvert(
Expr
expr, CType dest, CONVERTTYPE flags) =>
364
private
Expr
mustConvertCore(
Expr
expr, CType destExpr) => mustConvertCore(expr, destExpr, 0);
368
private
Expr
mustConvertCore(
Expr
expr, CType dest, CONVERTTYPE flags)
372
if (BindImplicitConversion(expr, expr.Type, dest, out
Expr
exprResult, flags))
417
public
Expr
tryConvert(
Expr
expr, CType dest)
424
private
Expr
tryConvert(
Expr
expr, CType dest, CONVERTTYPE flags)
426
if (BindImplicitConversion(expr, expr.Type, dest, out
Expr
exprResult, flags))
439
public
Expr
mustConvert(
Expr
expr, CType dest) => mustConvert(expr, dest, (CONVERTTYPE)0);
443
private
Expr
mustConvert(
Expr
expr, CType dest, CONVERTTYPE flags) => mustConvertCore(expr, dest, flags);
454
private
Expr
mustCastCore(
Expr
expr, CType dest, CONVERTTYPE flags)
460
if (BindExplicitConversion(expr, expr.Type, dest, out
Expr
exprResult, flags))
469
Expr
exprConst = expr.GetConst();
530
private static RuntimeBinderException CantConvert(
Expr
expr, CType dest)
539
public
Expr
mustCast(
Expr
expr, CType dest) => mustCast(expr, dest, 0);
543
public
Expr
mustCast(
Expr
expr, CType dest, CONVERTTYPE flags) => mustCastCore(expr, dest, flags);
547
private
Expr
MustCastInUncheckedContext(
Expr
expr, CType dest, CONVERTTYPE flags) =>
557
private bool BindImplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, CONVERTTYPE flags)
565
private bool BindImplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
575
private bool BindImplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, bool needsExprDest, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
585
private bool BindExplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, bool needsExprDest, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
595
private bool BindExplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
605
private bool BindExplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, CONVERTTYPE flags)
653
private bool bindUserDefinedConversion(
Expr
exprSrc, CType typeSrc, CType typeDst, bool needExprDest, out
Expr
pexprDst, bool fImplicitOnly)
1014
Expr
exprDst;
1015
Expr
pTransformedArgument = exprSrc;
1028
Expr
nonLiftedArg = mustCast(exprSrc, typeFrom);
1030
Expr
nonLiftedResult = BindUDConversionCore(nonLiftedArg, typeFrom, typeTo, typeDst, mwiBest);
1040
Expr
pConversionArgument;
1068
Expr
pConversionCall = BindUDConversionCore(nonLiftedArg, typeFrom, typeTo, typeDst, mwiBest);
1090
private static void MarkAsIntermediateConversion(
Expr
pExpr)
1122
private
Expr
BindUDConversionCore(
Expr
pFrom, CType pTypeFrom, CType pTypeTo, CType pTypeDestination, MethWithInst mwiBest)
1129
private
Expr
BindUDConversionCore(
Expr
pFrom, CType pTypeFrom, CType pTypeTo, CType pTypeDestination, MethWithInst mwiBest, out
Expr
ppTransformedArgument)
1131
Expr
pTransformedArgument = mustCastCore(pFrom, pTypeFrom, CONVERTTYPE.NOUDC);
1135
Expr
pCast = mustCastCore(pCall, pTypeDestination, CONVERTTYPE.NOUDC);
1146
private ConstCastResult bindConstantCast(
Expr
exprSrc, CType typeDest, bool needExprDest, out
Expr
pexprDest, bool explicitConversion)
1161
Expr
expr = BindDecimalConstCast(typeDest, exprSrc.Type, constSrc);
1409
private static
Expr
BindDecimalConstCast(CType destType, CType srcType, ExprConstant src)
1520
private bool CanExplicitConversionBeBoundInUncheckedContext(
Expr
exprSrc, CType typeSrc, CType typeDest, CONVERTTYPE flags)
Microsoft\CSharp\RuntimeBinder\Semantics\ExplicitConversion.cs (6)
20
private readonly
Expr
_exprSrc;
39
private
Expr
_exprDest;
47
public ExplicitConversion(ExpressionBinder binder,
Expr
exprSrc, CType typeSrc, CType typeDest, bool needsExprDest, CONVERTTYPE flags)
57
public
Expr
ExprDest { get { return _exprDest; } }
199
Expr
valueSrc = _exprSrc;
507
Expr
exprCast;
Microsoft\CSharp\RuntimeBinder\Semantics\ExpressionBinder.cs (72)
36
public List<
Expr
> prgexpr;
262
private delegate
Expr
PfnBindBinOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
op1,
Expr
op2);
263
private delegate
Expr
PfnBindUnaOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
op);
283
private
Expr
GenerateAssignmentConversion(
Expr
op1,
Expr
op2, bool allowExplicit) =>
291
public
Expr
BindAssignment(
Expr
op1,
Expr
op2, bool allowExplicit)
307
internal
Expr
BindArrayIndexCore(
Expr
pOp1,
Expr
pOp2)
320
Expr
transformedIndices = pOp2.Map(
323
Expr
pTemp = binder.MustConvertWithSuppressedMessage(x, pDestType);
337
private
Expr
MustConvertWithSuppressedMessage(
Expr
x, CType pDestType)
343
private static ExprCast ExprFactoryCreateCastWithSuppressedMessage(EXPRFLAG flags, CType type,
Expr
argument)
350
private void bindSimpleCast(
Expr
exprSrc, CType typeDest, out
Expr
pexprDest) =>
355
private void bindSimpleCast(
Expr
exprSrc, CType typeDest, out
Expr
pexprDest, EXPRFLAG exprFlags)
361
Expr
exprConst = exprSrc.GetConst();
399
private ExprCall BindToMethod(MethWithInst mwi,
Expr
pArguments, ExprMemberGroup pMemGroup, MemLookFlags flags)
404
Expr
pObject = pMemGroup.OptionalObject;
445
internal
Expr
BindToField(
Expr
pOptionalObject, FieldWithType fwt, BindingFlag bindFlags)
472
internal ExprProperty BindToProperty(
Expr
pObject, PropWithType pwt, BindingFlag bindFlags,
Expr
args, ExprMemberGroup pMemGroup)
482
Expr
pObjectThrough = pObject;
549
internal
Expr
bindUDUnop(ExpressionKind ek,
Expr
arg)
665
private ExprCall BindLiftedUDUnop(
Expr
arg, CType typeArg, MethPropWithInst mpwi)
682
Expr
nonLiftedArg = mustCast(arg, typeRaw);
695
private ExprCall BindUDUnopCall(
Expr
arg, CType typeArg, MethPropWithInst mpwi)
711
private GroupToArgsBinderResult BindMethodGroupToArgumentsCore(BindingFlag bindFlags, ExprMemberGroup grp,
Expr
args, int carg, NamedArgumentsKind namedArgumentsKind)
730
internal ExprWithArgs BindMethodGroupToArguments(BindingFlag bindFlags, ExprMemberGroup grp,
Expr
args)
762
private static NamedArgumentsKind FindNamedArgumentsType(
Expr
args)
764
Expr
list = args;
767
Expr
arg;
811
private static RuntimeBinderException BadOperatorTypesError(
Expr
pOperand1,
Expr
pOperand2)
873
private void CheckLvalue(
Expr
expr, CheckLvalueKind kind)
968
private
Expr
AdjustMemberObject(SymWithType swt,
Expr
pObject)
1033
private static bool IsMatchingStatic(SymWithType swt,
Expr
pObject)
1071
private static void AssertObjectIsLvalue(
Expr
pObject)
1089
Expr
argsPtr = call.OptionalArguments;
1093
Expr
newArgs;
1100
private void AdjustCallArgumentsForParams(CType callingObjectType, CType type, MethodOrPropertySymbol mp, TypeArray pTypeArgs,
Expr
argsPtr, out
Expr
newArgs)
1105
Expr
newArgsTail = null;
1128
Expr
indir = it.Current();
1146
Expr
argument = indir;
1147
Expr
rval;
1277
Expr
newList = null;
1278
Expr
newListTail = null;
1283
Expr
expr = it.Current();
1313
internal CType ChooseArrayIndexType(
Expr
args)
1319
foreach (
Expr
arg in args.ToEnumerable())
1337
internal static void FillInArgInfoFromArgList(ArgInfos argInfo,
Expr
args)
1340
argInfo.prgexpr = new List<
Expr
>();
1343
for (
Expr
list = args; list != null; iarg++)
1345
Expr
arg;
1652
private static ExprWrap WrapShortLivedExpression(
Expr
expr) => ExprFactory.CreateWrap(expr);
1654
private static ExprAssignment GenerateOptimizedAssignment(
Expr
op1,
Expr
op2) => ExprFactory.CreateAssignment(op1, op2);
1656
internal static int CountArguments(
Expr
args)
1659
for (
Expr
list = args; list != null; carg++)
1661
Expr
arg;
Microsoft\CSharp\RuntimeBinder\Semantics\EXPRExtensions.cs (22)
12
public static
Expr
Map(this
Expr
expr, Func<
Expr
,
Expr
> f)
21
Expr
result = null;
22
Expr
tail = null;
23
foreach (
Expr
item in expr.ToEnumerable())
25
Expr
mappedItem = f(item);
31
public static IEnumerable<
Expr
> ToEnumerable(this
Expr
expr)
33
Expr
exprCur = expr;
50
public static void AssertIsBin(this
Expr
expr)
54
public static bool isLvalue(this
Expr
expr)
58
public static bool isChecked(this
Expr
expr)
63
public static bool isNull(this
Expr
expr)
66
public static bool IsZero(this
Expr
expr) => expr is ExprConstant constant && constant.IsZero;
68
private static
Expr
GetSeqVal(this
Expr
expr)
76
Expr
exprVal = expr;
90
public static
Expr
GetConst(this
Expr
expr)
92
Expr
exprVal = expr.GetSeqVal();
Microsoft\CSharp\RuntimeBinder\Semantics\ExprFactory.cs (49)
13
public static ExprCall CreateCall(EXPRFLAG flags, CType type,
Expr
arguments, ExprMemberGroup memberGroup, MethWithInst method) =>
16
public static ExprField CreateField(CType type,
Expr
optionalObject, FieldWithType field) =>
19
public static ExprArrayInit CreateArrayInit(CType type,
Expr
arguments,
Expr
argumentDimensions, int[] dimSizes) =>
22
public static ExprProperty CreateProperty(CType type,
Expr
optionalObjectThrough,
Expr
arguments, ExprMemberGroup memberGroup, PropWithType property, MethWithType setMethod) =>
25
public static ExprMemberGroup CreateMemGroup(EXPRFLAG flags, Name name, TypeArray typeArgs, SYMKIND symKind, CType parentType,
Expr
obj, CMemberLookupResults memberLookupResults) =>
29
public static ExprMemberGroup CreateMemGroup(
Expr
obj, MethPropWithInst method)
39
public static ExprUserDefinedConversion CreateUserDefinedConversion(
Expr
arg,
Expr
call, MethWithInst method) =>
44
public static ExprCast CreateCast(CType type,
Expr
argument) => CreateCast(0, type, argument);
48
public static ExprCast CreateCast(EXPRFLAG flags, CType type,
Expr
argument) => new ExprCast(flags, type, argument);
56
public static ExprBoundLambda CreateAnonymousMethod(AggregateType delegateType, Scope argumentScope,
Expr
expression) =>
88
public static ExprUserLogicalOp CreateUserLogOp(CType type,
Expr
trueFalseCall, ExprCall operatorCall) =>
93
public static ExprConcat CreateConcat(
Expr
first,
Expr
second) => new ExprConcat(first, second);
107
public static ExprMulti CreateMulti(EXPRFLAG flags, CType type,
Expr
left,
Expr
op) =>
119
public static
Expr
CreateZeroInit(CType type)
168
public static ExprArrayIndex CreateArrayIndex(CType type,
Expr
array,
Expr
index) =>
171
public static ExprBinOp CreateBinop(ExpressionKind exprKind, CType type,
Expr
left,
Expr
right) =>
174
public static ExprUnaryOp CreateUnaryOp(ExpressionKind exprKind, CType type,
Expr
operand) =>
177
public static ExprOperator CreateOperator(ExpressionKind exprKind, CType type,
Expr
arg1,
Expr
arg2)
186
public static ExprBinOp CreateUserDefinedBinop(ExpressionKind exprKind, CType type,
Expr
left,
Expr
right,
Expr
call, MethPropWithInst userMethod) =>
190
public static ExprUnaryOp CreateUserDefinedUnaryOperator(ExpressionKind exprKind, CType type,
Expr
operand, ExprCall call, MethPropWithInst userMethod) =>
193
public static ExprUnaryOp CreateNeg(EXPRFLAG flags,
Expr
operand)
204
public static ExprBinOp CreateSequence(
Expr
first,
Expr
second) =>
210
public static ExprAssignment CreateAssignment(
Expr
left,
Expr
right) => new ExprAssignment(left, right);
214
public static ExprNamedArgumentSpecification CreateNamedArgumentSpecification(Name name,
Expr
value) =>
217
public static ExprWrap CreateWrap(
Expr
expression) => new ExprWrap(expression);
229
public static void AppendItemToList(
Expr
newItem, ref
Expr
first, ref
Expr
last)
257
public static ExprList CreateList(
Expr
op1,
Expr
op2) => new ExprList(op1, op2);
259
public static ExprList CreateList(
Expr
op1,
Expr
op2,
Expr
op3) => CreateList(op1, CreateList(op2, op3));
261
public static ExprList CreateList(
Expr
op1,
Expr
op2,
Expr
op3,
Expr
op4) =>
Microsoft\CSharp\RuntimeBinder\Semantics\GroupToArgsBinder.cs (15)
405
Expr
[] pExprArguments = new
Expr
[numParameters];
410
Expr
paramArrayArgument = null;
445
Expr
pNewArg = FindArgumentWithName(pArguments, name);
488
private static
Expr
GenerateOptionalArgument(MethodOrPropertySymbol methprop, CType type, int index)
493
Expr
optionalArgument;
578
private static MethodOrPropertySymbol FindMostDerivedMethod(MethodOrPropertySymbol pMethProp,
Expr
pObject) =>
689
Expr
[] pArguments = new
Expr
[_pCurrentParameters.Count - i];
719
private static
Expr
FindArgumentWithName(ArgInfos pArguments, Name pName)
721
List<
Expr
> prgexpr = pArguments.prgexpr;
724
Expr
expr = prgexpr[i];
933
Expr
pArgument = _pArguments.prgexpr[ivar];
1019
Expr
pArgument = _pArguments.prgexpr[iParam];
1038
Expr
pArgumentNew = GenerateOptionalArgument(pMethod, _pCurrentParameters[iParam], iParam);
Microsoft\CSharp\RuntimeBinder\Semantics\ImplicitConversion.cs (6)
19
public ImplicitConversion(ExpressionBinder binder,
Expr
exprSrc, CType typeSrc, CType typeDest, bool needsExprDest, CONVERTTYPE flags)
29
public
Expr
ExprDest { get { return _exprDest; } }
30
private
Expr
_exprDest;
32
private readonly
Expr
_exprSrc;
323
Expr
exprTmp = _exprSrc;
375
Expr
arg1 = _binder.mustCast(_exprSrc, typeSrcBase);
Microsoft\CSharp\RuntimeBinder\Semantics\MemberLookup.cs (1)
522
public bool Lookup(CType typeSrc,
Expr
obj, ParentSymbol symWhere, Name name, int arity, MemLookFlags flags)
Microsoft\CSharp\RuntimeBinder\Semantics\MethodIterator.cs (1)
107
List<
Expr
> argExpressions = args.prgexpr;
Microsoft\CSharp\RuntimeBinder\Semantics\MethodTypeInferrer.cs (1)
270
Expr
pExpr = _pMethodArguments.prgexpr[iArg];
Microsoft\CSharp\RuntimeBinder\Semantics\Nullable.cs (7)
11
private static bool IsNullableConstructor(
Expr
expr, out ExprCall call)
26
private static
Expr
StripNullableConstructor(
Expr
pExpr)
40
private static
Expr
BindNubValue(
Expr
exprSrc)
47
Expr
args = call.OptionalArguments;
65
private static ExprCall BindNubNew(
Expr
exprSrc)
Microsoft\CSharp\RuntimeBinder\Semantics\Operators.cs (125)
155
Expr
expr;
467
Expr
arg1 = info.arg1;
468
Expr
arg2 = info.arg2;
500
public
Expr
BindStandardBinop(ExpressionKind ek,
Expr
arg1,
Expr
arg2)
576
private
Expr
BindStandardBinopCore(BinOpArgInfo info, BinOpFullSig bofs, ExpressionKind ek, EXPRFLAG flags)
585
Expr
expr1 = info.arg1;
586
Expr
expr2 = info.arg2;
603
Expr
expr1 = info.arg1;
604
Expr
expr2 = info.arg2;
623
Expr
arg1 = info.arg1;
624
Expr
arg2 = info.arg2;
630
Expr
nonLiftedResult = null;
632
LiftArgument(arg1, bofs.Type1(), bofs.ConvertFirst(), out
Expr
pArgument1, out
Expr
nonLiftedArg1);
633
LiftArgument(arg2, bofs.Type2(), bofs.ConvertSecond(), out
Expr
pArgument2, out
Expr
nonLiftedArg2);
674
private void LiftArgument(
Expr
pArgument, CType pParameterType, bool bConvertBeforeLift,
675
out
Expr
ppLiftedArgument, out
Expr
ppNonLiftedArgument)
677
Expr
pLiftedArgument = mustConvert(pArgument, pParameterType);
683
Expr
pNonLiftedArgument = pArgument;
1179
public
Expr
BindStandardUnaryOperator(OperatorKind op,
Expr
pArgument)
1210
UnaryOperatorSignatureFindResult eResultOfSignatureFind = PopulateSignatureList(pArgument, unaryOpKind, unaryOpMask, ek, flags, pSignatures, out
Expr
pResult);
1311
Expr
arg =
1322
private UnaryOperatorSignatureFindResult PopulateSignatureList(
Expr
pArgument, UnaOpKind unaryOpKind, UnaOpMask unaryOpMask, ExpressionKind exprKind, EXPRFLAG flags, List<UnaOpFullSig> pSignatures, out
Expr
ppResult)
1376
Expr
exprVal = bindUDUnop((ExpressionKind)(exprKind - ExpressionKind.Add + ExpressionKind.Inc), exprGet);
1398
Expr
expr = bindUDUnop(exprKind, pArgument);
1415
Expr
pArgument,
1541
private ExprOperator BindLiftedStandardUnop(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1550
LiftArgument(arg, uofs.GetType(), uofs.Convert(), out
Expr
pArgument, out
Expr
nonLiftedArg);
1553
Expr
nonLiftedResult = uofs.pfn(this, ek, flags, nonLiftedArg);
1595
private static ExprOperator BindIntBinOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1606
private static ExprOperator BindIntUnaOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
1617
private static ExprOperator BindRealBinOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG _,
Expr
arg1,
Expr
arg2)
1628
private static ExprOperator BindRealUnaOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG _,
Expr
arg)
1640
private
Expr
BindIncOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1665
private
Expr
BindIncOpCore(ExpressionKind ek, EXPRFLAG flags,
Expr
exprVal, CType type)
1724
private
Expr
LScalar(ExpressionKind ek, EXPRFLAG flags,
Expr
exprVal, CType type, ConstVal cv, CType typeTmp)
1739
private ExprMulti BindNonliftedIncOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1746
Expr
exprVal = exprGet;
1758
Expr
op = mustCast(exprVal, arg.Type, CONVERTTYPE.NOUDC);
1767
private ExprMulti BindLiftedIncOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1776
Expr
exprVal = exprGet;
1777
Expr
nonLiftedArg = exprVal;
1783
Expr
nonLiftedResult = BindIncOpCore(ek, flags, nonLiftedArg, type.UnderlyingType);
1802
private static ExprBinOp BindDecBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1845
private static ExprUnaryOp BindDecUnaOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
1866
private static
Expr
BindStrBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1879
private static ExprBinOp BindShiftOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1898
private static ExprBinOp BindBoolBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1910
private ExprOperator BindBoolBitwiseOp(ExpressionKind ek, EXPRFLAG flags,
Expr
expr1,
Expr
expr2)
1922
Expr
nonLiftedArg1 = StripNullableConstructor(expr1);
1923
Expr
nonLiftedArg2 = StripNullableConstructor(expr2);
1924
Expr
nonLiftedResult = null;
1947
private static
Expr
BindLiftedBoolBitwiseOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
expr1,
Expr
expr2) => null;
1955
private static
Expr
BindBoolUnaOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
1966
Expr
argConst = arg.GetConst();
1981
private static ExprBinOp BindStrCmpOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2000
private static ExprBinOp BindRefCmpOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2017
private static
Expr
BindDelBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2059
private static
Expr
BindEnumBinOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2076
Expr
exprRes = binder.BindIntOp(ek, flags, arg1, arg2, ptOp);
2089
private
Expr
BindLiftedEnumArithmeticBinOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2137
private static
Expr
BindEnumUnaOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
2154
Expr
exprRes = binder.BindIntOp(ek, flags, arg, null, ptOp);
2239
private ExprOperator BindIntOp(ExpressionKind kind, EXPRFLAG flags,
Expr
op1,
Expr
op2, PredefinedType ptOp)
2265
private ExprOperator BindIntegerNeg(EXPRFLAG flags,
Expr
op, PredefinedType ptOp)
2326
private static ExprOperator BindFloatOp(ExpressionKind kind,
Expr
op1,
Expr
op2)
2344
private static ExprConcat BindStringConcat(
Expr
op1,
Expr
op2)
2371
private static RuntimeBinderException AmbiguousOperatorError(
Expr
op1,
Expr
op2)
2387
private
Expr
BindUserBoolOp(ExpressionKind kind, ExprCall pCall)
2406
Expr
pExpr = list.OptionalElement;
2414
Expr
pCallT = bindUDUnop(ExpressionKind.True, pExprWrap);
2415
Expr
pCallF = bindUDUnop(ExpressionKind.False, pExprWrap);
2511
ExpressionKind ek, MethodSymbol method, AggregateType ats,
Expr
arg1,
Expr
arg2, bool fDontLift)
2551
Expr
arg1,
Expr
arg2, bool fDontLift)
2572
Expr
arg1,
Expr
arg2, bool fDontLift, AggregateType atsStop)
2587
private ExprCall BindUDBinop(ExpressionKind ek,
Expr
arg1,
Expr
arg2, bool fDontLift, out MethPropWithInst ppmpwi)
2647
private ExprCall BindUDBinopCall(
Expr
arg1,
Expr
arg2, TypeArray Params, CType typeRet, MethPropWithInst mpwi)
2667
private ExprCall BindLiftedUDBinop(ExpressionKind ek,
Expr
arg1,
Expr
arg2, TypeArray Params, MethPropWithInst mpwi)
2669
Expr
exprVal1 = arg1;
2670
Expr
exprVal2 = arg2;
2697
Expr
nonLiftedArg1 = mustCast(exprVal1, paramsRaw[0]);
2698
Expr
nonLiftedArg2 = mustCast(exprVal2, paramsRaw[1]);
2789
private static ExprBinOp CreateBinopForPredefMethodCall(ExpressionKind ek, PREDEFMETH predefMeth, CType RetType,
Expr
arg1,
Expr
arg2)
2805
private static ExprUnaryOp CreateUnaryOpForPredefMethodCall(ExpressionKind ek, PREDEFMETH predefMeth, CType pRetType,
Expr
pArg)
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\ArrayIndex.cs (4)
8
public ExprArrayIndex(CType type,
Expr
array,
Expr
index)
16
public
Expr
Array { get; set; }
18
public
Expr
Index { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\ArrayInitialization.cs (4)
8
public ExprArrayInit(CType type,
Expr
arguments,
Expr
argumentDimensions, int[] dimensionSizes)
16
public
Expr
OptionalArguments { get; set; }
18
public
Expr
OptionalArgumentDimensions { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Assignment.cs (5)
8
private
Expr
_lhs;
10
public ExprAssignment(
Expr
lhs,
Expr
rhs)
18
public
Expr
LHS
24
public
Expr
RHS { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\BinaryOperator.cs (7)
10
public ExprBinOp(ExpressionKind kind, CType type,
Expr
left,
Expr
right)
21
public ExprBinOp(ExpressionKind kind, CType type,
Expr
left,
Expr
right,
Expr
call, MethPropWithInst userMethod)
33
public
Expr
OptionalLeftChild { get; set; }
35
public
Expr
OptionalRightChild { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\BoundAnonymousFunction.cs (2)
10
public ExprBoundLambda(AggregateType type, Scope argumentScope,
Expr
expression)
20
public
Expr
Expression { get; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Call.cs (3)
10
public ExprCall(CType type, EXPRFLAG flags,
Expr
arguments, ExprMemberGroup member, MethWithInst method)
29
public
Expr
PConversions { get; set; }
31
public
Expr
CastOfNonLiftedResultToLiftedType { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Cast.cs (3)
11
public ExprCast(EXPRFLAG flags, CType type,
Expr
argument)
20
public
Expr
Argument { get; set; }
29
Expr
arg = Argument;
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\CompoundOperator.cs (4)
23
public ExprMulti(CType type, EXPRFLAG flags,
Expr
left,
Expr
op)
33
public
Expr
Left { get; set; }
35
public
Expr
Operator { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Concatenate.cs (6)
11
public ExprConcat(
Expr
first,
Expr
second)
21
private static CType TypeFromOperands(
Expr
first,
Expr
second)
33
public
Expr
FirstArgument { get; set; }
35
public
Expr
SecondArgument { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Constant.cs (1)
18
public
Expr
OptionalConstructorCall { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\ExpressionIterator.cs (5)
43
public ExpressionIterator(
Expr
pExpr) { Init(pExpr); }
47
public
Expr
Current() { return _pCurrent; }
65
public static int Count(
Expr
pExpr)
76
private
Expr
_pCurrent;
78
private void Init(
Expr
pExpr)
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\ExprOperator.cs (2)
16
protected ExprOperator(ExpressionKind kind, CType type,
Expr
call, MethPropWithInst userDefinedMethod)
23
public
Expr
OptionalUserDefinedCall { get; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\ExprWithArgs.cs (1)
15
public
Expr
OptionalArguments { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Field.cs (2)
8
public ExprField(CType type,
Expr
optionalObject, FieldWithType field)
16
public
Expr
OptionalObject { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\List.cs (4)
8
public ExprList(
Expr
optionalElement,
Expr
optionalNextListNode)
15
public
Expr
OptionalElement { get; set; }
17
public
Expr
OptionalNextListNode { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\MemberGroup.cs (2)
11
public ExprMemberGroup(EXPRFLAG flags, Name name, TypeArray typeArgs, SYMKIND symKind, CType parentType,
Expr
optionalObject, CMemberLookupResults memberLookupResults)
39
public
Expr
OptionalObject { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\NamedArgumentSpecification.cs (3)
10
private
Expr
_value;
12
public ExprNamedArgumentSpecification(Name name,
Expr
value)
21
public
Expr
Value
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Property.cs (3)
19
public ExprProperty(CType type,
Expr
pOptionalObjectThrough,
Expr
pOptionalArguments, ExprMemberGroup pMemberGroup, PropWithType pwtSlot, MethWithType mwtSet)
41
public
Expr
OptionalObjectThrough { get; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Temporary.cs (2)
8
public ExprWrap(
Expr
expression)
16
public
Expr
OptionalExpression { get; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\UnaryOperator.cs (4)
10
public ExprUnaryOp(ExpressionKind kind, CType type,
Expr
operand)
18
public ExprUnaryOp(ExpressionKind kind, CType type,
Expr
operand,
Expr
call, MethPropWithInst userMethod)
29
public
Expr
Child { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\UserDefinedConversion.cs (5)
10
private
Expr
_userDefinedCall;
12
public ExprUserDefinedConversion(
Expr
argument,
Expr
call, MethWithInst method)
22
public
Expr
Argument { get; set; }
24
public
Expr
UserDefinedCall
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\UserDefinedLogicalOperator.cs (4)
10
public ExprUserLogicalOp(CType type,
Expr
trueFalseCall, ExprCall operatorCall)
18
Expr
leftChild = ((ExprList)operatorCall.OptionalArguments).OptionalElement;
24
public
Expr
TrueFalseCall { get; set; }
28
public
Expr
FirstOperandToExamine { get; set; }
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Visitors\ExpressionTreeRewriter.cs (150)
17
protected override
Expr
Dispatch(
Expr
expr)
21
Expr
result = base.Dispatch(expr);
32
protected override
Expr
VisitASSIGNMENT(ExprAssignment assignment)
38
Expr
lhs;
52
Expr
instance = Visit(prop.MemberGroup.OptionalObject);
53
Expr
propInfo = ExprFactory.CreatePropertyInfo(prop.PropWithTypeSlot.Prop(), prop.PropWithTypeSlot.Ats);
54
Expr
arguments = GenerateParamsArray(
66
Expr
rhs = Visit(assignment.RHS);
71
protected override
Expr
VisitMULTIGET(ExprMultiGet pExpr)
77
protected override
Expr
VisitMULTI(ExprMulti pExpr)
79
Expr
rhs = Visit(pExpr.Operator);
80
Expr
lhs = Visit(pExpr.Left);
97
Expr
createParameters = CreateWraps(anonmeth);
100
Expr
body = Visit(anonmeth.Expression);
102
Expr
parameters = GenerateParamsArray(null, PredefinedType.PT_PARAMETEREXPRESSION);
103
Expr
args = ExprFactory.CreateList(body, parameters);
112
protected override
Expr
VisitCONSTANT(ExprConstant expr)
119
protected override
Expr
VisitLOCAL(ExprLocal local)
127
protected override
Expr
VisitFIELD(ExprField expr)
130
Expr
pObject;
144
protected override
Expr
VisitUSERDEFINEDCONVERSION(ExprUserDefinedConversion expr)
151
protected override
Expr
VisitCAST(ExprCast pExpr)
155
Expr
pArgument = pExpr.Argument;
175
Expr
result = GenerateConversion(pArgument, pExpr.Type, pExpr.isChecked());
185
protected override
Expr
VisitCONCAT(ExprConcat expr)
197
Expr
p1 = Visit(expr.FirstArgument);
198
Expr
p2 = Visit(expr.SecondArgument);
200
Expr
methodInfo = ExprFactory.CreateMethodInfo(method, SymbolLoader.GetPredefindType(PredefinedType.PT_STRING), null);
205
protected override
Expr
VisitBINOP(ExprBinOp expr)
219
protected override
Expr
VisitUNARYOP(ExprUnaryOp pExpr)
233
protected override
Expr
VisitARRAYINDEX(ExprArrayIndex pExpr)
236
Expr
arr = Visit(pExpr.Array);
237
Expr
args = GenerateIndexList(pExpr.Index);
240
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
247
protected override
Expr
VisitCALL(ExprCall expr)
274
Expr
pObject;
302
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.MethWithInst);
303
Expr
args = GenerateArgsList(expr.OptionalArguments);
304
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
312
protected override
Expr
VisitPROP(ExprProperty expr)
315
Expr
pObject;
324
Expr
propInfo = ExprFactory.CreatePropertyInfo(expr.PropWithTypeSlot.Prop(), expr.PropWithTypeSlot.GetType());
328
Expr
args = GenerateArgsList(expr.OptionalArguments);
329
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
336
protected override
Expr
VisitARRINIT(ExprArrayInit expr)
340
Expr
pTypeOf = CreateTypeOf(((ArrayType)expr.Type).ElementType);
341
Expr
args = GenerateArgsList(expr.OptionalArguments);
342
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
347
protected override
Expr
VisitZEROINIT(ExprZeroInit expr)
354
protected override
Expr
VisitTYPEOF(ExprTypeOf expr)
361
private
Expr
GenerateDelegateInvoke(ExprCall expr)
366
Expr
oldObject = memberGroup.OptionalObject;
368
Expr
pObject = Visit(oldObject);
369
Expr
args = GenerateArgsList(expr.OptionalArguments);
370
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
375
private
Expr
GenerateBuiltInBinaryOperator(ExprBinOp expr)
404
Expr
origL = expr.OptionalLeftChild;
405
Expr
origR = expr.OptionalRightChild;
411
Expr
newL = Visit(origL);
412
Expr
newR = Visit(origR);
465
Expr
call = GenerateCall(pdm, newL, newR);
476
private
Expr
GenerateBuiltInUnaryOperator(ExprUnaryOp expr)
492
Expr
origOp = expr.Child;
500
private
Expr
GenerateUserDefinedBinaryOperator(ExprBinOp expr)
541
Expr
p1 = expr.OptionalLeftChild;
542
Expr
p2 = expr.OptionalRightChild;
543
Expr
udcall = expr.OptionalUserDefinedCall;
567
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.UserDefinedCallMethod);
568
Expr
call = GenerateCall(pdm, p1, p2, methodInfo);
573
Expr
pTypeOf = CreateTypeOf(expr.Type);
580
private
Expr
GenerateUserDefinedUnaryOperator(ExprUnaryOp expr)
584
Expr
arg = expr.Child;
619
Expr
op = Visit(arg);
620
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.UserDefinedCallMethod);
631
private
Expr
GenerateUserDefinedComparisonOperator(ExprBinOp expr)
649
Expr
p1 = expr.OptionalLeftChild;
650
Expr
p2 = expr.OptionalRightChild;
663
Expr
lift = ExprFactory.CreateBoolConstant(false); // We never lift to null in C#.
664
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.UserDefinedCallMethod);
669
private
Expr
GenerateConversion(
Expr
arg, CType CType, bool bChecked) =>
673
private static
Expr
GenerateConversionWithSource(
Expr
pTarget, CType pType, bool bChecked)
676
Expr
pTypeOf = CreateTypeOf(pType);
681
private
Expr
GenerateValueAccessConversion(
Expr
pArgument)
685
Expr
pStrippedTypeExpr = CreateTypeOf(pStrippedTypeOfArgument);
690
private
Expr
GenerateUserDefinedConversion(
Expr
arg, CType type, MethWithInst method)
692
Expr
target = Visit(arg);
697
private static
Expr
GenerateUserDefinedConversion(
Expr
arg, CType CType,
Expr
target, MethWithInst method)
711
Expr
typeofNubEnum = CreateTypeOf(nullableType);
724
Expr
typeofInner = CreateTypeOf(fDontLiftReturnType ? CType : pMethodReturnType);
725
Expr
methodInfo = ExprFactory.CreateMethodInfo(method);
727
Expr
callUserDefinedConversion = GenerateCall(pdmInner, target, typeofInner, methodInfo);
735
Expr
typeofOuter = CreateTypeOf(CType);
740
private
Expr
GenerateUserDefinedConversion(ExprUserDefinedConversion pExpr,
Expr
pArgument)
742
Expr
pCastCall = pExpr.UserDefinedCall;
743
Expr
pCastArgument = pExpr.Argument;
744
Expr
pConversionSource;
755
Expr
pUDConversion = call?.PConversions;
760
Expr
pUDConversionArgument = convCall.OptionalArguments;
789
private static
Expr
GenerateParameter(string name, CType CType)
804
private static
Expr
CreateWraps(ExprBoundLambda anonmeth)
806
Expr
sequence = null;
815
Expr
create = GenerateParameter(local.name.Text, local.GetType());
817
Expr
save = ExprFactory.CreateSave(local.wrap);
832
private
Expr
GenerateConstructor(ExprCall expr)
836
Expr
constructorInfo = ExprFactory.CreateMethodInfo(expr.MethWithInst);
837
Expr
args = GenerateArgsList(expr.OptionalArguments);
838
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
843
private
Expr
GenerateArgsList(
Expr
oldArgs)
845
Expr
newArgs = null;
846
Expr
newArgsTail = newArgs;
849
Expr
oldArg = it.Current();
856
private
Expr
GenerateIndexList(
Expr
oldIndices)
860
Expr
newIndices = null;
861
Expr
newIndicesTail = newIndices;
864
Expr
newIndex = it.Current();
870
Expr
rewrittenIndex = Visit(newIndex);
877
private static
Expr
GenerateConstant(
Expr
expr)
902
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1)
918
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1,
Expr
arg2)
924
Expr
args = ExprFactory.CreateList(arg1, arg2);
933
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1,
Expr
arg2,
Expr
arg3)
939
Expr
args = ExprFactory.CreateList(arg1, arg2, arg3);
948
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1,
Expr
arg2,
Expr
arg3,
Expr
arg4)
954
Expr
args = ExprFactory.CreateList(arg1, arg2, arg3, arg4);
963
private static ExprArrayInit GenerateParamsArray(
Expr
args, PredefinedType pt)
973
private static void FixLiftedUserDefinedBinaryOperators(ExprBinOp expr, ref
Expr
pp1, ref
Expr
pp2)
983
Expr
orig1 = expr.OptionalLeftChild;
984
Expr
orig2 = expr.OptionalRightChild;
986
Expr
new1 = pp1;
987
Expr
new2 = pp2;
1021
private static bool IsNullableValueAccess(
Expr
pExpr,
Expr
pObject)
Microsoft\CSharp\RuntimeBinder\Semantics\Tree\Visitors\ExprVisitorBase.cs (74)
12
protected
Expr
Visit(
Expr
pExpr) => pExpr == null ? null : Dispatch(pExpr);
15
protected virtual
Expr
Dispatch(
Expr
pExpr) =>
92
private void VisitChildren(
Expr
pExpr)
96
Expr
exprRet;
108
Expr
nextNode = list.OptionalNextListNode;
297
protected virtual
Expr
VisitEXPR(
Expr
pExpr)
304
protected virtual
Expr
VisitBINOP(ExprBinOp pExpr)
310
protected virtual
Expr
VisitLIST(ExprList pExpr)
316
protected virtual
Expr
VisitASSIGNMENT(ExprAssignment pExpr)
322
protected virtual
Expr
VisitARRAYINDEX(ExprArrayIndex pExpr)
328
protected virtual
Expr
VisitUNARYOP(ExprUnaryOp pExpr)
334
protected virtual
Expr
VisitUSERLOGOP(ExprUserLogicalOp pExpr)
340
protected virtual
Expr
VisitTYPEOF(ExprTypeOf pExpr)
346
protected virtual
Expr
VisitCAST(ExprCast pExpr)
352
protected virtual
Expr
VisitUSERDEFINEDCONVERSION(ExprUserDefinedConversion pExpr)
358
protected virtual
Expr
VisitZEROINIT(ExprZeroInit pExpr)
364
protected virtual
Expr
VisitMEMGRP(ExprMemberGroup pExpr)
370
protected virtual
Expr
VisitCALL(ExprCall pExpr)
376
protected virtual
Expr
VisitPROP(ExprProperty pExpr)
382
protected virtual
Expr
VisitFIELD(ExprField pExpr)
388
protected virtual
Expr
VisitLOCAL(ExprLocal pExpr)
394
protected virtual
Expr
VisitCONSTANT(ExprConstant pExpr)
400
protected virtual
Expr
VisitMULTIGET(ExprMultiGet pExpr)
406
protected virtual
Expr
VisitMULTI(ExprMulti pExpr)
412
protected virtual
Expr
VisitWRAP(ExprWrap pExpr)
418
protected virtual
Expr
VisitCONCAT(ExprConcat pExpr)
424
protected virtual
Expr
VisitARRINIT(ExprArrayInit pExpr)
430
protected virtual
Expr
VisitFIELDINFO(ExprFieldInfo pExpr)
436
protected virtual
Expr
VisitMETHODINFO(ExprMethodInfo pExpr)
442
protected virtual
Expr
VisitEQUALS(ExprBinOp pExpr)
448
protected virtual
Expr
VisitCOMPARE(ExprBinOp pExpr)
454
protected virtual
Expr
VisitEQ(ExprBinOp pExpr)
460
protected virtual
Expr
VisitNE(ExprBinOp pExpr)
466
protected virtual
Expr
VisitLE(ExprBinOp pExpr)
472
protected virtual
Expr
VisitGE(ExprBinOp pExpr)
478
protected virtual
Expr
VisitADD(ExprBinOp pExpr)
484
protected virtual
Expr
VisitSUB(ExprBinOp pExpr)
490
protected virtual
Expr
VisitDIV(ExprBinOp pExpr)
496
protected virtual
Expr
VisitBITAND(ExprBinOp pExpr)
502
protected virtual
Expr
VisitBITOR(ExprBinOp pExpr)
508
protected virtual
Expr
VisitLSHIFT(ExprBinOp pExpr)
514
protected virtual
Expr
VisitLOGAND(ExprBinOp pExpr)
520
protected virtual
Expr
VisitSEQUENCE(ExprBinOp pExpr)
526
protected virtual
Expr
VisitSAVE(ExprBinOp pExpr)
532
protected virtual
Expr
VisitINDIR(ExprBinOp pExpr)
538
protected virtual
Expr
VisitSTRINGEQ(ExprBinOp pExpr)
544
protected virtual
Expr
VisitDELEGATEEQ(ExprBinOp pExpr)
550
protected virtual
Expr
VisitDELEGATEADD(ExprBinOp pExpr)
556
protected virtual
Expr
VisitLT(ExprBinOp pExpr)
562
protected virtual
Expr
VisitMUL(ExprBinOp pExpr)
568
protected virtual
Expr
VisitBITXOR(ExprBinOp pExpr)
574
protected virtual
Expr
VisitRSHIFT(ExprBinOp pExpr)
580
protected virtual
Expr
VisitLOGOR(ExprBinOp pExpr)
586
protected virtual
Expr
VisitSTRINGNE(ExprBinOp pExpr)
592
protected virtual
Expr
VisitDELEGATENE(ExprBinOp pExpr)
598
protected virtual
Expr
VisitGT(ExprBinOp pExpr)
604
protected virtual
Expr
VisitMOD(ExprBinOp pExpr)
610
protected virtual
Expr
VisitSWAP(ExprBinOp pExpr)
616
protected virtual
Expr
VisitDELEGATESUB(ExprBinOp pExpr)
622
protected virtual
Expr
VisitTRUE(ExprUnaryOp pExpr)
628
protected virtual
Expr
VisitINC(ExprUnaryOp pExpr)
634
protected virtual
Expr
VisitLOGNOT(ExprUnaryOp pExpr)
640
protected virtual
Expr
VisitNEG(ExprUnaryOp pExpr)
646
protected virtual
Expr
VisitBITNOT(ExprUnaryOp pExpr)
652
protected virtual
Expr
VisitADDR(ExprUnaryOp pExpr)
658
protected virtual
Expr
VisitDECIMALNEG(ExprUnaryOp pExpr)
664
protected virtual
Expr
VisitDECIMALDEC(ExprUnaryOp pExpr)
670
protected virtual
Expr
VisitFALSE(ExprUnaryOp pExpr)
676
protected virtual
Expr
VisitDEC(ExprUnaryOp pExpr)
682
protected virtual
Expr
VisitUPLUS(ExprUnaryOp pExpr)
688
protected virtual
Expr
VisitDECIMALINC(ExprUnaryOp pExpr)
Microsoft\CSharp\RuntimeBinder\SymbolTable.cs (1)
95
Expr
callingObject,