internal Slot GetOrMakeCompilerConstant(CompilerConstant value) { Slot ret; if (_constants.TryGetValue(value, out ret)) { return(ret); } string name = "c$" + value.Name + "$" + _constants.Count; FieldBuilder fb = _myType.DefineField(name, value.Type, FieldAttributes.Static | FieldAttributes.InitOnly); ret = new StaticFieldSlot(fb); value.EmitCreation(TypeInitializer); _initGen.EmitFieldSet(fb); _constants[value] = ret; return(ret); }
internal Slot GetOrMakeCompilerConstant(CompilerConstant value) { Slot ret; if (_constants.TryGetValue(value, out ret)) { return ret; } string name = "c$" + value.Name + "$" + _constants.Count; FieldBuilder fb = _myType.DefineField(name, value.Type, FieldAttributes.Static | FieldAttributes.InitOnly); ret = new StaticFieldSlot(fb); value.EmitCreation(TypeInitializer); _initGen.EmitFieldSet(fb); _constants[value] = ret; return ret; }