=== tests/cases/compiler/mutuallyRecursiveGenericBaseTypes1.ts === interface A { >A : A >T : T foo(): B; // instead of B does see this >foo : { (): B; (): void; } >B : B >T : T foo(): void; // instead of B does see this >foo : { (): B; (): void; } foo2(): B; >foo2 : () => B >B : B } interface B extends A { >B : B >T : T >A : A >T : T bar(): void; >bar : () => void } var b: B; >b : B >B : B b.foo(); // should not error >b.foo() : B >b.foo : { (): B; (): void; } >b : B >foo : { (): B; (): void; }