=== tests/cases/compiler/contextualTypeAppliedToVarArgs.ts === function delegate(instance: any, method: (...args: any[]) => any, data?: any): (...args: any[]) => any { >delegate : (instance: any, method: (...args: any[]) => any, data?: any) => (...args: any[]) => any, Symbol(delegate, Decl(contextualTypeAppliedToVarArgs.ts, 0, 0)) >instance : any, Symbol(instance, Decl(contextualTypeAppliedToVarArgs.ts, 0, 18)) >method : (...args: any[]) => any, Symbol(method, Decl(contextualTypeAppliedToVarArgs.ts, 0, 32)) >args : any[], Symbol(args, Decl(contextualTypeAppliedToVarArgs.ts, 0, 42)) >data : any, Symbol(data, Decl(contextualTypeAppliedToVarArgs.ts, 0, 65)) >args : any[], Symbol(args, Decl(contextualTypeAppliedToVarArgs.ts, 0, 80)) return function () { }; >function () { } : () => void } class Foo{ >Foo : Foo, Symbol(Foo, Decl(contextualTypeAppliedToVarArgs.ts, 2, 1)) Bar() { >Bar : () => void, Symbol(Bar, Decl(contextualTypeAppliedToVarArgs.ts, 4, 10)) delegate(this, function (source, args2) >delegate(this, function (source, args2) { var a = source.node; var b = args2.node; } ) : (...args: any[]) => any >delegate : (instance: any, method: (...args: any[]) => any, data?: any) => (...args: any[]) => any, Symbol(delegate, Decl(contextualTypeAppliedToVarArgs.ts, 0, 0)) >this : Foo, Symbol(Foo, Decl(contextualTypeAppliedToVarArgs.ts, 2, 1)) >function (source, args2) { var a = source.node; var b = args2.node; } : (source: any, args2: any) => void >source : any, Symbol(source, Decl(contextualTypeAppliedToVarArgs.ts, 8, 33)) >args2 : any, Symbol(args2, Decl(contextualTypeAppliedToVarArgs.ts, 8, 40)) { var a = source.node; >a : any, Symbol(a, Decl(contextualTypeAppliedToVarArgs.ts, 10, 15)) >source.node : any >source : any, Symbol(source, Decl(contextualTypeAppliedToVarArgs.ts, 8, 33)) >node : any var b = args2.node; >b : any, Symbol(b, Decl(contextualTypeAppliedToVarArgs.ts, 11, 15)) >args2.node : any >args2 : any, Symbol(args2, Decl(contextualTypeAppliedToVarArgs.ts, 8, 40)) >node : any } ); } }