=== tests/cases/compiler/genericClassesInModule2.ts === export class A{ >A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) >T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) constructor( public callback: (self: A) => void) { >callback : Symbol(callback, Decl(genericClassesInModule2.ts, 1, 16)) >self : Symbol(self, Decl(genericClassesInModule2.ts, 1, 35)) >A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) >T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) var child = new B(this); >child : Symbol(child, Decl(genericClassesInModule2.ts, 2, 11)) >B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) >this : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) } AAA( callback: (self: A) => void) { >AAA : Symbol(AAA, Decl(genericClassesInModule2.ts, 3, 5)) >callback : Symbol(callback, Decl(genericClassesInModule2.ts, 4, 8)) >self : Symbol(self, Decl(genericClassesInModule2.ts, 4, 20)) >A : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) >T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 0, 15)) var child = new B(this); >child : Symbol(child, Decl(genericClassesInModule2.ts, 5, 11)) >B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) >this : Symbol(A, Decl(genericClassesInModule2.ts, 0, 0)) } } export interface C{ >C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) >T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) child: B; >child : Symbol(child, Decl(genericClassesInModule2.ts, 9, 23)) >B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) >T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) (self: C): void; >self : Symbol(self, Decl(genericClassesInModule2.ts, 11, 5)) >C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) >T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) new(callback: (self: C) => void) >callback : Symbol(callback, Decl(genericClassesInModule2.ts, 12, 8)) >self : Symbol(self, Decl(genericClassesInModule2.ts, 12, 19)) >C : Symbol(C, Decl(genericClassesInModule2.ts, 7, 1)) >T1 : Symbol(T1, Decl(genericClassesInModule2.ts, 9, 19)) } export class B { >B : Symbol(B, Decl(genericClassesInModule2.ts, 13, 1)) >T2 : Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) constructor(public parent: T2) { } >parent : Symbol(parent, Decl(genericClassesInModule2.ts, 16, 16)) >T2 : Symbol(T2, Decl(genericClassesInModule2.ts, 15, 15)) }