// Bug #76551 using System; using System.Reflection; public abstract class Foo<T> where T : class { } public class Test { public Foo<K> Hoge<K> () where K : class { return null; } public static void Main () { MethodInfo mi = typeof (Test).GetMethod ("Hoge"); foreach (Type t in mi.GetGenericArguments ()) if ((t.GenericParameterAttributes & GenericParameterAttributes.ReferenceTypeConstraint) == 0) throw new Exception (); } }