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

◆ EnsureAvailableForClosure()

LocalVariable System.Linq.Expressions.Interpreter.LightCompiler.EnsureAvailableForClosure ( ParameterExpression expr)
inlineprivate

Definition at line 192 of file LightCompiler.cs.

193 {
195 {
196 if (!local.InClosure && !local.IsBoxed)
197 {
199 }
200 return local;
201 }
202 if (_parent != null)
203 {
205 return _locals.AddClosureVariable(expr);
206 }
207 throw new InvalidOperationException("unbound variable: " + expr);
208 }
LocalVariable EnsureAvailableForClosure(ParameterExpression expr)
void Box(ParameterExpression variable, InstructionList instructions)
bool TryGetLocalOrClosure(ParameterExpression var, [NotNullWhen(true)] out LocalVariable local)
LocalVariable AddClosureVariable(ParameterExpression variable)

References System.Linq.Expressions.Interpreter.LightCompiler._instructions, System.Linq.Expressions.Interpreter.LightCompiler._locals, System.Linq.Expressions.Interpreter.LightCompiler._parent, System.Linq.Expressions.Interpreter.LocalVariables.AddClosureVariable(), System.Linq.Expressions.Interpreter.LocalVariables.Box(), System.Linq.Expressions.Interpreter.LightCompiler.EnsureAvailableForClosure(), and System.Linq.Expressions.Interpreter.LocalVariables.TryGetLocalOrClosure().

Referenced by System.Linq.Expressions.Interpreter.LightCompiler.CompileLambdaExpression(), System.Linq.Expressions.Interpreter.LightCompiler.CompileQuoteUnaryExpression(), System.Linq.Expressions.Interpreter.LightCompiler.CompileRuntimeVariablesExpression(), System.Linq.Expressions.Interpreter.LightCompiler.EnsureAvailableForClosure(), and System.Linq.Expressions.Interpreter.LightCompiler.ResolveLocal().