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

◆ CompileMemberAssignment() [2/2]

void System.Linq.Expressions.Interpreter.LightCompiler.CompileMemberAssignment ( bool asVoid,
MemberInfo refMember,
Expression value,
bool forBinding )
inlineprivate

Definition at line 440 of file LightCompiler.cs.

441 {
442 if (refMember is PropertyInfo propertyInfo)
443 {
444 MethodInfo setMethod = propertyInfo.GetSetMethod(nonPublic: true);
445 if (forBinding && setMethod.IsStatic)
446 {
447 throw Error.InvalidProgram();
448 }
451 if (!asVoid)
452 {
453 LocalDefinition definition = _locals.DefineLocal(Expression.Parameter(value.Type), count);
458 }
459 else
460 {
462 }
463 return;
464 }
466 if (fieldInfo.IsLiteral)
467 {
468 throw Error.NotSupported();
469 }
470 if (forBinding && fieldInfo.IsStatic)
471 {
473 }
476 if (!asVoid)
477 {
478 LocalDefinition definition2 = _locals.DefineLocal(Expression.Parameter(value.Type), count2);
483 }
484 else
485 {
487 }
488 }
void UndefineLocal(LocalDefinition definition, int end)
LocalDefinition DefineLocal(ParameterExpression variable, int start)

References System.Linq.Expressions.Interpreter.LightCompiler._instructions, System.Linq.Expressions.Interpreter.LightCompiler._locals, System.Linq.Expressions.Interpreter.InstructionList.Count, System.Linq.count, System.Linq.Expressions.Interpreter.LocalVariables.DefineLocal(), System.Linq.Expressions.Interpreter.InstructionList.EmitAssignLocal(), System.Linq.Expressions.Interpreter.InstructionList.EmitCall(), System.Linq.Expressions.Interpreter.InstructionList.EmitLoadLocal(), System.Linq.Expressions.Interpreter.InstructionList.EmitStoreField(), System.Linq.Expressions.Interpreter.LightCompiler.EmitThisForMethodCall(), System.Linq.Expressions.Error.InvalidProgram(), System.Linq.Expressions.Error.NotSupported(), System.Linq.Expressions.Expression< TDelegate >.Parameter(), System.Linq.Expressions.Interpreter.LocalVariables.UndefineLocal(), System.Linq.Expressions.Interpreter.InstructionList.UnEmit(), and System.value.