File tree Expand file tree Collapse file tree 2 files changed +23
-17
lines changed
tests/baselines/reference Expand file tree Collapse file tree 2 files changed +23
-17
lines changed Original file line number Diff line number Diff line change @@ -8525,9 +8525,13 @@ namespace ts {
85258525 const indexOfParameter = indexOf(func.parameters, parameter);
85268526 if (iife.arguments && indexOfParameter < iife.arguments.length) {
85278527 if (parameter.dotDotDotToken) {
8528- return createArrayType(getUnionType(map(iife.arguments.slice(indexOfParameter), getTypeOfExpression)));
8528+ const restTypes: Type[] = [];
8529+ for (let i = indexOfParameter; i < iife.arguments.length; i++) {
8530+ restTypes.push(getTypeOfExpression(iife.arguments[i]));
8531+ }
8532+ return createArrayType(getUnionType(restTypes));
85298533 }
8530- return checkExpression(iife.arguments[indexOfParameter], identityMapper );
8534+ return checkExpression(iife.arguments[indexOfParameter]);
85318535 }
85328536 }
85338537 const contextualSignature = getContextualSignature(func);
@@ -8552,11 +8556,13 @@ namespace ts {
85528556
85538557 function getImmediatelyInvokedFunctionExpression(func: FunctionExpression | MethodDeclaration) {
85548558 if (isFunctionExpressionOrArrowFunction(func)) {
8555- let parent = func.parent;
8559+ let prev: Node = func;
8560+ let parent: Node = func.parent;
85568561 while (parent.kind === SyntaxKind.ParenthesizedExpression) {
8562+ prev = parent;
85578563 parent = parent.parent;
85588564 }
8559- if (parent.kind === SyntaxKind.CallExpression) {
8565+ if (parent.kind === SyntaxKind.CallExpression && (parent as CallExpression).expression === prev ) {
85608566 return parent as CallExpression;
85618567 }
85628568 }
Original file line number Diff line number Diff line change 223223let twelve = (f => f(12))(i => i);
224224>twelve : any
225225>(f => f(12))(i => i) : any
226- >(f => f(12)) : (f: {} ) => any
227- >f => f(12) : (f: {} ) => any
228- >f : {}
226+ >(f => f(12)) : (f: (i: any) => any ) => any
227+ >f => f(12) : (f: (i: any) => any ) => any
228+ >f : (i: any) => any
229229>f(12) : any
230- >f : {}
230+ >f : (i: any) => any
231231>12 : number
232- >i => i : (i: {} ) => {}
233- >i : {}
234- >i : {}
232+ >i => i : (i: any ) => any
233+ >i : any
234+ >i : any
235235
236236let eleven = (o => o.a(11))({ a: function(n) { return n; } });
237237>eleven : any
238238>(o => o.a(11))({ a: function(n) { return n; } }) : any
239- >(o => o.a(11)) : (o: { a: {} ; }) => any
240- >o => o.a(11) : (o: { a: {} ; }) => any
241- >o : { a: {} ; }
239+ >(o => o.a(11)) : (o: { a: (n: any) => any ; }) => any
240+ >o => o.a(11) : (o: { a: (n: any) => any ; }) => any
241+ >o : { a: (n: any) => any ; }
242242>o.a(11) : any
243- >o.a : {}
244- >o : { a: {} ; }
245- >a : {}
243+ >o.a : (n: any) => any
244+ >o : { a: (n: any) => any ; }
245+ >a : (n: any) => any
246246>11 : number
247247>{ a: function(n) { return n; } } : { a: (n: any) => any; }
248248>a : (n: any) => any
You can’t perform that action at this time.
0 commit comments