Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Assign()

static BinaryExpression System.Linq.Expressions.Expression< TDelegate >.Assign ( Expression< TDelegate > left,
Expression< TDelegate > right )
inlinestaticinherited

Definition at line 706 of file Expression.cs.

707 {
708 RequiresCanWrite(left, "left");
709 ExpressionUtils.RequiresCanRead(right, "right");
710 TypeUtils.ValidateType(left.Type, "left", allowByRef: true, allowPointer: true);
711 TypeUtils.ValidateType(right.Type, "right", allowByRef: true, allowPointer: true);
712 if (!TypeUtils.AreReferenceAssignable(left.Type, right.Type))
713 {
714 throw Error.ExpressionTypeDoesNotMatchAssignment(right.Type, left.Type);
715 }
716 return new AssignBinaryExpression(left, right);
717 }
static void RequiresCanRead(Expression expression, string paramName)
static void ValidateType(Type type, string paramName)
Definition TypeUtils.cs:695
static bool AreReferenceAssignable(Type dest, Type src)
Definition TypeUtils.cs:673
static void RequiresCanWrite(Expression expression, string paramName)

References System.Dynamic.Utils.TypeUtils.AreReferenceAssignable(), System.Linq.Expressions.Error.ExpressionTypeDoesNotMatchAssignment(), System.Dynamic.Utils.ExpressionUtils.RequiresCanRead(), System.Linq.Expressions.Expression< TDelegate >.RequiresCanWrite(), and System.Dynamic.Utils.TypeUtils.ValidateType().

Referenced by System.Dynamic.DynamicObject.MetaDynamic.BuildCallMethodWithResult< TBinder >(), System.Linq.Expressions.TypeBinaryExpression.ByValParameterTypeEqual(), System.Dynamic.DynamicObject.MetaDynamic.CallMethodNoResult< TBinder >(), System.Dynamic.DynamicObject.MetaDynamic.CallMethodReturnLast< TBinder >(), System.Runtime.CompilerServices.CallSite< T >.CreateCustomUpdateDelegate(), System.Dynamic.BindingRestrictions.InstanceRestriction.GetExpression(), System.Xml.Serialization.ReflectionXmlSerializationReaderHelper.GetSetMemberValueDelegateWithType< TObj, TParam >(), System.Linq.Expressions.BinaryExpression.ReduceIndex(), System.Linq.Expressions.UnaryExpression.ReduceIndex(), System.Linq.Expressions.MemberInitExpression.ReduceListInit(), System.Linq.Expressions.BinaryExpression.ReduceMember(), System.Linq.Expressions.UnaryExpression.ReduceMember(), System.Linq.Expressions.MemberInitExpression.ReduceMemberBinding(), System.Linq.Expressions.MemberInitExpression.ReduceMemberInit(), System.Linq.Expressions.TypeBinaryExpression.ReduceTypeEqual(), System.Linq.Expressions.BinaryExpression.ReduceUserdefinedLifted(), System.Linq.Expressions.BinaryExpression.ReduceVariable(), System.Linq.Expressions.UnaryExpression.ReduceVariable(), System.Dynamic.DynamicObject.MetaDynamic.ReferenceArgAssign(), and System.Linq.Expressions.Compiler.LambdaCompiler.TryEmitHashtableSwitch().