==== tests/cases/compiler/genericSpecializations2.ts (2 errors) ==== class IFoo { foo(x: T): T { // no error on implementors because IFoo's T is different from foo's T return null; } } class IntFooBad implements IFoo { foo(x: string): string { return null; } ~~~~~~ !!! Type parameter name cannot be 'string' } class StringFoo2 implements IFoo { foo(x: string): string { return null; } ~~~~~~ !!! Type parameter name cannot be 'string' } class StringFoo3 implements IFoo { foo(x: T): T { return null; } }