=== tests/cases/compiler/privacyCheckOnTypeParameterReferenceInConstructorParameter.ts === export class A{ >A : A, Symbol(A, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 0)) >T1 : T1, Symbol(T1, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 15)) constructor(callback: (self: A) => void) { >callback : (self: A) => void, Symbol(callback, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 1, 16)) >self : A, Symbol(self, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 1, 27)) >A : A, Symbol(A, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 0)) >T1 : T1, Symbol(T1, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 15)) var child = new B(this); >child : B>, Symbol(child, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 2, 11)) >new B(this) : B> >B : typeof B, Symbol(B, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 4, 1)) >this : A, Symbol(A, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 0, 0)) } } export class B { >B : B, Symbol(B, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 4, 1)) >T2 : T2, Symbol(T2, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 6, 15)) constructor(parent: T2) { } >parent : T2, Symbol(parent, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 7, 16)) >T2 : T2, Symbol(T2, Decl(privacyCheckOnTypeParameterReferenceInConstructorParameter.ts, 6, 15)) }