internal LocalBuilder Get(IR.WriteTemporaryExpression temporary) { LocalBuilder local; _unnamedLocals.TryGetValue(temporary, out local); return(local); }
private void Release(IR.WriteTemporaryExpression temporary) { var local = Get(temporary); Debug.Assert(local != null, "temporary {0} does not have a local variable assigned to it", temporary); _unnamedLocals.Remove(temporary); Release(local); }
internal LocalBuilder Declare(Type type, IR.WriteTemporaryExpression temporary) { Debug.Assert(Get(temporary) == null, "temporary {0} alread has a local variable assigned to it", temporary); var local = Declare(type); _unnamedLocals.Add(temporary, local); return(local); }
//############################################################################################################################### // Unnamed local handling internal LocalBuilder Declare(mdr.ValueTypes type, IR.WriteTemporaryExpression temporary) { return(Declare(Types.TypeOf(type), temporary)); }