// Bug #79984 using System; class X { public static int Main () { new Derived ().Method (); return 0; } } class Foo { public int X; } abstract class Base { public abstract void Method () where R : Foo, new (); } class Derived : Base { public override void Method () { Method2 (); // S s = new S (); // Console.WriteLine (s.X); } public void Method2 () where T : Foo, new () { T t = new T (); Console.WriteLine (t.X); } }