=== tests/cases/conformance/expressions/superCalls/superCalls.ts === class Base { >Base : Symbol(Base, Decl(superCalls.ts, 0, 0)) x = 43; >x : Symbol(x, Decl(superCalls.ts, 0, 12)) constructor(n: string) { >n : Symbol(n, Decl(superCalls.ts, 2, 16)) } } function v(): void { } >v : Symbol(v, Decl(superCalls.ts, 5, 1)) class Derived extends Base { >Derived : Symbol(Derived, Decl(superCalls.ts, 7, 22)) >Base : Symbol(Base, Decl(superCalls.ts, 0, 0)) //super call in class constructor of derived type constructor(public q: number) { >q : Symbol(q, Decl(superCalls.ts, 11, 16)) super(''); >super : Symbol(Base, Decl(superCalls.ts, 0, 0)) //type of super call expression is void var p = super(''); >p : Symbol(p, Decl(superCalls.ts, 14, 11), Decl(superCalls.ts, 15, 11)) >super : Symbol(Base, Decl(superCalls.ts, 0, 0)) var p = v(); >p : Symbol(p, Decl(superCalls.ts, 14, 11), Decl(superCalls.ts, 15, 11)) >v : Symbol(v, Decl(superCalls.ts, 5, 1)) } } class OtherBase { >OtherBase : Symbol(OtherBase, Decl(superCalls.ts, 17, 1)) } class OtherDerived extends OtherBase { >OtherDerived : Symbol(OtherDerived, Decl(superCalls.ts, 21, 1)) >OtherBase : Symbol(OtherBase, Decl(superCalls.ts, 17, 1)) constructor() { var p = ''; >p : Symbol(p, Decl(superCalls.ts, 25, 11)) super(); >super : Symbol(OtherBase, Decl(superCalls.ts, 17, 1)) } }