Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }