68 Compiler.FreeLocal(
_local);
94 Compiler.IL.EmitLoadArgAddress(
_argument);
130 Compiler.FreeLocal(
local);
150 Compiler.IL.EmitPrimitive(
_index);
188 Compiler.FreeLocal(
local);
396 lc.IL.EmitPrimitive(num++);
485 lc.EmitClosureArgument();
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
bool ContainsKey(TKey key)
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static Exception Unreachable
static MethodInfo RuntimeOps_CreateRuntimeVariables
static MethodInfo RuntimeOps_CreateRuntimeVariables_ObjectArray_Int64Array
static FieldInfo Closure_Locals
override void EmitStore()
override void EmitAddress()
ArgumentStorage(LambdaCompiler compiler, ParameterExpression p)
override void EmitAddress()
override void EmitStore()
readonly FieldInfo _boxValueField
ElementBoxStorage(Storage array, int index, ParameterExpression variable)
override void EmitStore(Storage value)
override void EmitAddress()
override void EmitStore(Storage value)
readonly FieldInfo _boxValueField
override void EmitStore()
override void FreeLocal()
readonly LocalBuilder _boxLocal
LocalBoxStorage(LambdaCompiler compiler, ParameterExpression variable)
LocalStorage(LambdaCompiler compiler, ParameterExpression variable)
readonly LocalBuilder _local
override void FreeLocal()
override void EmitStore()
override void EmitAddress()
readonly LambdaCompiler Compiler
Storage(LambdaCompiler compiler, ParameterExpression variable)
readonly ParameterExpression Variable
virtual void EmitStore(Storage value)
IEnumerable< ParameterExpression > GetVariables()
void SetParent(LambdaCompiler lc, CompilerScope parent)
HoistedLocals NearestHoistedLocals
void EmitSet(ParameterExpression variable)
void EmitGet(ParameterExpression variable)
static IReadOnlyList< ParameterExpression > GetVariables(object scope)
CompilerScope Enter(LambdaCompiler lc, CompilerScope parent)
Storage ResolveVariable(ParameterExpression variable)
CompilerScope(object node, bool isMethod)
void EmitNewHoistedLocals(LambdaCompiler lc)
void EmitAddressOf(ParameterExpression variable)
void AllocateLocals(LambdaCompiler lc)
HoistedLocals _hoistedLocals
void CacheBoxToLocal(LambdaCompiler lc, ParameterExpression v)
void EmitVariableAccess(LambdaCompiler lc, ReadOnlyCollection< ParameterExpression > vars)
void EmitClosureToVariable(LambdaCompiler lc, HoistedLocals locals)
void EmitClosureAccess(LambdaCompiler lc, HoistedLocals locals)
IEnumerable< ParameterExpression > GetVariablesIncludingMerged()
readonly Dictionary< ParameterExpression, VariableStorageKind > Definitions
Dictionary< ParameterExpression, int > ReferenceCount
HoistedLocals _closureHoistedLocals
void EmitCachedVariables()
HashSet< BlockExpression > MergedScopes
bool ShouldCache(ParameterExpression v, int refCount)
Storage ResolveVariable(ParameterExpression variable, HoistedLocals hoistedLocals)
void AddLocal(LambdaCompiler gen, ParameterExpression variable)
bool ShouldCache(ParameterExpression v)
readonly Dictionary< ParameterExpression, Storage > _locals
readonly ParameterExpression SelfVariable
readonly ReadOnlyCollection< ParameterExpression > Variables
ParameterExpression ParentVariable
static Exception UndefinedVariable(object p0, object p1, object p2)
static ParameterExpression Variable(Type type)
static readonly OpCode Castclass
static readonly OpCode Ldloca
static readonly OpCode Stloc
static readonly OpCode Newobj
static readonly OpCode Ldflda
static readonly OpCode Stelem_Ref
static readonly OpCode Ldfld
static readonly OpCode Ldelem_Ref
static readonly OpCode Call
static readonly OpCode Ldloc
static readonly OpCode Dup
static readonly OpCode Stfld
static readonly OpCode Newarr
static readonly Type[] EmptyTypes