using System; using TestAlias = A.N<double>; class C<T> { public class Foo<U> { } public class Simple { } static Type foo = typeof (Foo<>); static Type simple = typeof (Simple); } class D<U> : C<U> { } class A { public class N<T> { } } class M { public static int Main () { new C<int> (); if (typeof (TestAlias).ToString () != "A+N`1[System.Double]") return 1; if (typeof (D<>.Simple).ToString () != "C`1+Simple[T]") return 2; return 0; } }