// CS0121: The call is ambiguous between the following methods or properties: `A.Foo<int>(int, G<int>)' and `A.Foo<int>(int, object)' // Line: 18 class A { static int Foo<T> (T a, G<T> y = null) { return 1; } static int Foo<T> (T a, object y = null) { return 2; } public static int Main () { if (A.Foo<int> (99) != 2) return 1; return 0; } } class G<U> { }