=== tests/cases/compiler/baseTypeWrappingInstantiationChain.ts === class C extends CBase { >C : C >T1 : T1 >CBase : CBase >T1 : T1 public works() { >works : () => void new CBaseBase>(this); >new CBaseBase>(this) : CBaseBase> >CBaseBase : typeof CBaseBase >Wrapper : Wrapper >T1 : T1 >this : C } public alsoWorks() { >alsoWorks : () => void new CBase(this); // Should not error, parameter is of type Parameter> >new CBase(this) : CBase >CBase : typeof CBase >T1 : T1 >this : C } public method(t: Wrapper) { } >method : (t: Wrapper) => void >t : Wrapper >Wrapper : Wrapper >T1 : T1 } class CBase extends CBaseBase> { >CBase : CBase >T2 : T2 >CBaseBase : CBaseBase >Wrapper : Wrapper >T2 : T2 } class CBaseBase { >CBaseBase : CBaseBase >T3 : T3 constructor(x: Parameter) { } >x : Parameter >Parameter : Parameter >T3 : T3 } class Parameter { >Parameter : Parameter >T4 : T4 method(t: T4) { } >method : (t: T4) => void >t : T4 >T4 : T4 } class Wrapper { >Wrapper : Wrapper >T5 : T5 property: T5; >property : T5 >T5 : T5 }