void M5 <T>(C16 <T, int> c) where T : class { // Viable callables: {C16,C17}.M1() c.M2(() => default(T)); }
void M4 <T>(C16 <T, int> c) where T : struct { // Viable callable: C16.M2() [also reports C17.M2(); false positive] c.M2(() => default(T)); }