10 [
return: NotNullIfNotNull(
"node")]
26 array[i] = expression;
28 else if (expression != nodes[i])
31 for (
int j = 0; j < i; j++)
35 array[i] = expression;
63 T val = elementVisitor(nodes[i]);
68 else if ((
object)val != (
object)nodes[i])
71 for (
int j = 0; j < i; j++)
85 [
return: NotNullIfNotNull(
"node")]
107 if (!(
Visit(nodes[i]) is T val))
115 else if (val != nodes[i])
118 for (
int j = 0; j < i; j++)
189 [
return: NotNullIfNotNull(
"node")]
204 if (expression == node.
Body &&
array ==
null)
265 return node.
Update(VisitAndConvert(node.
Variables,
"VisitRuntimeVariables"));
315 return node.BindingType
switch
341 if (before != after && before.
Method ==
null)
357 if (before != after && before.
Method ==
null)
static void RequiresNotNull(object value, string paramName)
static ParameterExpression[] VisitParameters(ExpressionVisitor visitor, IParameterProvider nodes, string callerName)
static Expression[] VisitBlockExpressions(ExpressionVisitor visitor, BlockExpression block)
static Expression[] VisitArguments(ExpressionVisitor visitor, IArgumentProvider nodes)
static bool AreEquivalent(Type t1, Type t2)
LambdaExpression? Conversion
BinaryExpression Update(Expression left, LambdaExpression? conversion, Expression right)
virtual BlockExpression Rewrite(ReadOnlyCollection< ParameterExpression > variables, Expression[] args)
ReadOnlyCollection< ParameterExpression > Variables
ParameterExpression? Variable
CatchBlock Update(ParameterExpression? variable, Expression? filter, Expression body)
ConditionalExpression Update(Expression test, Expression ifTrue, Expression ifFalse)
virtual DynamicExpression Rewrite(Expression[] args)
ReadOnlyCollection< Expression > Arguments
ElementInit Update(IEnumerable< Expression > arguments)
static Exception MustRewriteChildToSameType(object p0, object p1, object p2)
static Exception UnhandledBindingType(object p0)
static Exception MustRewriteWithoutMethod(object p0, object p1)
static Exception MustRewriteToSameNode(object p0, object p1, object p2)
virtual Expression VisitIndex(IndexExpression node)
static void ValidateChildType(Type before, Type after, string methodName)
virtual MemberAssignment VisitMemberAssignment(MemberAssignment node)
virtual ? Expression Visit(Expression? node)
virtual Expression VisitNew(NewExpression node)
static BinaryExpression ValidateBinary(BinaryExpression before, BinaryExpression after)
virtual Expression VisitBlock(BlockExpression node)
virtual Expression VisitParameter(ParameterExpression node)
Expression[] VisitArguments(IArgumentProvider nodes)
virtual Expression VisitListInit(ListInitExpression node)
virtual SwitchCase VisitSwitchCase(SwitchCase node)
virtual Expression VisitLambda< T >(Expression< T > node)
virtual Expression VisitMember(MemberExpression node)
virtual MemberListBinding VisitMemberListBinding(MemberListBinding node)
virtual Expression VisitLabel(LabelExpression node)
static SwitchExpression ValidateSwitch(SwitchExpression before, SwitchExpression after)
virtual Expression VisitUnary(UnaryExpression node)
virtual Expression VisitMethodCall(MethodCallExpression node)
virtual Expression VisitExtension(Expression node)
virtual Expression VisitDynamic(DynamicExpression node)
virtual Expression VisitTry(TryExpression node)
T? VisitAndConvert< T >(T? node, string? callerName)
virtual Expression VisitDebugInfo(DebugInfoExpression node)
virtual Expression VisitConditional(ConditionalExpression node)
static ReadOnlyCollection< T > Visit< T >(ReadOnlyCollection< T > nodes, Func< T, T > elementVisitor)
virtual Expression VisitInvocation(InvocationExpression node)
virtual Expression VisitGoto(GotoExpression node)
virtual ? LabelTarget VisitLabelTarget(LabelTarget? node)
virtual Expression VisitTypeBinary(TypeBinaryExpression node)
static UnaryExpression ValidateUnary(UnaryExpression before, UnaryExpression after)
virtual Expression VisitConstant(ConstantExpression node)
virtual Expression VisitMemberInit(MemberInitExpression node)
virtual Expression VisitRuntimeVariables(RuntimeVariablesExpression node)
ParameterExpression[] VisitParameters(IParameterProvider nodes, string callerName)
virtual MemberBinding VisitMemberBinding(MemberBinding node)
virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
ReadOnlyCollection< Expression > Visit(ReadOnlyCollection< Expression > nodes)
virtual CatchBlock VisitCatchBlock(CatchBlock node)
virtual Expression VisitLoop(LoopExpression node)
virtual Expression VisitNewArray(NewArrayExpression node)
virtual ElementInit VisitElementInit(ElementInit node)
virtual Expression VisitSwitch(SwitchExpression node)
virtual Expression VisitDefault(DefaultExpression node)
virtual Expression VisitBinary(BinaryExpression node)
virtual Expression Accept(ExpressionVisitor visitor)
virtual Expression VisitChildren(ExpressionVisitor visitor)
virtual Expression< TDelegate > Rewrite(Expression body, ParameterExpression[] parameters)
GotoExpression Update(LabelTarget target, Expression? value)
Expression Rewrite(Expression instance, Expression[] arguments)
virtual InvocationExpression Rewrite(Expression lambda, Expression[] arguments)
LabelExpression Update(LabelTarget target, Expression? defaultValue)
NewExpression NewExpression
ListInitExpression Update(NewExpression newExpression, IEnumerable< ElementInit > initializers)
ReadOnlyCollection< ElementInit > Initializers
LabelTarget? ContinueLabel
LoopExpression Update(LabelTarget? breakLabel, LabelTarget? continueLabel, Expression body)
MemberAssignment Update(Expression expression)
MemberBindingType BindingType
MemberExpression Update(Expression? expression)
ReadOnlyCollection< MemberBinding > Bindings
NewExpression NewExpression
MemberInitExpression Update(NewExpression newExpression, IEnumerable< MemberBinding > bindings)
MemberListBinding Update(IEnumerable< ElementInit > initializers)
ReadOnlyCollection< ElementInit > Initializers
MemberMemberBinding Update(IEnumerable< MemberBinding > bindings)
ReadOnlyCollection< MemberBinding > Bindings
virtual MethodCallExpression Rewrite(Expression instance, IReadOnlyList< Expression > args)
ReadOnlyCollection< Expression > Expressions
NewArrayExpression Update(IEnumerable< Expression > expressions)
NewExpression Update(IEnumerable< Expression >? arguments)
ReadOnlyCollection< ParameterExpression > Variables
RuntimeVariablesExpression Update(IEnumerable< ParameterExpression > variables)
SwitchCase Update(IEnumerable< Expression > testValues, Expression body)
ReadOnlyCollection< Expression > TestValues
ReadOnlyCollection< SwitchCase > Cases
SwitchExpression Update(Expression switchValue, IEnumerable< SwitchCase >? cases, Expression? defaultBody)
ReadOnlyCollection< CatchBlock > Handlers
TryExpression Update(Expression body, IEnumerable< CatchBlock >? handlers, Expression? @finally, Expression? fault)
TypeBinaryExpression Update(Expression expression)
UnaryExpression Update(Expression operand)