Skip to content

Commit 71d4ee5

Browse files
authored
Preserve alias information where possible when looking up union and intersection base constraints (microsoft#42430)
1 parent 2f47527 commit 71d4ee5

File tree

44 files changed

+1739
-181
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1739
-181
lines changed

src/compiler/checker.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11209,11 +11209,21 @@ namespace ts {
1120911209
if (t.flags & TypeFlags.UnionOrIntersection) {
1121011210
const types = (<UnionOrIntersectionType>t).types;
1121111211
const baseTypes: Type[] = [];
11212+
let different = false;
1121211213
for (const type of types) {
1121311214
const baseType = getBaseConstraint(type);
1121411215
if (baseType) {
11216+
if (baseType !== type) {
11217+
different = true;
11218+
}
1121511219
baseTypes.push(baseType);
1121611220
}
11221+
else {
11222+
different = true;
11223+
}
11224+
}
11225+
if (!different) {
11226+
return t;
1121711227
}
1121811228
return t.flags & TypeFlags.Union && baseTypes.length === types.length ? getUnionType(baseTypes) :
1121911229
t.flags & TypeFlags.Intersection && baseTypes.length ? getIntersectionType(baseTypes) :

tests/baselines/reference/checkJsxChildrenCanBeTupleType.symbols

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ const test = <ResizablePanel>
2929
>ResizablePanel : Symbol(ResizablePanel, Decl(checkJsxChildrenCanBeTupleType.tsx, 6, 1))
3030

3131
<div />
32-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
32+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3333

3434
<div />
35-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
35+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3636

3737
</ResizablePanel>
3838
>ResizablePanel : Symbol(ResizablePanel, Decl(checkJsxChildrenCanBeTupleType.tsx, 6, 1))
@@ -42,13 +42,13 @@ const testErr = <ResizablePanel>
4242
>ResizablePanel : Symbol(ResizablePanel, Decl(checkJsxChildrenCanBeTupleType.tsx, 6, 1))
4343

4444
<div />
45-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
45+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
4646

4747
<div />
48-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
48+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
4949

5050
<div />
51-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
51+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
5252

5353
</ResizablePanel>
5454
>ResizablePanel : Symbol(ResizablePanel, Decl(checkJsxChildrenCanBeTupleType.tsx, 6, 1))

tests/baselines/reference/checkJsxUnionSFXContextualTypeInferredCorrectly.symbols

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ export function ComponentWithUnion(props: PM | PS) {
3939
>PS : Symbol(PS, Decl(checkJsxUnionSFXContextualTypeInferredCorrectly.tsx, 2, 26))
4040

4141
return <h1></h1>;
42-
>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react16.d.ts, 2430, 106))
43-
>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react16.d.ts, 2430, 106))
42+
>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react16.d.ts, 2556, 106))
43+
>h1 : Symbol(JSX.IntrinsicElements.h1, Decl(react16.d.ts, 2556, 106))
4444
}
4545

4646
// Usage with React tsx

tests/baselines/reference/jsDeclarationsReactComponents.symbols

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const TabbedShowLayout = ({
1212
}) => {
1313
return (
1414
<div />
15-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
15+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
1616

1717
);
1818
};
@@ -56,13 +56,13 @@ const TabbedShowLayout = () => {
5656

5757
return (
5858
<div className="" key="">
59-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
59+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
6060
>className : Symbol(className, Decl(jsDeclarationsReactComponents2.jsx, 6, 12))
6161
>key : Symbol(key, Decl(jsDeclarationsReactComponents2.jsx, 6, 25))
6262

6363
ok
6464
</div>
65-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
65+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
6666

6767
);
6868
};
@@ -92,13 +92,13 @@ const TabbedShowLayout = () => {
9292

9393
return (
9494
<div className="" key="">
95-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
95+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
9696
>className : Symbol(className, Decl(jsDeclarationsReactComponents3.jsx, 6, 12))
9797
>key : Symbol(key, Decl(jsDeclarationsReactComponents3.jsx, 6, 25))
9898

9999
ok
100100
</div>
101-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
101+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
102102

103103
);
104104
};
@@ -126,7 +126,7 @@ const TabbedShowLayout = (/** @type {{className: string}}*/prop) => {
126126

127127
return (
128128
<div className={prop.className} key="">
129-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
129+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
130130
>className : Symbol(className, Decl(jsDeclarationsReactComponents4.jsx, 3, 12))
131131
>prop.className : Symbol(className, Decl(jsDeclarationsReactComponents4.jsx, 1, 38))
132132
>prop : Symbol(prop, Decl(jsDeclarationsReactComponents4.jsx, 1, 26))
@@ -135,7 +135,7 @@ const TabbedShowLayout = (/** @type {{className: string}}*/prop) => {
135135

136136
ok
137137
</div>
138-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
138+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
139139

140140
);
141141
};
@@ -165,7 +165,7 @@ function Tree({ allowDropOnRoot }) {
165165
>allowDropOnRoot : Symbol(allowDropOnRoot, Decl(jsDeclarationsReactComponents5.jsx, 3, 15))
166166

167167
return <div />
168-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
168+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
169169
}
170170

171171
Tree.propTypes = {

tests/baselines/reference/jsxChildrenSingleChildConfusableWithMultipleChildrenNoError.symbols

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ function TabLayout(props: Props) {
2323
>Props : Symbol(Props, Decl(jsxChildrenSingleChildConfusableWithMultipleChildrenNoError.tsx, 4, 36))
2424

2525
return <div/>
26-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
26+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2727
}
2828

2929
export class App extends React.Component<{}> {
@@ -40,10 +40,10 @@ export class App extends React.Component<{}> {
4040

4141
{[
4242
['Users', <div/>],
43-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
43+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
4444

4545
['Products', <div/>]
46-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
46+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
4747

4848
]}
4949
</TabLayout>

tests/baselines/reference/jsxComplexSignatureHasApplicabilityError.symbols

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,8 @@ export type ValueComponentType<TValue = OptionValues> = React.ComponentType<Val
183183

184184
export type HandlerRendererResult = JSX.Element | null | false;
185185
>HandlerRendererResult : Symbol(HandlerRendererResult, Decl(jsxComplexSignatureHasApplicabilityError.tsx, 53, 106))
186-
>JSX : Symbol(JSX, Decl(react16.d.ts, 2367, 12))
187-
>Element : Symbol(JSX.Element, Decl(react16.d.ts, 2368, 23))
186+
>JSX : Symbol(JSX, Decl(react16.d.ts, 2493, 12))
187+
>Element : Symbol(JSX.Element, Decl(react16.d.ts, 2494, 23))
188188

189189
// Handlers
190190
export type FocusOptionHandler<TValue = OptionValues> = (option: Option<TValue>) => void;
@@ -1005,8 +1005,8 @@ export interface ReactSelectProps<TValue = OptionValues> extends React.Props<Rea
10051005
*/
10061006
noResultsText?: string | JSX.Element;
10071007
>noResultsText : Symbol(ReactSelectProps.noResultsText, Decl(jsxComplexSignatureHasApplicabilityError.tsx, 438, 18))
1008-
>JSX : Symbol(JSX, Decl(react16.d.ts, 2367, 12))
1009-
>Element : Symbol(JSX.Element, Decl(react16.d.ts, 2368, 23))
1008+
>JSX : Symbol(JSX, Decl(react16.d.ts, 2493, 12))
1009+
>Element : Symbol(JSX.Element, Decl(react16.d.ts, 2494, 23))
10101010

10111011
/**
10121012
* onBlur handler: function (event) {}
@@ -1146,8 +1146,8 @@ export interface ReactSelectProps<TValue = OptionValues> extends React.Props<Rea
11461146
*/
11471147
placeholder?: string | JSX.Element;
11481148
>placeholder : Symbol(ReactSelectProps.placeholder, Decl(jsxComplexSignatureHasApplicabilityError.tsx, 524, 22))
1149-
>JSX : Symbol(JSX, Decl(react16.d.ts, 2367, 12))
1150-
>Element : Symbol(JSX.Element, Decl(react16.d.ts, 2368, 23))
1149+
>JSX : Symbol(JSX, Decl(react16.d.ts, 2493, 12))
1150+
>Element : Symbol(JSX.Element, Decl(react16.d.ts, 2494, 23))
11511151

11521152
/**
11531153
* whether the selected option is removed from the dropdown on multi selects

tests/baselines/reference/jsxDeclarationsWithEsModuleInteropNoCrash.symbols

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ function Foo({ bar }) {
3030
>bar : Symbol(bar, Decl(jsxDeclarationsWithEsModuleInteropNoCrash.jsx, 12, 14))
3131

3232
return <div>{bar}</div>;
33-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
33+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3434
>bar : Symbol(bar, Decl(jsxDeclarationsWithEsModuleInteropNoCrash.jsx, 12, 14))
35-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
35+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3636
}
3737

3838
Foo.propTypes = propTypes;

tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react).symbols

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ function Wrapper(props: Props) {
1818
>Props : Symbol(Props, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 1, 30))
1919

2020
return <div>{props.children}</div>
21-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
21+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2222
>props.children : Symbol(Props.children, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 3, 17))
2323
>props : Symbol(props, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 7, 17))
2424
>children : Symbol(Props.children, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 3, 17))
25-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
25+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2626
}
2727

2828
const element = (
@@ -33,8 +33,8 @@ const element = (
3333

3434
{/* comment */}
3535
<div>Hello</div>
36-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
37-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
36+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
37+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3838

3939
</Wrapper>
4040
>Wrapper : Symbol(Wrapper, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 5, 1))

tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsx).symbols

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ function Wrapper(props: Props) {
1818
>Props : Symbol(Props, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 1, 30))
1919

2020
return <div>{props.children}</div>
21-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
21+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2222
>props.children : Symbol(Props.children, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 3, 17))
2323
>props : Symbol(props, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 7, 17))
2424
>children : Symbol(Props.children, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 3, 17))
25-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
25+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2626
}
2727

2828
const element = (
@@ -33,8 +33,8 @@ const element = (
3333

3434
{/* comment */}
3535
<div>Hello</div>
36-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
37-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
36+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
37+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3838

3939
</Wrapper>
4040
>Wrapper : Symbol(Wrapper, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 5, 1))

tests/baselines/reference/jsxEmptyExpressionNotCountedAsChild(jsx=react-jsxdev).symbols

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ function Wrapper(props: Props) {
1818
>Props : Symbol(Props, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 1, 30))
1919

2020
return <div>{props.children}</div>
21-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
21+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2222
>props.children : Symbol(Props.children, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 3, 17))
2323
>props : Symbol(props, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 7, 17))
2424
>children : Symbol(Props.children, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 3, 17))
25-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
25+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2626
}
2727

2828
const element = (
@@ -33,8 +33,8 @@ const element = (
3333

3434
{/* comment */}
3535
<div>Hello</div>
36-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
37-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
36+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
37+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3838

3939
</Wrapper>
4040
>Wrapper : Symbol(Wrapper, Decl(jsxEmptyExpressionNotCountedAsChild.tsx, 5, 1))

tests/baselines/reference/jsxFragmentFactoryNoUnusedLocals.symbols

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ export function Counter({ count = 0 }: CounterProps) {
2222

2323
return <>
2424
<p>{cnt}</p>
25-
>p : Symbol(JSX.IntrinsicElements.p, Decl(react16.d.ts, 2467, 102))
25+
>p : Symbol(JSX.IntrinsicElements.p, Decl(react16.d.ts, 2593, 102))
2626
>cnt : Symbol(cnt, Decl(jsxFragmentFactoryNoUnusedLocals.tsx, 8, 11))
27-
>p : Symbol(JSX.IntrinsicElements.p, Decl(react16.d.ts, 2467, 102))
27+
>p : Symbol(JSX.IntrinsicElements.p, Decl(react16.d.ts, 2593, 102))
2828

2929
<button onClick={() => setCnt((prev) => prev + 1)} type="button">Update</button>
30-
>button : Symbol(JSX.IntrinsicElements.button, Decl(react16.d.ts, 2406, 96))
30+
>button : Symbol(JSX.IntrinsicElements.button, Decl(react16.d.ts, 2532, 96))
3131
>onClick : Symbol(onClick, Decl(jsxFragmentFactoryNoUnusedLocals.tsx, 11, 15))
3232
>setCnt : Symbol(setCnt, Decl(jsxFragmentFactoryNoUnusedLocals.tsx, 8, 15))
3333
>prev : Symbol(prev, Decl(jsxFragmentFactoryNoUnusedLocals.tsx, 11, 39))
3434
>prev : Symbol(prev, Decl(jsxFragmentFactoryNoUnusedLocals.tsx, 11, 39))
3535
>type : Symbol(type, Decl(jsxFragmentFactoryNoUnusedLocals.tsx, 11, 58))
36-
>button : Symbol(JSX.IntrinsicElements.button, Decl(react16.d.ts, 2406, 96))
36+
>button : Symbol(JSX.IntrinsicElements.button, Decl(react16.d.ts, 2532, 96))
3737

3838
</>
3939
}

tests/baselines/reference/jsxImportForSideEffectsNonExtantNoError.symbols

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ import "./App.css"; // doesn't actually exist
77

88
const tag = <div></div>;
99
>tag : Symbol(tag, Decl(jsxImportForSideEffectsNonExtantNoError.tsx, 5, 5))
10-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
11-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
10+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
11+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
1212

tests/baselines/reference/jsxIntrinsicElementsTypeArgumentErrors.symbols

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,58 +6,58 @@ import * as React from "react";
66
// opening + closing
77
const a = <div<>></div>; // empty type args
88
>a : Symbol(a, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 4, 5))
9-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
10-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
9+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
10+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
1111

1212
const b = <div<number,>></div>; // trailing comma type args
1313
>b : Symbol(b, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 6, 5))
14-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
15-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
14+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
15+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
1616

1717
const c = <div<Missing>></div>; // nonexistant type args
1818
>c : Symbol(c, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 8, 5))
19-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
20-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
19+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
20+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2121

2222
const d = <div<Missing<AlsoMissing>>></div>; // nested missing type args
2323
>d : Symbol(d, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 10, 5))
24-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
25-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
24+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
25+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
2626

2727
const e = <div<Record<object, object>>></div>; // existing but incorrect nested type args
2828
>e : Symbol(e, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 12, 5))
29-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
29+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3030
>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
31-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
31+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3232

3333
const f = <div<number>></div>; // existing type argument with no internal issues
3434
>f : Symbol(f, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 14, 5))
35-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
36-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
35+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
36+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
3737

3838
// self-closing
3939
const g = <div<>/>; // empty type args
4040
>g : Symbol(g, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 17, 5))
41-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
41+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
4242

4343
const h = <div<number,>/>; // trailing comma type args
4444
>h : Symbol(h, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 19, 5))
45-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
45+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
4646

4747
const i = <div<Missing>/>; // nonexistant type args
4848
>i : Symbol(i, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 21, 5))
49-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
49+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
5050

5151
const j = <div<Missing<AlsoMissing>>/>; // nested missing type args
5252
>j : Symbol(j, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 23, 5))
53-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
53+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
5454

5555
const k = <div<Record<object, object>>/>; // existing but incorrect nested type args
5656
>k : Symbol(k, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 25, 5))
57-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
57+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
5858
>Record : Symbol(Record, Decl(lib.es5.d.ts, --, --))
5959

6060
const l = <div<number>/>; // existing type argument with no internal issues
6161
>l : Symbol(l, Decl(jsxIntrinsicElementsTypeArgumentErrors.tsx, 27, 5))
62-
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
62+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2546, 114))
6363

0 commit comments

Comments
 (0)