Skip to content

Commit f9412f8

Browse files
committed
Merge pull request microsoft#8698 from Microsoft/iife-parameters-correct-quickinfo
Mark IIFE signature with `anySignature` during contextual typing
2 parents 43b36d2 + 8e66844 commit f9412f8

2 files changed

Lines changed: 44 additions & 1 deletion

File tree

src/compiler/checker.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8606,7 +8606,12 @@ namespace ts {
86068606
}
86078607
return createArrayType(getUnionType(restTypes));
86088608
}
8609-
return checkExpression(iife.arguments[indexOfParameter]);
8609+
const links = getNodeLinks(iife);
8610+
const cached = links.resolvedSignature;
8611+
links.resolvedSignature = anySignature;
8612+
const type = checkExpression(iife.arguments[indexOfParameter]);
8613+
links.resolvedSignature = cached;
8614+
return type;
86108615
}
86118616
}
86128617
const contextualSignature = getContextualSignature(func);
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/// <reference path='fourslash.ts' />
2+
3+
////(({ q/*1*/, qq/*2*/ }, x/*3*/, { p/*4*/ }) => {
4+
//// var s: number = q/*5*/;
5+
//// var t: number = qq/*6*/;
6+
//// var u: number = p/*7*/;
7+
//// var v: number = x/*8*/;
8+
//// return q; })({ q: 13, qq: 12 }, 1, { p: 14 });
9+
////((a/*9*/, b/*10*/, c/*11*/) => [a/*12*/,b/*13*/,c/*14*/])("foo", 101, false);
10+
11+
goTo.marker('1');
12+
verify.quickInfoIs("var q: number");
13+
goTo.marker('2');
14+
verify.quickInfoIs("var qq: number");
15+
goTo.marker('3');
16+
verify.quickInfoIs("(parameter) x: number");
17+
goTo.marker('4');
18+
verify.quickInfoIs("var p: number");
19+
goTo.marker('5');
20+
verify.quickInfoIs("var q: number");
21+
goTo.marker('6');
22+
verify.quickInfoIs("var qq: number");
23+
goTo.marker('7');
24+
verify.quickInfoIs("var p: number");
25+
goTo.marker('8');
26+
verify.quickInfoIs("(parameter) x: number");
27+
goTo.marker('9');
28+
verify.quickInfoIs("(parameter) a: string");
29+
goTo.marker('10');
30+
verify.quickInfoIs("(parameter) b: number");
31+
goTo.marker('11');
32+
verify.quickInfoIs("(parameter) c: boolean");
33+
goTo.marker('12');
34+
verify.quickInfoIs("(parameter) a: string");
35+
goTo.marker('13');
36+
verify.quickInfoIs("(parameter) b: number");
37+
goTo.marker('14');
38+
verify.quickInfoIs("(parameter) c: boolean");

0 commit comments

Comments
 (0)