private int slot;
private string name;
- private ITypeRef type;
+ private BaseTypeRef type;
- public Local (int slot, ITypeRef type) : this (slot, null, type) {
+ public Local (int slot, BaseTypeRef type) : this (slot, null, type) {
}
- public Local (int slot, string name, ITypeRef type) {
+ public Local (int slot, string name, BaseTypeRef type) {
this.slot = slot;
this.name = name;
this.type = type;
get { return name; }
}
- public ITypeRef Type {
+ public BaseTypeRef Type {
get { return type; }
}
public PEAPI.Local GetPeapiLocal (CodeGen code_gen)
{
- int ec = code_gen.Report.ErrorCount;
- type.Resolve (code_gen);
-
- if (code_gen.Report.ErrorCount > ec)
+ int ec = Report.ErrorCount;
+ BaseGenericTypeRef gtr = type as BaseGenericTypeRef;
+ if (gtr == null)
+ type.Resolve (code_gen);
+ else
+ gtr.ResolveNoTypeSpec (code_gen);
+
+ if (Report.ErrorCount > ec)
return null;
return new PEAPI.Local (name, type.PeapiType);