=== tests/cases/conformance/expressions/contextualTyping/superCallParameterContextualTyping3.ts === interface ContextualType { >ContextualType : ContextualType >T : T method(parameter: T): void; >method : (parameter: T) => void >parameter : T >T : T } class CBase { >CBase : CBase >T : T constructor(param: ContextualType) { >param : ContextualType >ContextualType : ContextualType >T : T } foo(param: ContextualType) { >foo : (param: ContextualType) => void >param : ContextualType >ContextualType : ContextualType >T : T } } class C extends CBase { >C : C >CBase : CBase constructor() { // Should be okay. // 'p' should have type 'string'. super({ >super({ method(p) { p.length; } }) : void >super : typeof CBase >{ method(p) { p.length; } } : { method(p: string): void; } method(p) { >method : (p: string) => void >p : string p.length; >p.length : number >p : string >length : number } }); // Should be okay. // 'p' should have type 'string'. super.foo({ >super.foo({ method(p) { p.length; } }) : void >super.foo : (param: ContextualType) => void >super : CBase >foo : (param: ContextualType) => void >{ method(p) { p.length; } } : { method(p: string): void; } method(p) { >method : (p: string) => void >p : string p.length; >p.length : number >p : string >length : number } }); } }