// // Check whether we're correctly handling `this'. // // public class Foo<T,U> { public void Hello (Foo<T,U> foo) { } public virtual void Test () { // // Again, this must be encoded as a TypeSpec (Foo<!0,!1>) // instead of a TypeDef. Hello (this); } } public class Bar<T> : Foo<T,long> { public void Test (Foo<T,long> foo) { Hello (foo); } } public class Baz<T> : Foo<T,string> { public override void Test () { Hello (this); } } class X { public static void Main () { } }