77 for (
int i = 0; i <
count; i++)
95 for (
int i = 0; i <
count; i++)
114 for (
int i = 0; i <
count; i++)
143 for (
int i = 0; i <
count; i++)
163 for (
int i = 0; i <
count; i++)
190 for (
int i = 0; i <
count; i++)
351 for (
int i = 0; i < num; i++)
363 list.Capacity = list.Count + 1;
656 return binaryExpression.Left.NodeType
switch
767 stack =
Stack.NonEmpty;
873 for (
int i = 0; i <
count; i++)
939 for (
int i = 0; i <
count; i++)
1178 for (
int i = 0; i <
max; i++)
1203 if (instance !=
null && instance.
Type.IsValueType)
1221 switch (
node.NodeType)
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
void Add(TKey key, TValue value)
static Exception Unreachable
static AssignBinaryExpression Make(Expression left, Expression right, bool byRef)
static BinaryExpression Create(ExpressionType nodeType, Expression left, Expression right, Type type, MethodInfo method, LambdaExpression conversion)
static BindingRewriter Create(MemberBinding binding, StackSpiller spiller, Stack stack)
void RequireNoValueProperty()
readonly MemberBinding _binding
Expression AsExpression(Expression target)
MemberBinding AsBinding()
readonly StackSpiller _spiller
BindingRewriter(MemberBinding binding, StackSpiller spiller)
Result Finish(Expression expression)
ChildRewriter(StackSpiller self, Stack stack, int count)
void MarkRefInstance(Expression expr)
void AddArguments(IArgumentProvider expressions)
readonly StackSpiller _self
void Add(ReadOnlyCollection< Expression > expressions)
void MarkRefArgs(MethodBase method, int startIndex)
List< Expression > _comma
readonly Expression[] _expressions
void Add(Expression expression)
static bool ShouldSaveToTemp(Expression expression)
readonly ChildRewriter[] _childRewriters
readonly ReadOnlyCollection< ElementInit > _inits
ListBindingRewriter(MemberListBinding binding, StackSpiller spiller, Stack stack)
override Expression AsExpression(Expression target)
override MemberBinding AsBinding()
override Expression AsExpression(Expression target)
override MemberBinding AsBinding()
MemberAssignmentRewriter(MemberAssignment binding, StackSpiller spiller, Stack stack)
readonly BindingRewriter[] _bindingRewriters
override Expression AsExpression(Expression target)
override MemberBinding AsBinding()
readonly ReadOnlyCollection< MemberBinding > _bindings
MemberMemberBindingRewriter(MemberMemberBinding binding, StackSpiller spiller, Stack stack)
void FreeTemp(ParameterExpression temp)
List< ParameterExpression > _freeTemps
ParameterExpression UseTemp(ParameterExpression temp)
ParameterExpression Temp(Type type)
Stack< ParameterExpression > _usedTemps
List< ParameterExpression > Temps
Result RewriteInvocationExpression(Expression expr, Stack stack)
Expression< T > Rewrite< T >(Expression< T > lambda)
Result RewriteConditionalExpression(Expression expr, Stack stack)
Result RewriteSwitchExpression(Expression expr, Stack stack)
Result RewriteMemberInitExpression(Expression expr, Stack stack)
Result RewriteTryExpression(Expression expr, Stack stack)
Result RewriteUnaryExpression(Expression expr, Stack stack)
Result RewriteLogicalBinaryExpression(Expression expr, Stack stack)
Result RewriteExpressionFreeTemps(Expression expression, Stack stack)
ParameterExpression MakeTemp(Type type)
Result RewriteMemberAssignment(BinaryExpression node, Stack stack)
Result RewriteMemberExpression(Expression expr, Stack stack)
static Expression MakeBlock(System.Collections.Generic.ArrayBuilder< Expression > expressions)
Result RewriteNewExpression(Expression expr, Stack stack)
readonly Stack _startingStack
Result RewriteTypeBinaryExpression(Expression expr, Stack stack)
static LambdaExpression AnalyzeLambda(LambdaExpression lambda)
Result RewriteBlockExpression(Expression expr, Stack stack)
static Expression MakeBlock(IReadOnlyList< Expression > expressions)
static void RequireNoRefArgs(MethodBase method)
ParameterExpression ToTemp(Expression expression, out Expression save, bool byRef)
Result RewriteExtensionExpression(Expression expr, Stack stack)
Result RewriteVariableAssignment(BinaryExpression node, Stack stack)
Result RewriteAssignBinaryExpression(Expression expr, Stack stack)
StackSpiller(Stack stack)
Result RewriteLoopExpression(Expression expr, Stack stack)
Result RewriteMethodCallExpression(Expression expr, Stack stack)
Result RewriteDynamicExpression(Expression expr)
static void RequireNotRefInstance(Expression instance)
Result RewriteIndexExpression(Expression expr, Stack stack)
Result RewriteThrowUnaryExpression(Expression expr, Stack stack)
Result RewriteExpression(Expression node, Stack stack)
static Result RewriteLambdaExpression(Expression expr)
Result RewriteIndexAssignment(BinaryExpression node, Stack stack)
Result RewriteLabelExpression(Expression expr, Stack stack)
RewriteAction _lambdaRewrite
Result RewriteNewArrayExpression(Expression expr, Stack stack)
static bool IsRefInstance([NotNullWhen(true)] Expression instance)
static T[] Clone< T >(ReadOnlyCollection< T > original, int max)
readonly StackGuard _guard
Result RewriteListInitExpression(Expression expr, Stack stack)
Result RewriteExtensionAssignment(BinaryExpression node, Stack stack)
Result RewriteReducibleExpression(Expression expr, Stack stack)
Result RewriteBinaryExpression(Expression expr, Stack stack)
Result RewriteGotoExpression(Expression expr, Stack stack)
static Expression MakeBlock(params Expression[] expressions)
static ConditionalExpression Make(Expression test, Expression ifTrue, Expression ifFalse, Type type)
static Exception UnhandledBinding()
static Exception TryNotSupportedForValueTypeInstances(object p0)
static Exception TryNotSupportedForMethodsWithRefArgs(object p0)
static Exception InvalidLvalue(ExpressionType p0)
static Exception CannotAutoInitializeValueTypeMemberThroughProperty(object p0)
static BlockExpression Block(Expression arg0, Expression arg1)
static MethodInfo GetInvokeMethod(Expression expression)
static CatchBlock MakeCatchBlock(Type type, ParameterExpression? variable, Expression body, Expression? filter)
virtual Expression Reduce()
static GotoExpression MakeGoto(GotoExpressionKind kind, LabelTarget target, Expression? value, Type type)
Expression ReduceExtensions()
static PropertyExpression Make(Expression expression, PropertyInfo property)
static NewArrayExpression Make(ExpressionType nodeType, Type type, ReadOnlyCollection< Expression > expressions)
static ParameterExpression Make(Type type, string name, bool isByRef)
bool TryEnterOnCurrentStack()
static readonly DefaultExpression Empty
virtual Type ParameterType
readonly RewriteAction Action
Result(RewriteAction action, Expression node)