* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / ilasm / codegen / Local.cs
index f74170f5f66a377d2b832f09e2d50550355fef07..2951fa0bfa98480885aafef8bffe67c542cfaf9b 100644 (file)
@@ -17,13 +17,13 @@ namespace Mono.ILASM {
 
                 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;
@@ -38,16 +38,20 @@ namespace Mono.ILASM {
                         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);