// CS0452: The type `U' must be a reference type in order to use it as type parameter `UU' in the generic type or method `B.Test(UU)' // Line: 13 abstract class A { public abstract void Foo (U arg) where U : T; } class B : A { public override void Foo (U arg) { Test (arg); } void Test (UU a) where UU : class { } }