[mcs] Emit correct token for inherited nested non-generic types from unbound types
authorMarek Safar <marek.safar@gmail.com>
Tue, 1 Jul 2014 07:45:02 +0000 (09:45 +0200)
committerMarek Safar <marek.safar@gmail.com>
Tue, 1 Jul 2014 07:45:02 +0000 (09:45 +0200)
mcs/mcs/expression.cs
mcs/tests/gtest-502.cs
mcs/tests/ver-il-net_4_5.xml

index dc99a228aad6de04378d695ddaa7f66628ee56a7..7489cdddf562695d2bffd88e44ac9bbe205ebd04 100644 (file)
@@ -9067,6 +9067,8 @@ namespace Mono.CSharp
                                } else {
                                        texpr = new GenericOpenTypeExpr (nested, loc);
                                }
+                       } else if (expr_resolved is GenericOpenTypeExpr) {
+                               texpr = new GenericOpenTypeExpr (nested, loc);
                        } else {
                                texpr = new TypeExpression (nested, loc);
                        }
index dce8e68b55abc216ae45f809d81b6edf8c75525d..6789ff87568c8b7856b25b169255f97c416122bb 100644 (file)
@@ -15,6 +15,10 @@ class C<T>
        static Type simple = typeof (Simple);
 }
 
+class D<U> : C<U>
+{
+}
+
 class A
 {
        public class N<T>
@@ -30,6 +34,9 @@ class M
                
                if (typeof (TestAlias).ToString () != "A+N`1[System.Double]")
                        return 1;
+
+               if (typeof (D<>.Simple).ToString () != "C`1+Simple[T]")
+                       return 2;
                
                return 0;
        }
index 9eec8ff192bbb13113c8c94039c10b45d50a5c9d..1cee9318daf5871156cfda21f95f8a051dc8b53b 100644 (file)
     </type>\r
     <type name="M">\r
       <method name="Int32 Main()" attrs="150">\r
-        <size>53</size>\r
+        <size>90</size>\r
       </method>\r
       <method name="Void .ctor()" attrs="6278">\r
         <size>7</size>\r
       </method>\r
     </type>\r
+    <type name="D`1[U]">\r
+      <method name="Void .ctor()" attrs="6278">\r
+        <size>7</size>\r
+      </method>\r
+    </type>\r
   </test>\r
   <test name="gtest-503.cs">\r
     <type name="TestAttribute">\r