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; }
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; }
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; }
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)); } }
public GenericParamRef(PEAPI.GenParam gen_param, string full_name) : this(gen_param, full_name, null) { }