=== tests/cases/compiler/mismatchedGenericArguments1.ts ===
interface IFoo<T> {
>IFoo : Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 0, 15))

   foo<T>(x: T): T;
>foo : Symbol(foo, Decl(mismatchedGenericArguments1.ts, 0, 19))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7))
>x : Symbol(x, Decl(mismatchedGenericArguments1.ts, 1, 10))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 1, 7))
}
class C<T> implements IFoo<T> {
>C : Symbol(C, Decl(mismatchedGenericArguments1.ts, 2, 1))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 3, 8))
>IFoo : Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 3, 8))

   foo(x: string): number {
>foo : Symbol(foo, Decl(mismatchedGenericArguments1.ts, 3, 31))
>x : Symbol(x, Decl(mismatchedGenericArguments1.ts, 4, 7))

     return null;
   }
}

class C2<T> implements IFoo<T> {
>C2 : Symbol(C2, Decl(mismatchedGenericArguments1.ts, 7, 1))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 9, 9))
>IFoo : Symbol(IFoo, Decl(mismatchedGenericArguments1.ts, 0, 0))
>T : Symbol(T, Decl(mismatchedGenericArguments1.ts, 9, 9))

   foo<U>(x: string): number {
>foo : Symbol(foo, Decl(mismatchedGenericArguments1.ts, 9, 32))
>U : Symbol(U, Decl(mismatchedGenericArguments1.ts, 10, 7))
>x : Symbol(x, Decl(mismatchedGenericArguments1.ts, 10, 10))

     return null;
   }
}

