@@ -29,82 +29,55 @@ type DiscriminatorFalse = {
2929>x : Symbol(x, Decl(tsxDiscriminantPropertyInference.tsx, 12, 9))
3030}
3131
32- type Unrelated = {
33- >Unrelated : Symbol(Unrelated, Decl(tsxDiscriminantPropertyInference.tsx, 13, 1))
34-
35- val: number;
36- >val : Symbol(val, Decl(tsxDiscriminantPropertyInference.tsx, 15, 18))
37- }
38-
3932type Props = DiscriminatorTrue | DiscriminatorFalse;
40- >Props : Symbol(Props, Decl(tsxDiscriminantPropertyInference.tsx, 17 , 1))
33+ >Props : Symbol(Props, Decl(tsxDiscriminantPropertyInference.tsx, 13 , 1))
4134>DiscriminatorTrue : Symbol(DiscriminatorTrue, Decl(tsxDiscriminantPropertyInference.tsx, 3, 1))
4235>DiscriminatorFalse : Symbol(DiscriminatorFalse, Decl(tsxDiscriminantPropertyInference.tsx, 8, 1))
4336
44- type UnrelatedProps = Props | Unrelated;
45- >UnrelatedProps : Symbol(UnrelatedProps, Decl(tsxDiscriminantPropertyInference.tsx, 19, 52))
46- >Props : Symbol(Props, Decl(tsxDiscriminantPropertyInference.tsx, 17, 1))
47- >Unrelated : Symbol(Unrelated, Decl(tsxDiscriminantPropertyInference.tsx, 13, 1))
48-
49- declare function Comp(props: Props): JSX.Element;
50- >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 21, 40))
51- >props : Symbol(props, Decl(tsxDiscriminantPropertyInference.tsx, 23, 22))
52- >Props : Symbol(Props, Decl(tsxDiscriminantPropertyInference.tsx, 17, 1))
37+ declare function Comp(props: DiscriminatorTrue | DiscriminatorFalse): JSX.Element;
38+ >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 15, 52))
39+ >props : Symbol(props, Decl(tsxDiscriminantPropertyInference.tsx, 17, 22))
40+ >DiscriminatorTrue : Symbol(DiscriminatorTrue, Decl(tsxDiscriminantPropertyInference.tsx, 3, 1))
41+ >DiscriminatorFalse : Symbol(DiscriminatorFalse, Decl(tsxDiscriminantPropertyInference.tsx, 8, 1))
5342>JSX : Symbol(JSX, Decl(tsxDiscriminantPropertyInference.tsx, 0, 0))
5443>Element : Symbol(JSX.Element, Decl(tsxDiscriminantPropertyInference.tsx, 1, 15))
5544
5645// simple inference
5746void (<Comp disc cb={s => parseInt(s)} />);
58- >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 21, 40 ))
59- >disc : Symbol(disc, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 11))
60- >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 16))
61- >s : Symbol(s, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 21))
47+ >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 15, 52 ))
48+ >disc : Symbol(disc, Decl(tsxDiscriminantPropertyInference.tsx, 20 , 11))
49+ >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 20 , 16))
50+ >s : Symbol(s, Decl(tsxDiscriminantPropertyInference.tsx, 20 , 21))
6251>parseInt : Symbol(parseInt, Decl(lib.es5.d.ts, --, --))
63- >s : Symbol(s, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 21))
52+ >s : Symbol(s, Decl(tsxDiscriminantPropertyInference.tsx, 20 , 21))
6453
6554// simple inference
6655void (<Comp disc={false} cb={n => n.toFixed()} />);
67- >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 21, 40 ))
68- >disc : Symbol(disc, Decl(tsxDiscriminantPropertyInference.tsx, 29 , 11))
69- >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 29 , 24))
70- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 29 , 29))
56+ >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 15, 52 ))
57+ >disc : Symbol(disc, Decl(tsxDiscriminantPropertyInference.tsx, 23 , 11))
58+ >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 23 , 24))
59+ >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 23 , 29))
7160>n.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
72- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 29 , 29))
61+ >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 23 , 29))
7362>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
7463
7564// simple inference when strict-null-checks are enabled
7665void (<Comp disc={undefined} cb={n => n.toFixed()} />);
77- >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 21, 40 ))
78- >disc : Symbol(disc, Decl(tsxDiscriminantPropertyInference.tsx, 32 , 11))
66+ >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 15, 52 ))
67+ >disc : Symbol(disc, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 11))
7968>undefined : Symbol(undefined)
80- >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 32 , 28))
81- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 32 , 33))
69+ >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 28))
70+ >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 33))
8271>n.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
83- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 32 , 33))
72+ >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 26 , 33))
8473>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
8574
8675// requires checking type information since discriminator is missing from object
8776void (<Comp cb={n => n.toFixed()} />);
88- >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 21, 40))
89- >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 35, 11))
90- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 35, 16))
91- >n.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
92- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 35, 16))
93- >toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
94-
95- declare function UnrelatedComp(props: UnrelatedProps): JSX.Element;
96- >UnrelatedComp : Symbol(UnrelatedComp, Decl(tsxDiscriminantPropertyInference.tsx, 35, 38))
97- >props : Symbol(props, Decl(tsxDiscriminantPropertyInference.tsx, 37, 31))
98- >UnrelatedProps : Symbol(UnrelatedProps, Decl(tsxDiscriminantPropertyInference.tsx, 19, 52))
99- >JSX : Symbol(JSX, Decl(tsxDiscriminantPropertyInference.tsx, 0, 0))
100- >Element : Symbol(JSX.Element, Decl(tsxDiscriminantPropertyInference.tsx, 1, 15))
101-
102- // requires checking properties of all types, rather than properties of just the union type (e.g. only intersection)
103- void (<Comp cb={n => n.toFixed()} />);
104- >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 21, 40))
105- >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 40, 11))
106- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 40, 16))
77+ >Comp : Symbol(Comp, Decl(tsxDiscriminantPropertyInference.tsx, 15, 52))
78+ >cb : Symbol(cb, Decl(tsxDiscriminantPropertyInference.tsx, 29, 11))
79+ >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 29, 16))
10780>n.toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
108- >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 40 , 16))
81+ >n : Symbol(n, Decl(tsxDiscriminantPropertyInference.tsx, 29 , 16))
10982>toFixed : Symbol(Number.toFixed, Decl(lib.es5.d.ts, --, --))
11083
0 commit comments