Esempio n. 1
0
        public override void Resolve(CodeGen code_gen)
        {
            ResolveNoTypeSpec(code_gen);
            if (is_added)
            {
                return;
            }

            string key = param.Type.ToString() + param.Index.ToString();

            PEAPI.GenParam val = (PEAPI.GenParam)param_table [key];
            if (val == null)
            {
                code_gen.PEFile.AddGenericParam(param);
                param_table [key] = param;
            }
            else
            {
                /* Set this instance's "type" to the cached
                 * PEAPI.GenParam, after applying modifications */
                type = Modify(code_gen, val);
            }

            is_added = true;
        }
Esempio n. 2
0
 public GenericParamRef(PEAPI.GenParam gen_param, string full_name, ArrayList conv_list)
     : base(full_name, false, conv_list, "")
 {
     this.type  = gen_param;
     this.param = gen_param;
     is_added   = false;
 }
Esempio n. 3
0
 public GenericParamRef (PEAPI.GenParam gen_param, string full_name, ArrayList conv_list)
         : base (full_name, false, conv_list, "")
 {
         this.type = gen_param;
         this.param = gen_param;
         is_added = false;
 }
Esempio n. 4
0
        public void ResolveGenParam(PEAPI.GenParam gpar)
        {
            if (gpar.Index != -1)
            {
                return;
            }

            if (gpar.Type == PEAPI.GenParamType.MVar)
            {
                gpar.Index = GetGenericParamNum(gpar.Name);
            }
            else
            {
                gpar.Index = type_def.GetGenericParamNum(gpar.Name);
            }

            if (gpar.Index < 0)
            {
                Report.Error(String.Format("Invalid {0}type parameter '{1}'",
                                           (gpar.Type == PEAPI.GenParamType.MVar ? "method " : ""),
                                           gpar.Name));
            }
        }
Esempio n. 5
0
 public GenericParamRef(PEAPI.GenParam gen_param, string full_name)
     : this(gen_param, full_name, null)
 {
 }