File tree 2 files changed +23
-17
lines changed
tests/baselines/reference 2 files changed +23
-17
lines changed Original file line number Diff line number Diff line change @@ -8525,9 +8525,13 @@ namespace ts {
8525
8525
const indexOfParameter = indexOf(func.parameters, parameter);
8526
8526
if (iife.arguments && indexOfParameter < iife.arguments.length) {
8527
8527
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));
8529
8533
}
8530
- return checkExpression(iife.arguments[indexOfParameter], identityMapper );
8534
+ return checkExpression(iife.arguments[indexOfParameter]);
8531
8535
}
8532
8536
}
8533
8537
const contextualSignature = getContextualSignature(func);
@@ -8552,11 +8556,13 @@ namespace ts {
8552
8556
8553
8557
function getImmediatelyInvokedFunctionExpression(func: FunctionExpression | MethodDeclaration) {
8554
8558
if (isFunctionExpressionOrArrowFunction(func)) {
8555
- let parent = func.parent;
8559
+ let prev: Node = func;
8560
+ let parent: Node = func.parent;
8556
8561
while (parent.kind === SyntaxKind.ParenthesizedExpression) {
8562
+ prev = parent;
8557
8563
parent = parent.parent;
8558
8564
}
8559
- if (parent.kind === SyntaxKind.CallExpression) {
8565
+ if (parent.kind === SyntaxKind.CallExpression && (parent as CallExpression).expression === prev ) {
8560
8566
return parent as CallExpression;
8561
8567
}
8562
8568
}
Original file line number Diff line number Diff line change 223
223
let twelve = (f => f(12))(i => i);
224
224
>twelve : any
225
225
>(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
229
229
>f(12) : any
230
- >f : {}
230
+ >f : (i: any) => any
231
231
>12 : number
232
- >i => i : (i: {} ) => {}
233
- >i : {}
234
- >i : {}
232
+ >i => i : (i: any ) => any
233
+ >i : any
234
+ >i : any
235
235
236
236
let eleven = (o => o.a(11))({ a: function(n) { return n; } });
237
237
>eleven : any
238
238
>(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 ; }
242
242
>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
246
246
>11 : number
247
247
>{ a: function(n) { return n; } } : { a: (n: any) => any; }
248
248
>a : (n: any) => any
You can’t perform that action at this time.
0 commit comments