public static Expression ReduceDynamicAssignment(DynamicCSharpArgument left, Func <Expression, Expression> functionalOp, CSharpBinderFlags flags, bool prefix = true) { var lhs = MakeWriteable(left.Expression); return(lhs switch { GetMemberDynamicCSharpExpression dynamicMember => ReduceDynamicMember(dynamicMember, functionalOp, flags, prefix), GetIndexDynamicCSharpExpression dynamicIndex => ReduceDynamicIndex(dynamicIndex, functionalOp, flags, prefix), _ => Helpers.ReduceAssignment(lhs, functionalOp, prefix), });
public static Expression ReduceDynamicAssignment(DynamicCSharpArgument left, Func <Expression, Expression> functionalOp, CSharpBinderFlags flags, bool prefix = true) { var lhs = MakeWriteable(left.Expression); switch (lhs) { case GetMemberDynamicCSharpExpression dynamicMember: return(ReduceDynamicMember(dynamicMember, functionalOp, flags, prefix)); case GetIndexDynamicCSharpExpression dynamicIndex: return(ReduceDynamicIndex(dynamicIndex, functionalOp, flags, prefix)); } return(Helpers.ReduceAssignment(lhs, functionalOp, prefix)); }
public static Expression ReduceDynamicAssignment(DynamicCSharpArgument left, Func <Expression, Expression> functionalOp, CSharpBinderFlags flags, bool prefix = true) { var lhs = MakeWriteable(left.Expression); var dynamicMember = lhs as GetMemberDynamicCSharpExpression; if (dynamicMember != null) { return(ReduceDynamicMember(dynamicMember, functionalOp, flags, prefix)); } var dynamicIndex = lhs as GetIndexDynamicCSharpExpression; if (dynamicIndex != null) { return(ReduceDynamicIndex(dynamicIndex, functionalOp, flags, prefix)); } return(Helpers.ReduceAssignment(lhs, functionalOp, prefix)); }