8 types derived from Expr
Microsoft.CSharp (8)
Microsoft\CSharp\RuntimeBinder\ExpressionTreeCallRewriter.cs (1)
19
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)
34
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpConvertBinder.cs (1)
33
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpGetIndexBinder.cs (2)
24
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
26
Expr
indexerArguments = runtimeBinder.CreateArgumentListEXPR(arguments, locals, 1, arguments.Length);
Microsoft\CSharp\RuntimeBinder\CSharpGetMemberBinder.cs (1)
24
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpInvokeBinder.cs (1)
23
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpInvokeConstructorBinder.cs (1)
18
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpInvokeMemberBinder.cs (1)
24
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpIsEventBinder.cs (1)
20
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpSetIndexBinder.cs (1)
25
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpSetMemberBinder.cs (1)
23
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\CSharpUnaryOperationBinder.cs (1)
35
public
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals)
Microsoft\CSharp\RuntimeBinder\ExpressionTreeCallRewriter.cs (9)
72
protected override
Expr
VisitSAVE(ExprBinOp pExpr)
89
protected override
Expr
VisitCALL(ExprCall pExpr)
216
protected override
Expr
VisitWRAP(ExprWrap pExpr) => new ExpressionExpr(GetExpression(pExpr));
222
private
Expr
GenerateLambda(ExprCall pExpr)
389
Expr
instance = list.OptionalElement;
390
Expr
nextNode = list.OptionalNextListNode;
695
private Expression GetExpression(
Expr
pExpr)
894
Expr
list = arrinit.OptionalArguments;
897
Expr
p;
Microsoft\CSharp\RuntimeBinder\ICSharpBinder.cs (1)
24
Expr
DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals);
Microsoft\CSharp\RuntimeBinder\RuntimeBinder.cs (53)
117
Expr
pResult = payload.DispatchPayload(this, arguments, locals);
154
Expr
callingObject = CreateCallingObjectForCall(callPayload, arguments, locals);
189
private static Expression CreateExpressionTreeFromResult(Expression[] parameters, Scope pScope,
Expr
pResult)
371
private static ExprBoundLambda GenerateBoundLambda(Scope pScope,
Expr
call)
384
private
Expr
CreateLocal(Type type, bool isOut, LocalVariableSymbol local)
403
Expr
result = _binder.tryConvert(exprLocal, ctype) ?? _binder.mustCast(exprLocal, ctype);
411
internal
Expr
CreateArgumentListEXPR(
417
Expr
args = null;
418
Expr
last = null;
425
Expr
arg = CreateArgumentEXPR(argument, locals[i]);
445
private
Expr
CreateArgumentEXPR(ArgumentObject argument, LocalVariableSymbol local)
447
Expr
arg;
518
Expr
callingObject,
618
private
Expr
CreateProperty(
620
Expr
callingObject,
638
private ExprWithArgs CreateIndexer(SymWithType swt,
Expr
callingObject,
Expr
arguments, BindingFlag bindFlags)
650
private
Expr
CreateArray(
Expr
callingObject,
Expr
optionalIndexerArguments)
658
private
Expr
CreateField(
660
Expr
callingObject)
668
Expr
field = _binder.BindToField(callingObject is ExprClass ? null : callingObject, fwt, 0);
682
private
Expr
CreateCallingObjectForCall(
689
Expr
callingObject;
723
Expr
callingObject,
839
private void ReorderArgumentsForNamedAndOptional(
Expr
callingObject, ExprWithArgs result)
841
Expr
arguments = result.OptionalArguments;
877
Expr
pList = null;
884
Expr
pArg = argInfo.prgexpr[i];
897
private
Expr
StripNamedArgument(
Expr
pArg)
911
private
Expr
StripNamedArguments(
Expr
pArg)
940
internal
Expr
BindUnaryOperation(
948
Expr
arg1 = CreateArgumentEXPR(arguments[0], locals[0]);
955
Expr
result = _binder.tryConvert(arg1, SymbolLoader.GetPredefindType(PredefinedType.PT_BOOL));
980
internal
Expr
BindBinaryOperation(
988
Expr
arg1 = CreateArgumentEXPR(arguments[0], locals[0]);
989
Expr
arg2 = CreateArgumentEXPR(arguments[1], locals[1]);
1103
internal
Expr
BindProperty(
1107
Expr
optionalIndexerArguments)
1110
Expr
callingObject = argument.Info.IsStaticType ?
1187
internal
Expr
BindImplicitConversion(
1198
Expr
argument = CreateArgumentEXPR(arguments[0], locals[0]);
1226
internal
Expr
BindExplicitConversion(ArgumentObject[] arguments, Type returnType, LocalVariableSymbol[] locals)
1233
Expr
argument = CreateArgumentEXPR(arguments[0], locals[0]);
1246
internal
Expr
BindAssignment(
1257
Expr
indexerArguments;
1274
Expr
lhs = BindProperty(payload, arguments[0], locals[0], indexerArguments);
1277
Expr
rhs = CreateArgumentEXPR(arguments[indexOfLast], locals[indexOfLast]);
1286
internal
Expr
BindIsEvent(
1294
Expr
callingObject = CreateLocal(arguments[0].Type, false, locals[0]);
Microsoft\CSharp\RuntimeBinder\Semantics\Binding\Better.cs (1)
315
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,
346
private bool canConvert(
Expr
expr, CType dest) => canConvert(expr, dest, 0);
349
private bool canConvert(
Expr
expr, CType dest, CONVERTTYPE flags) =>
355
private
Expr
mustConvertCore(
Expr
expr, CType destExpr) => mustConvertCore(expr, destExpr, 0);
358
private
Expr
mustConvertCore(
Expr
expr, CType dest, CONVERTTYPE flags)
362
if (BindImplicitConversion(expr, expr.Type, dest, out
Expr
exprResult, flags))
406
public
Expr
tryConvert(
Expr
expr, CType dest)
412
private
Expr
tryConvert(
Expr
expr, CType dest, CONVERTTYPE flags)
414
if (BindImplicitConversion(expr, expr.Type, dest, out
Expr
exprResult, flags))
426
public
Expr
mustConvert(
Expr
expr, CType dest) => mustConvert(expr, dest, (CONVERTTYPE)0);
429
private
Expr
mustConvert(
Expr
expr, CType dest, CONVERTTYPE flags) => mustConvertCore(expr, dest, flags);
439
private
Expr
mustCastCore(
Expr
expr, CType dest, CONVERTTYPE flags)
445
if (BindExplicitConversion(expr, expr.Type, dest, out
Expr
exprResult, flags))
454
Expr
exprConst = expr.GetConst();
514
private static RuntimeBinderException CantConvert(
Expr
expr, CType dest)
522
public
Expr
mustCast(
Expr
expr, CType dest) => mustCast(expr, dest, 0);
525
public
Expr
mustCast(
Expr
expr, CType dest, CONVERTTYPE flags) => mustCastCore(expr, dest, flags);
528
private
Expr
MustCastInUncheckedContext(
Expr
expr, CType dest, CONVERTTYPE flags) =>
536
private bool BindImplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, CONVERTTYPE flags)
543
private bool BindImplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
552
private bool BindImplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, bool needsExprDest, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
561
private bool BindExplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, bool needsExprDest, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
570
private bool BindExplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, out
Expr
ppDestinationExpr, CONVERTTYPE flags)
579
private bool BindExplicitConversion(
Expr
pSourceExpr, CType pSourceType, CType destinationType, CONVERTTYPE flags)
626
private bool bindUserDefinedConversion(
Expr
exprSrc, CType typeSrc, CType typeDst, bool needExprDest, out
Expr
pexprDst, bool fImplicitOnly)
987
Expr
exprDst;
988
Expr
pTransformedArgument = exprSrc;
1001
Expr
nonLiftedArg = mustCast(exprSrc, typeFrom);
1003
Expr
nonLiftedResult = BindUDConversionCore(nonLiftedArg, typeFrom, typeTo, typeDst, mwiBest);
1013
Expr
pConversionArgument;
1041
Expr
pConversionCall = BindUDConversionCore(nonLiftedArg, typeFrom, typeTo, typeDst, mwiBest);
1062
private static void MarkAsIntermediateConversion(
Expr
pExpr)
1093
private
Expr
BindUDConversionCore(
Expr
pFrom, CType pTypeFrom, CType pTypeTo, CType pTypeDestination, MethWithInst mwiBest)
1099
private
Expr
BindUDConversionCore(
Expr
pFrom, CType pTypeFrom, CType pTypeTo, CType pTypeDestination, MethWithInst mwiBest, out
Expr
ppTransformedArgument)
1101
Expr
pTransformedArgument = mustCastCore(pFrom, pTypeFrom, CONVERTTYPE.NOUDC);
1105
Expr
pCast = mustCastCore(pCall, pTypeDestination, CONVERTTYPE.NOUDC);
1115
private ConstCastResult bindConstantCast(
Expr
exprSrc, CType typeDest, bool needExprDest, out
Expr
pexprDest, bool explicitConversion)
1130
Expr
expr = BindDecimalConstCast(typeDest, exprSrc.Type, constSrc);
1375
private static
Expr
BindDecimalConstCast(CType destType, CType srcType, ExprConstant src)
1485
private bool CanExplicitConversionBeBoundInUncheckedContext(
Expr
exprSrc, CType typeSrc, CType typeDest, CONVERTTYPE flags)
Microsoft\CSharp\RuntimeBinder\Semantics\ExplicitConversion.cs (6)
19
private readonly
Expr
_exprSrc;
38
private
Expr
_exprDest;
46
public ExplicitConversion(ExpressionBinder binder,
Expr
exprSrc, CType typeSrc, CType typeDest, bool needsExprDest, CONVERTTYPE flags)
56
public
Expr
ExprDest { get { return _exprDest; } }
198
Expr
valueSrc = _exprSrc;
506
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);
281
private
Expr
GenerateAssignmentConversion(
Expr
op1,
Expr
op2, bool allowExplicit) =>
288
public
Expr
BindAssignment(
Expr
op1,
Expr
op2, bool allowExplicit)
303
internal
Expr
BindArrayIndexCore(
Expr
pOp1,
Expr
pOp2)
316
Expr
transformedIndices = pOp2.Map(
319
Expr
pTemp = binder.MustConvertWithSuppressedMessage(x, pDestType);
332
private
Expr
MustConvertWithSuppressedMessage(
Expr
x, CType pDestType)
337
private static ExprCast ExprFactoryCreateCastWithSuppressedMessage(EXPRFLAG flags, CType type,
Expr
argument)
343
private void bindSimpleCast(
Expr
exprSrc, CType typeDest, out
Expr
pexprDest) =>
347
private void bindSimpleCast(
Expr
exprSrc, CType typeDest, out
Expr
pexprDest, EXPRFLAG exprFlags)
353
Expr
exprConst = exprSrc.GetConst();
390
private ExprCall BindToMethod(MethWithInst mwi,
Expr
pArguments, ExprMemberGroup pMemGroup, MemLookFlags flags)
395
Expr
pObject = pMemGroup.OptionalObject;
435
internal
Expr
BindToField(
Expr
pOptionalObject, FieldWithType fwt, BindingFlag bindFlags)
461
internal ExprProperty BindToProperty(
Expr
pObject, PropWithType pwt, BindingFlag bindFlags,
Expr
args, ExprMemberGroup pMemGroup)
471
Expr
pObjectThrough = pObject;
537
internal
Expr
bindUDUnop(ExpressionKind ek,
Expr
arg)
652
private ExprCall BindLiftedUDUnop(
Expr
arg, CType typeArg, MethPropWithInst mpwi)
669
Expr
nonLiftedArg = mustCast(arg, typeRaw);
681
private ExprCall BindUDUnopCall(
Expr
arg, CType typeArg, MethPropWithInst mpwi)
696
private GroupToArgsBinderResult BindMethodGroupToArgumentsCore(BindingFlag bindFlags, ExprMemberGroup grp,
Expr
args, int carg, NamedArgumentsKind namedArgumentsKind)
714
internal ExprWithArgs BindMethodGroupToArguments(BindingFlag bindFlags, ExprMemberGroup grp,
Expr
args)
746
private static NamedArgumentsKind FindNamedArgumentsType(
Expr
args)
748
Expr
list = args;
751
Expr
arg;
794
private static RuntimeBinderException BadOperatorTypesError(
Expr
pOperand1,
Expr
pOperand2)
853
private void CheckLvalue(
Expr
expr, CheckLvalueKind kind)
945
private
Expr
AdjustMemberObject(SymWithType swt,
Expr
pObject)
1010
private static bool IsMatchingStatic(SymWithType swt,
Expr
pObject)
1048
private static void AssertObjectIsLvalue(
Expr
pObject)
1065
Expr
argsPtr = call.OptionalArguments;
1069
Expr
newArgs;
1075
private void AdjustCallArgumentsForParams(CType callingObjectType, CType type, MethodOrPropertySymbol mp, TypeArray pTypeArgs,
Expr
argsPtr, out
Expr
newArgs)
1080
Expr
newArgsTail = null;
1103
Expr
indir = it.Current();
1121
Expr
argument = indir;
1122
Expr
rval;
1252
Expr
newList = null;
1253
Expr
newListTail = null;
1258
Expr
expr = it.Current();
1287
internal CType ChooseArrayIndexType(
Expr
args)
1293
foreach (
Expr
arg in args.ToEnumerable())
1311
internal static void FillInArgInfoFromArgList(ArgInfos argInfo,
Expr
args)
1314
argInfo.prgexpr = new List<
Expr
>();
1317
for (
Expr
list = args; list != null; iarg++)
1319
Expr
arg;
1623
private static ExprWrap WrapShortLivedExpression(
Expr
expr) => ExprFactory.CreateWrap(expr);
1625
private static ExprAssignment GenerateOptimizedAssignment(
Expr
op1,
Expr
op2) => ExprFactory.CreateAssignment(op1, op2);
1627
internal static int CountArguments(
Expr
args)
1630
for (
Expr
list = args; list != null; carg++)
1632
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) =>
28
public static ExprMemberGroup CreateMemGroup(
Expr
obj, MethPropWithInst method)
37
public static ExprUserDefinedConversion CreateUserDefinedConversion(
Expr
arg,
Expr
call, MethWithInst method) =>
41
public static ExprCast CreateCast(CType type,
Expr
argument) => CreateCast(0, type, argument);
44
public static ExprCast CreateCast(EXPRFLAG flags, CType type,
Expr
argument) => new ExprCast(flags, type, argument);
50
public static ExprBoundLambda CreateAnonymousMethod(AggregateType delegateType, Scope argumentScope,
Expr
expression) =>
76
public static ExprUserLogicalOp CreateUserLogOp(CType type,
Expr
trueFalseCall, ExprCall operatorCall) =>
80
public static ExprConcat CreateConcat(
Expr
first,
Expr
second) => new ExprConcat(first, second);
91
public static ExprMulti CreateMulti(EXPRFLAG flags, CType type,
Expr
left,
Expr
op) =>
102
public static
Expr
CreateZeroInit(CType type)
149
public static ExprArrayIndex CreateArrayIndex(CType type,
Expr
array,
Expr
index) =>
152
public static ExprBinOp CreateBinop(ExpressionKind exprKind, CType type,
Expr
left,
Expr
right) =>
155
public static ExprUnaryOp CreateUnaryOp(ExpressionKind exprKind, CType type,
Expr
operand) =>
158
public static ExprOperator CreateOperator(ExpressionKind exprKind, CType type,
Expr
arg1,
Expr
arg2)
167
public static ExprBinOp CreateUserDefinedBinop(ExpressionKind exprKind, CType type,
Expr
left,
Expr
right,
Expr
call, MethPropWithInst userMethod) =>
171
public static ExprUnaryOp CreateUserDefinedUnaryOperator(ExpressionKind exprKind, CType type,
Expr
operand, ExprCall call, MethPropWithInst userMethod) =>
174
public static ExprUnaryOp CreateNeg(EXPRFLAG flags,
Expr
operand)
185
public static ExprBinOp CreateSequence(
Expr
first,
Expr
second) =>
191
public static ExprAssignment CreateAssignment(
Expr
left,
Expr
right) => new ExprAssignment(left, right);
195
public static ExprNamedArgumentSpecification CreateNamedArgumentSpecification(Name name,
Expr
value) =>
198
public static ExprWrap CreateWrap(
Expr
expression) => new ExprWrap(expression);
210
public static void AppendItemToList(
Expr
newItem, ref
Expr
first, ref
Expr
last)
238
public static ExprList CreateList(
Expr
op1,
Expr
op2) => new ExprList(op1, op2);
240
public static ExprList CreateList(
Expr
op1,
Expr
op2,
Expr
op3) => CreateList(op1, CreateList(op2, op3));
242
public static ExprList CreateList(
Expr
op1,
Expr
op2,
Expr
op3,
Expr
op4) =>
Microsoft\CSharp\RuntimeBinder\Semantics\GroupToArgsBinder.cs (15)
404
Expr
[] pExprArguments = new
Expr
[numParameters];
409
Expr
paramArrayArgument = null;
444
Expr
pNewArg = FindArgumentWithName(pArguments, name);
487
private static
Expr
GenerateOptionalArgument(MethodOrPropertySymbol methprop, CType type, int index)
492
Expr
optionalArgument;
577
private static MethodOrPropertySymbol FindMostDerivedMethod(MethodOrPropertySymbol pMethProp,
Expr
pObject) =>
688
Expr
[] pArguments = new
Expr
[_pCurrentParameters.Count - i];
718
private static
Expr
FindArgumentWithName(ArgInfos pArguments, Name pName)
720
List<
Expr
> prgexpr = pArguments.prgexpr;
723
Expr
expr = prgexpr[i];
932
Expr
pArgument = _pArguments.prgexpr[ivar];
1018
Expr
pArgument = _pArguments.prgexpr[iParam];
1037
Expr
pArgumentNew = GenerateOptionalArgument(pMethod, _pCurrentParameters[iParam], iParam);
Microsoft\CSharp\RuntimeBinder\Semantics\ImplicitConversion.cs (6)
18
public ImplicitConversion(ExpressionBinder binder,
Expr
exprSrc, CType typeSrc, CType typeDest, bool needsExprDest, CONVERTTYPE flags)
28
public
Expr
ExprDest { get { return _exprDest; } }
29
private
Expr
_exprDest;
31
private readonly
Expr
_exprSrc;
321
Expr
exprTmp = _exprSrc;
373
Expr
arg1 = _binder.mustCast(_exprSrc, typeSrcBase);
Microsoft\CSharp\RuntimeBinder\Semantics\MemberLookup.cs (1)
521
public bool Lookup(CType typeSrc,
Expr
obj, ParentSymbol symWhere, Name name, int arity, MemLookFlags flags)
Microsoft\CSharp\RuntimeBinder\Semantics\MethodIterator.cs (1)
106
List<
Expr
> argExpressions = args.prgexpr;
Microsoft\CSharp\RuntimeBinder\Semantics\MethodTypeInferrer.cs (1)
269
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)
39
private static
Expr
BindNubValue(
Expr
exprSrc)
46
Expr
args = call.OptionalArguments;
63
private static ExprCall BindNubNew(
Expr
exprSrc)
Microsoft\CSharp\RuntimeBinder\Semantics\Operators.cs (125)
146
Expr
expr;
454
Expr
arg1 = info.arg1;
455
Expr
arg2 = info.arg2;
486
public
Expr
BindStandardBinop(ExpressionKind ek,
Expr
arg1,
Expr
arg2)
561
private
Expr
BindStandardBinopCore(BinOpArgInfo info, BinOpFullSig bofs, ExpressionKind ek, EXPRFLAG flags)
570
Expr
expr1 = info.arg1;
571
Expr
expr2 = info.arg2;
588
Expr
expr1 = info.arg1;
589
Expr
expr2 = info.arg2;
607
Expr
arg1 = info.arg1;
608
Expr
arg2 = info.arg2;
614
Expr
nonLiftedResult = null;
616
LiftArgument(arg1, bofs.Type1(), bofs.ConvertFirst(), out
Expr
pArgument1, out
Expr
nonLiftedArg1);
617
LiftArgument(arg2, bofs.Type2(), bofs.ConvertSecond(), out
Expr
pArgument2, out
Expr
nonLiftedArg2);
657
private void LiftArgument(
Expr
pArgument, CType pParameterType, bool bConvertBeforeLift,
658
out
Expr
ppLiftedArgument, out
Expr
ppNonLiftedArgument)
660
Expr
pLiftedArgument = mustConvert(pArgument, pParameterType);
666
Expr
pNonLiftedArgument = pArgument;
1154
public
Expr
BindStandardUnaryOperator(OperatorKind op,
Expr
pArgument)
1185
UnaryOperatorSignatureFindResult eResultOfSignatureFind = PopulateSignatureList(pArgument, unaryOpKind, unaryOpMask, ek, flags, pSignatures, out
Expr
pResult);
1286
Expr
arg =
1296
private UnaryOperatorSignatureFindResult PopulateSignatureList(
Expr
pArgument, UnaOpKind unaryOpKind, UnaOpMask unaryOpMask, ExpressionKind exprKind, EXPRFLAG flags, List<UnaOpFullSig> pSignatures, out
Expr
ppResult)
1350
Expr
exprVal = bindUDUnop((ExpressionKind)(exprKind - ExpressionKind.Add + ExpressionKind.Inc), exprGet);
1372
Expr
expr = bindUDUnop(exprKind, pArgument);
1388
Expr
pArgument,
1513
private ExprOperator BindLiftedStandardUnop(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1522
LiftArgument(arg, uofs.GetType(), uofs.Convert(), out
Expr
pArgument, out
Expr
nonLiftedArg);
1525
Expr
nonLiftedResult = uofs.pfn(this, ek, flags, nonLiftedArg);
1565
private static ExprOperator BindIntBinOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1575
private static ExprOperator BindIntUnaOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
1585
private static ExprOperator BindRealBinOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG _,
Expr
arg1,
Expr
arg2)
1595
private static ExprOperator BindRealUnaOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG _,
Expr
arg)
1606
private
Expr
BindIncOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1630
private
Expr
BindIncOpCore(ExpressionKind ek, EXPRFLAG flags,
Expr
exprVal, CType type)
1688
private
Expr
LScalar(ExpressionKind ek, EXPRFLAG flags,
Expr
exprVal, CType type, ConstVal cv, CType typeTmp)
1702
private ExprMulti BindNonliftedIncOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1709
Expr
exprVal = exprGet;
1721
Expr
op = mustCast(exprVal, arg.Type, CONVERTTYPE.NOUDC);
1729
private ExprMulti BindLiftedIncOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg, UnaOpFullSig uofs)
1738
Expr
exprVal = exprGet;
1739
Expr
nonLiftedArg = exprVal;
1745
Expr
nonLiftedResult = BindIncOpCore(ek, flags, nonLiftedArg, type.UnderlyingType);
1763
private static ExprBinOp BindDecBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1805
private static ExprUnaryOp BindDecUnaOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
1825
private static
Expr
BindStrBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1837
private static ExprBinOp BindShiftOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1855
private static ExprBinOp BindBoolBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1866
private ExprOperator BindBoolBitwiseOp(ExpressionKind ek, EXPRFLAG flags,
Expr
expr1,
Expr
expr2)
1878
Expr
nonLiftedArg1 = StripNullableConstructor(expr1);
1879
Expr
nonLiftedArg2 = StripNullableConstructor(expr2);
1880
Expr
nonLiftedResult = null;
1903
private static
Expr
BindLiftedBoolBitwiseOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
expr1,
Expr
expr2) => null;
1910
private static
Expr
BindBoolUnaOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
1921
Expr
argConst = arg.GetConst();
1935
private static ExprBinOp BindStrCmpOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1953
private static ExprBinOp BindRefCmpOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
1969
private static
Expr
BindDelBinOp(ExpressionBinder _, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2010
private static
Expr
BindEnumBinOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2027
Expr
exprRes = binder.BindIntOp(ek, flags, arg1, arg2, ptOp);
2039
private
Expr
BindLiftedEnumArithmeticBinOp(ExpressionKind ek, EXPRFLAG flags,
Expr
arg1,
Expr
arg2)
2086
private static
Expr
BindEnumUnaOp(ExpressionBinder binder, ExpressionKind ek, EXPRFLAG flags,
Expr
arg)
2103
Expr
exprRes = binder.BindIntOp(ek, flags, arg, null, ptOp);
2187
private ExprOperator BindIntOp(ExpressionKind kind, EXPRFLAG flags,
Expr
op1,
Expr
op2, PredefinedType ptOp)
2212
private ExprOperator BindIntegerNeg(EXPRFLAG flags,
Expr
op, PredefinedType ptOp)
2272
private static ExprOperator BindFloatOp(ExpressionKind kind,
Expr
op1,
Expr
op2)
2289
private static ExprConcat BindStringConcat(
Expr
op1,
Expr
op2)
2315
private static RuntimeBinderException AmbiguousOperatorError(
Expr
op1,
Expr
op2)
2330
private
Expr
BindUserBoolOp(ExpressionKind kind, ExprCall pCall)
2349
Expr
pExpr = list.OptionalElement;
2357
Expr
pCallT = bindUDUnop(ExpressionKind.True, pExprWrap);
2358
Expr
pCallF = bindUDUnop(ExpressionKind.False, pExprWrap);
2451
ExpressionKind ek, MethodSymbol method, AggregateType ats,
Expr
arg1,
Expr
arg2, bool fDontLift)
2490
Expr
arg1,
Expr
arg2, bool fDontLift)
2510
Expr
arg1,
Expr
arg2, bool fDontLift, AggregateType atsStop)
2524
private ExprCall BindUDBinop(ExpressionKind ek,
Expr
arg1,
Expr
arg2, bool fDontLift, out MethPropWithInst ppmpwi)
2583
private ExprCall BindUDBinopCall(
Expr
arg1,
Expr
arg2, TypeArray Params, CType typeRet, MethPropWithInst mpwi)
2602
private ExprCall BindLiftedUDBinop(ExpressionKind ek,
Expr
arg1,
Expr
arg2, TypeArray Params, MethPropWithInst mpwi)
2604
Expr
exprVal1 = arg1;
2605
Expr
exprVal2 = arg2;
2632
Expr
nonLiftedArg1 = mustCast(exprVal1, paramsRaw[0]);
2633
Expr
nonLiftedArg2 = mustCast(exprVal2, paramsRaw[1]);
2722
private static ExprBinOp CreateBinopForPredefMethodCall(ExpressionKind ek, PREDEFMETH predefMeth, CType RetType,
Expr
arg1,
Expr
arg2)
2737
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)
16
protected override
Expr
Dispatch(
Expr
expr)
20
Expr
result = base.Dispatch(expr);
31
protected override
Expr
VisitASSIGNMENT(ExprAssignment assignment)
37
Expr
lhs;
51
Expr
instance = Visit(prop.MemberGroup.OptionalObject);
52
Expr
propInfo = ExprFactory.CreatePropertyInfo(prop.PropWithTypeSlot.Prop(), prop.PropWithTypeSlot.Ats);
53
Expr
arguments = GenerateParamsArray(
65
Expr
rhs = Visit(assignment.RHS);
70
protected override
Expr
VisitMULTIGET(ExprMultiGet pExpr)
76
protected override
Expr
VisitMULTI(ExprMulti pExpr)
78
Expr
rhs = Visit(pExpr.Operator);
79
Expr
lhs = Visit(pExpr.Left);
96
Expr
createParameters = CreateWraps(anonmeth);
99
Expr
body = Visit(anonmeth.Expression);
101
Expr
parameters = GenerateParamsArray(null, PredefinedType.PT_PARAMETEREXPRESSION);
102
Expr
args = ExprFactory.CreateList(body, parameters);
111
protected override
Expr
VisitCONSTANT(ExprConstant expr)
118
protected override
Expr
VisitLOCAL(ExprLocal local)
126
protected override
Expr
VisitFIELD(ExprField expr)
129
Expr
pObject;
143
protected override
Expr
VisitUSERDEFINEDCONVERSION(ExprUserDefinedConversion expr)
150
protected override
Expr
VisitCAST(ExprCast pExpr)
154
Expr
pArgument = pExpr.Argument;
174
Expr
result = GenerateConversion(pArgument, pExpr.Type, pExpr.isChecked());
184
protected override
Expr
VisitCONCAT(ExprConcat expr)
196
Expr
p1 = Visit(expr.FirstArgument);
197
Expr
p2 = Visit(expr.SecondArgument);
199
Expr
methodInfo = ExprFactory.CreateMethodInfo(method, SymbolLoader.GetPredefindType(PredefinedType.PT_STRING), null);
204
protected override
Expr
VisitBINOP(ExprBinOp expr)
218
protected override
Expr
VisitUNARYOP(ExprUnaryOp pExpr)
232
protected override
Expr
VisitARRAYINDEX(ExprArrayIndex pExpr)
235
Expr
arr = Visit(pExpr.Array);
236
Expr
args = GenerateIndexList(pExpr.Index);
239
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
246
protected override
Expr
VisitCALL(ExprCall expr)
273
Expr
pObject;
301
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.MethWithInst);
302
Expr
args = GenerateArgsList(expr.OptionalArguments);
303
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
311
protected override
Expr
VisitPROP(ExprProperty expr)
314
Expr
pObject;
323
Expr
propInfo = ExprFactory.CreatePropertyInfo(expr.PropWithTypeSlot.Prop(), expr.PropWithTypeSlot.GetType());
327
Expr
args = GenerateArgsList(expr.OptionalArguments);
328
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
335
protected override
Expr
VisitARRINIT(ExprArrayInit expr)
339
Expr
pTypeOf = CreateTypeOf(((ArrayType)expr.Type).ElementType);
340
Expr
args = GenerateArgsList(expr.OptionalArguments);
341
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
346
protected override
Expr
VisitZEROINIT(ExprZeroInit expr)
353
protected override
Expr
VisitTYPEOF(ExprTypeOf expr)
360
private
Expr
GenerateDelegateInvoke(ExprCall expr)
365
Expr
oldObject = memberGroup.OptionalObject;
367
Expr
pObject = Visit(oldObject);
368
Expr
args = GenerateArgsList(expr.OptionalArguments);
369
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
374
private
Expr
GenerateBuiltInBinaryOperator(ExprBinOp expr)
403
Expr
origL = expr.OptionalLeftChild;
404
Expr
origR = expr.OptionalRightChild;
410
Expr
newL = Visit(origL);
411
Expr
newR = Visit(origR);
464
Expr
call = GenerateCall(pdm, newL, newR);
475
private
Expr
GenerateBuiltInUnaryOperator(ExprUnaryOp expr)
491
Expr
origOp = expr.Child;
499
private
Expr
GenerateUserDefinedBinaryOperator(ExprBinOp expr)
540
Expr
p1 = expr.OptionalLeftChild;
541
Expr
p2 = expr.OptionalRightChild;
542
Expr
udcall = expr.OptionalUserDefinedCall;
566
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.UserDefinedCallMethod);
567
Expr
call = GenerateCall(pdm, p1, p2, methodInfo);
572
Expr
pTypeOf = CreateTypeOf(expr.Type);
579
private
Expr
GenerateUserDefinedUnaryOperator(ExprUnaryOp expr)
583
Expr
arg = expr.Child;
618
Expr
op = Visit(arg);
619
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.UserDefinedCallMethod);
630
private
Expr
GenerateUserDefinedComparisonOperator(ExprBinOp expr)
648
Expr
p1 = expr.OptionalLeftChild;
649
Expr
p2 = expr.OptionalRightChild;
662
Expr
lift = ExprFactory.CreateBoolConstant(false); // We never lift to null in C#.
663
Expr
methodInfo = ExprFactory.CreateMethodInfo(expr.UserDefinedCallMethod);
668
private
Expr
GenerateConversion(
Expr
arg, CType CType, bool bChecked) =>
672
private static
Expr
GenerateConversionWithSource(
Expr
pTarget, CType pType, bool bChecked)
675
Expr
pTypeOf = CreateTypeOf(pType);
680
private
Expr
GenerateValueAccessConversion(
Expr
pArgument)
684
Expr
pStrippedTypeExpr = CreateTypeOf(pStrippedTypeOfArgument);
689
private
Expr
GenerateUserDefinedConversion(
Expr
arg, CType type, MethWithInst method)
691
Expr
target = Visit(arg);
696
private static
Expr
GenerateUserDefinedConversion(
Expr
arg, CType CType,
Expr
target, MethWithInst method)
710
Expr
typeofNubEnum = CreateTypeOf(nullableType);
723
Expr
typeofInner = CreateTypeOf(fDontLiftReturnType ? CType : pMethodReturnType);
724
Expr
methodInfo = ExprFactory.CreateMethodInfo(method);
726
Expr
callUserDefinedConversion = GenerateCall(pdmInner, target, typeofInner, methodInfo);
734
Expr
typeofOuter = CreateTypeOf(CType);
739
private
Expr
GenerateUserDefinedConversion(ExprUserDefinedConversion pExpr,
Expr
pArgument)
741
Expr
pCastCall = pExpr.UserDefinedCall;
742
Expr
pCastArgument = pExpr.Argument;
743
Expr
pConversionSource;
754
Expr
pUDConversion = call?.PConversions;
759
Expr
pUDConversionArgument = convCall.OptionalArguments;
788
private static
Expr
GenerateParameter(string name, CType CType)
803
private static
Expr
CreateWraps(ExprBoundLambda anonmeth)
805
Expr
sequence = null;
814
Expr
create = GenerateParameter(local.name.Text, local.GetType());
816
Expr
save = ExprFactory.CreateSave(local.wrap);
831
private
Expr
GenerateConstructor(ExprCall expr)
835
Expr
constructorInfo = ExprFactory.CreateMethodInfo(expr.MethWithInst);
836
Expr
args = GenerateArgsList(expr.OptionalArguments);
837
Expr
Params = GenerateParamsArray(args, PredefinedType.PT_EXPRESSION);
842
private
Expr
GenerateArgsList(
Expr
oldArgs)
844
Expr
newArgs = null;
845
Expr
newArgsTail = newArgs;
848
Expr
oldArg = it.Current();
855
private
Expr
GenerateIndexList(
Expr
oldIndices)
859
Expr
newIndices = null;
860
Expr
newIndicesTail = newIndices;
863
Expr
newIndex = it.Current();
869
Expr
rewrittenIndex = Visit(newIndex);
876
private static
Expr
GenerateConstant(
Expr
expr)
901
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1)
917
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1,
Expr
arg2)
923
Expr
args = ExprFactory.CreateList(arg1, arg2);
932
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1,
Expr
arg2,
Expr
arg3)
938
Expr
args = ExprFactory.CreateList(arg1, arg2, arg3);
947
private static ExprCall GenerateCall(PREDEFMETH pdm,
Expr
arg1,
Expr
arg2,
Expr
arg3,
Expr
arg4)
953
Expr
args = ExprFactory.CreateList(arg1, arg2, arg3, arg4);
962
private static ExprArrayInit GenerateParamsArray(
Expr
args, PredefinedType pt)
972
private static void FixLiftedUserDefinedBinaryOperators(ExprBinOp expr, ref
Expr
pp1, ref
Expr
pp2)
982
Expr
orig1 = expr.OptionalLeftChild;
983
Expr
orig2 = expr.OptionalRightChild;
985
Expr
new1 = pp1;
986
Expr
new2 = pp2;
1020
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)
93
Expr
callingObject,