2008-01-04 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Fri, 4 Jan 2008 17:48:46 +0000 (17:48 -0000)
committerMarek Safar <marek.safar@gmail.com>
Fri, 4 Jan 2008 17:48:46 +0000 (17:48 -0000)
A test for bug #351481

svn path=/trunk/mcs/; revision=92249

mcs/tests/gtest-359.cs [new file with mode: 0644]

diff --git a/mcs/tests/gtest-359.cs b/mcs/tests/gtest-359.cs
new file mode 100644 (file)
index 0000000..746ed8f
--- /dev/null
@@ -0,0 +1,59 @@
+class BaseGeneric<T>
+{
+       public class InnerDerived
+       {
+               public InnerDerived (T t)
+               {
+               }
+       }
+       
+       public class GenericInnerDerived<U>
+       {
+               public GenericInnerDerived (T t, U u)
+               {
+               }
+       }
+}
+
+class BaseConcrete : BaseGeneric<string>
+{
+}
+
+class Concrete_A : BaseGeneric<int>
+{
+}
+
+class Concrete_B : BaseConcrete
+{
+       InnerDerived foo1;
+}
+
+class BaseGeneric_2<T, U>
+{
+       public class InnerDerived
+       {
+               public InnerDerived (T t, U u)
+               {
+               }
+       }
+}
+
+class BaseGeneric_1<T> : BaseGeneric_2<T, string>
+{
+}
+
+class Concrete_2 : BaseGeneric_1<bool>
+{
+}
+
+
+class Program
+{
+    static void Main ()
+    {
+               new Concrete_B.InnerDerived ("abc");
+               new Concrete_A.InnerDerived (11);
+               new Concrete_A.GenericInnerDerived<int> (1, 2);
+               new Concrete_2.InnerDerived (false, "bb");
+    }
+}