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

◆ EmitExpressionAsType()

void System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAsType ( Expression node,
Type type,
CompilationFlags flags )
inlineprivate

Definition at line 1161 of file LambdaCompiler.cs.

1162 {
1163 if (type == typeof(void))
1164 {
1165 EmitExpressionAsVoid(node, flags);
1166 }
1167 else if (!TypeUtils.AreEquivalent(node.Type, type))
1168 {
1171 }
1172 else
1173 {
1175 }
1176 }
static bool AreEquivalent(Type t1, Type t2)
Definition TypeUtils.cs:664
static CompilationFlags UpdateEmitExpressionStartFlag(CompilationFlags flags, CompilationFlags newValue)
virtual void Emit(OpCode opcode)
static readonly OpCode Castclass
Definition OpCodes.cs:235

References System.Linq.Expressions.Compiler.LambdaCompiler._ilg, System.Dynamic.Utils.TypeUtils.AreEquivalent(), System.Reflection.Emit.OpCodes.Castclass, System.Reflection.Emit.ILGenerator.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitExpressionAsVoid(), System.type, and System.Linq.Expressions.Compiler.LambdaCompiler.UpdateEmitExpressionStartFlag().

Referenced by System.Linq.Expressions.Compiler.LambdaCompiler.Emit(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitConditionalExpression(), System.Linq.Expressions.Compiler.LambdaCompiler.EmitSwitchCases(), and System.Linq.Expressions.Compiler.LambdaCompiler.EmitSwitchExpression().