>x5 : Symbol(x5, Decl(Error5.tsx, 0, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/jsxParsingError3.symbols b/tests/baselines/reference/jsxParsingError3.symbols
index 013c9bb2a002c..876355a9d6364 100644
--- a/tests/baselines/reference/jsxParsingError3.symbols
+++ b/tests/baselines/reference/jsxParsingError3.symbols
@@ -18,36 +18,36 @@ declare module JSX {
=== Error1.tsx ===
let x1 = }
;
>x1 : Symbol(x1, Decl(Error1.tsx, 0, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
=== Error2.tsx ===
let x2 = >
;
>x2 : Symbol(x2, Decl(Error2.tsx, 0, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
=== Error3.tsx ===
let x3 = {"foo"}}
;
>x3 : Symbol(x3, Decl(Error3.tsx, 0, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
=== Error4.tsx ===
let x4 = {"foo"}>
;
>x4 : Symbol(x4, Decl(Error4.tsx, 0, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
=== Error5.tsx ===
let x5 = }{"foo"}
;
>x5 : Symbol(x5, Decl(Error5.tsx, 0, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
=== Error6.tsx ===
let x6 = >{"foo"}
;
>x6 : Symbol(x6, Decl(Error6.tsx, 0, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 31))
diff --git a/tests/baselines/reference/jsxParsingError4(strict=false).symbols b/tests/baselines/reference/jsxParsingError4(strict=false).symbols
index b26f56375f252..9c19e21888efc 100644
--- a/tests/baselines/reference/jsxParsingError4(strict=false).symbols
+++ b/tests/baselines/reference/jsxParsingError4(strict=false).symbols
@@ -19,8 +19,8 @@ const a = (
>a : Symbol(a, Decl(a.tsx, 7, 5))
->public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
->public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
+>public-foo : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
+>public-foo : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
);
@@ -28,8 +28,8 @@ const b = (
>b : Symbol(b, Decl(a.tsx, 11, 5))
->public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
->public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
+>public : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
+>public : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
);
diff --git a/tests/baselines/reference/jsxParsingError4(strict=true).symbols b/tests/baselines/reference/jsxParsingError4(strict=true).symbols
index b26f56375f252..9c19e21888efc 100644
--- a/tests/baselines/reference/jsxParsingError4(strict=true).symbols
+++ b/tests/baselines/reference/jsxParsingError4(strict=true).symbols
@@ -19,8 +19,8 @@ const a = (
>a : Symbol(a, Decl(a.tsx, 7, 5))
->public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
->public-foo : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
+>public-foo : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
+>public-foo : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
);
@@ -28,8 +28,8 @@ const b = (
>b : Symbol(b, Decl(a.tsx, 11, 5))
->public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
->public : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 1, 23))
+>public : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
+>public : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 2, 33))
);
diff --git a/tests/baselines/reference/quickInfoOnJsxIntrinsicDeclaredUsingCatchCallIndexSignature.baseline b/tests/baselines/reference/quickInfoOnJsxIntrinsicDeclaredUsingCatchCallIndexSignature.baseline
new file mode 100644
index 0000000000000..4871481dcb4d7
--- /dev/null
+++ b/tests/baselines/reference/quickInfoOnJsxIntrinsicDeclaredUsingCatchCallIndexSignature.baseline
@@ -0,0 +1,74 @@
+=== /a.tsx ===
+// declare namespace JSX {
+// interface IntrinsicElements { [elemName: string]: any; }
+// }
+// ;
+// ^^^
+// | ----------------------------------------------------------------------
+// | (index) IntrinsicElements[string]: any
+// | ----------------------------------------------------------------------
+
+[
+ {
+ "marker": {
+ "fileName": "/a.tsx",
+ "position": 86,
+ "name": ""
+ },
+ "item": {
+ "kind": "index",
+ "kindModifiers": "declare",
+ "textSpan": {
+ "start": 86,
+ "length": 3
+ },
+ "displayParts": [
+ {
+ "text": "(",
+ "kind": "punctuation"
+ },
+ {
+ "text": "index",
+ "kind": "text"
+ },
+ {
+ "text": ")",
+ "kind": "punctuation"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "IntrinsicElements",
+ "kind": "interfaceName"
+ },
+ {
+ "text": "[",
+ "kind": "punctuation"
+ },
+ {
+ "text": "string",
+ "kind": "keyword"
+ },
+ {
+ "text": "]",
+ "kind": "punctuation"
+ },
+ {
+ "text": ":",
+ "kind": "punctuation"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "any",
+ "kind": "keyword"
+ }
+ ],
+ "documentation": []
+ }
+ }
+]
\ No newline at end of file
diff --git a/tests/baselines/reference/quickInfoOnJsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.baseline b/tests/baselines/reference/quickInfoOnJsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.baseline
new file mode 100644
index 0000000000000..9babfbe85687e
--- /dev/null
+++ b/tests/baselines/reference/quickInfoOnJsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.baseline
@@ -0,0 +1,184 @@
+=== /a.tsx ===
+// declare namespace JSX {
+// interface IntrinsicElements {
+// [k: `foo${string}`]: any;
+// [k: `foobar${string}`]: any;
+// }
+// }
+// ;
+// ^^^^^^
+// | ----------------------------------------------------------------------
+// | (index) IntrinsicElements[`foo${string}`]: any
+// | ----------------------------------------------------------------------
+// ;
+// ^^^^^^^^^
+// | ----------------------------------------------------------------------
+// | (index) IntrinsicElements[`foo${string}` | `foobar${string}`]: any
+// | ----------------------------------------------------------------------
+
+[
+ {
+ "marker": {
+ "fileName": "/a.tsx",
+ "position": 126,
+ "name": "1"
+ },
+ "item": {
+ "kind": "index",
+ "kindModifiers": "declare",
+ "textSpan": {
+ "start": 126,
+ "length": 6
+ },
+ "displayParts": [
+ {
+ "text": "(",
+ "kind": "punctuation"
+ },
+ {
+ "text": "index",
+ "kind": "text"
+ },
+ {
+ "text": ")",
+ "kind": "punctuation"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "IntrinsicElements",
+ "kind": "interfaceName"
+ },
+ {
+ "text": "[",
+ "kind": "punctuation"
+ },
+ {
+ "text": "`foo${",
+ "kind": "stringLiteral"
+ },
+ {
+ "text": "string",
+ "kind": "keyword"
+ },
+ {
+ "text": "}`",
+ "kind": "stringLiteral"
+ },
+ {
+ "text": "]",
+ "kind": "punctuation"
+ },
+ {
+ "text": ":",
+ "kind": "punctuation"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "any",
+ "kind": "keyword"
+ }
+ ],
+ "documentation": []
+ }
+ },
+ {
+ "marker": {
+ "fileName": "/a.tsx",
+ "position": 138,
+ "name": "2"
+ },
+ "item": {
+ "kind": "index",
+ "kindModifiers": "declare",
+ "textSpan": {
+ "start": 138,
+ "length": 9
+ },
+ "displayParts": [
+ {
+ "text": "(",
+ "kind": "punctuation"
+ },
+ {
+ "text": "index",
+ "kind": "text"
+ },
+ {
+ "text": ")",
+ "kind": "punctuation"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "IntrinsicElements",
+ "kind": "interfaceName"
+ },
+ {
+ "text": "[",
+ "kind": "punctuation"
+ },
+ {
+ "text": "`foo${",
+ "kind": "stringLiteral"
+ },
+ {
+ "text": "string",
+ "kind": "keyword"
+ },
+ {
+ "text": "}`",
+ "kind": "stringLiteral"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "|",
+ "kind": "punctuation"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "`foobar${",
+ "kind": "stringLiteral"
+ },
+ {
+ "text": "string",
+ "kind": "keyword"
+ },
+ {
+ "text": "}`",
+ "kind": "stringLiteral"
+ },
+ {
+ "text": "]",
+ "kind": "punctuation"
+ },
+ {
+ "text": ":",
+ "kind": "punctuation"
+ },
+ {
+ "text": " ",
+ "kind": "space"
+ },
+ {
+ "text": "any",
+ "kind": "keyword"
+ }
+ ],
+ "documentation": []
+ }
+ }
+]
\ No newline at end of file
diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNext.symbols b/tests/baselines/reference/reactJsxReactResolvedNodeNext.symbols
index b9da7f7d5d757..e2ddca8d016e8 100644
--- a/tests/baselines/reference/reactJsxReactResolvedNodeNext.symbols
+++ b/tests/baselines/reference/reactJsxReactResolvedNodeNext.symbols
@@ -3,8 +3,8 @@
=== file.tsx ===
export const a = ;
>a : Symbol(a, Decl(file.tsx, 0, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(index.d.ts, 0, 23))
->div : Symbol(JSX.IntrinsicElements, Decl(index.d.ts, 0, 23))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(index.d.ts, 1, 33))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(index.d.ts, 1, 33))
=== node_modules/@types/react/index.d.ts ===
declare namespace JSX {
diff --git a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.symbols b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.symbols
index f63223109210f..5c5343253c544 100644
--- a/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.symbols
+++ b/tests/baselines/reference/reactJsxReactResolvedNodeNextEsm.symbols
@@ -3,8 +3,8 @@
=== file.tsx ===
export const a = ;
>a : Symbol(a, Decl(file.tsx, 0, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(index.d.ts, 0, 23))
->div : Symbol(JSX.IntrinsicElements, Decl(index.d.ts, 0, 23))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(index.d.ts, 1, 33))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(index.d.ts, 1, 33))
=== node_modules/@types/react/index.d.ts ===
declare namespace JSX {
diff --git a/tests/baselines/reference/tsxElementResolution2.symbols b/tests/baselines/reference/tsxElementResolution2.symbols
index c575e429f78ba..21c96a733924d 100644
--- a/tests/baselines/reference/tsxElementResolution2.symbols
+++ b/tests/baselines/reference/tsxElementResolution2.symbols
@@ -17,9 +17,9 @@ declare module JSX {
// OK
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// OK
;
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxElementResolution3.symbols b/tests/baselines/reference/tsxElementResolution3.symbols
index ad6d37edb6372..6f972c3e6a577 100644
--- a/tests/baselines/reference/tsxElementResolution3.symbols
+++ b/tests/baselines/reference/tsxElementResolution3.symbols
@@ -18,11 +18,11 @@ declare module JSX {
// OK
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 8, 4))
// Error
;
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>w : Symbol(w, Decl(file.tsx, 11, 5))
diff --git a/tests/baselines/reference/tsxEmit1.symbols b/tests/baselines/reference/tsxEmit1.symbols
index 16dbafa979c71..7a0234d4bba0e 100644
--- a/tests/baselines/reference/tsxEmit1.symbols
+++ b/tests/baselines/reference/tsxEmit1.symbols
@@ -20,76 +20,76 @@ var p;
var selfClosed1 = ;
>selfClosed1 : Symbol(selfClosed1, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var selfClosed2 = ;
>selfClosed2 : Symbol(selfClosed2, Decl(file.tsx, 9, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 9, 22))
var selfClosed3 = ;
>selfClosed3 : Symbol(selfClosed3, Decl(file.tsx, 10, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 10, 22))
var selfClosed4 = ;
>selfClosed4 : Symbol(selfClosed4, Decl(file.tsx, 11, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 11, 22))
>y : Symbol(y, Decl(file.tsx, 11, 28))
var selfClosed5 = ;
>selfClosed5 : Symbol(selfClosed5, Decl(file.tsx, 12, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 12, 22))
>y : Symbol(y, Decl(file.tsx, 12, 28))
var selfClosed6 = ;
>selfClosed6 : Symbol(selfClosed6, Decl(file.tsx, 13, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 13, 22))
>y : Symbol(y, Decl(file.tsx, 13, 30))
var selfClosed7 = ;
>selfClosed7 : Symbol(selfClosed7, Decl(file.tsx, 14, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 14, 22))
>p : Symbol(p, Decl(file.tsx, 7, 3))
>y : Symbol(y, Decl(file.tsx, 14, 28))
var openClosed1 = ;
>openClosed1 : Symbol(openClosed1, Decl(file.tsx, 16, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed2 = foo
;
>openClosed2 : Symbol(openClosed2, Decl(file.tsx, 17, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 17, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed3 = {p}
;
>openClosed3 : Symbol(openClosed3, Decl(file.tsx, 18, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 18, 22))
>p : Symbol(p, Decl(file.tsx, 7, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed4 = {p < p}
;
>openClosed4 : Symbol(openClosed4, Decl(file.tsx, 19, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 19, 22))
>p : Symbol(p, Decl(file.tsx, 7, 3))
>p : Symbol(p, Decl(file.tsx, 7, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed5 = {p > p}
;
>openClosed5 : Symbol(openClosed5, Decl(file.tsx, 20, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 20, 22))
>p : Symbol(p, Decl(file.tsx, 7, 3))
>p : Symbol(p, Decl(file.tsx, 7, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
class SomeClass {
>SomeClass : Symbol(SomeClass, Decl(file.tsx, 20, 43))
@@ -99,67 +99,67 @@ class SomeClass {
var rewrites1 = {() => this}
;
>rewrites1 : Symbol(rewrites1, Decl(file.tsx, 24, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>this : Symbol(SomeClass, Decl(file.tsx, 20, 43))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites2 = {[p, ...p, p]}
;
>rewrites2 : Symbol(rewrites2, Decl(file.tsx, 25, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 7, 3))
>p : Symbol(p, Decl(file.tsx, 7, 3))
>p : Symbol(p, Decl(file.tsx, 7, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites3 = {{p}}
;
>rewrites3 : Symbol(rewrites3, Decl(file.tsx, 26, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 26, 25))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites4 = this}>
;
>rewrites4 : Symbol(rewrites4, Decl(file.tsx, 28, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>a : Symbol(a, Decl(file.tsx, 28, 22))
>this : Symbol(SomeClass, Decl(file.tsx, 20, 43))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites5 = ;
>rewrites5 : Symbol(rewrites5, Decl(file.tsx, 29, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>a : Symbol(a, Decl(file.tsx, 29, 22))
>p : Symbol(p, Decl(file.tsx, 7, 3))
>p : Symbol(p, Decl(file.tsx, 7, 3))
>p : Symbol(p, Decl(file.tsx, 7, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites6 = ;
>rewrites6 : Symbol(rewrites6, Decl(file.tsx, 30, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>a : Symbol(a, Decl(file.tsx, 30, 22))
>p : Symbol(p, Decl(file.tsx, 30, 27))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
}
}
var whitespace1 =
;
>whitespace1 : Symbol(whitespace1, Decl(file.tsx, 34, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var whitespace2 = {p}
;
>whitespace2 : Symbol(whitespace2, Decl(file.tsx, 35, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 7, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var whitespace3 =
>whitespace3 : Symbol(whitespace3, Decl(file.tsx, 36, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
{p}
>p : Symbol(p, Decl(file.tsx, 7, 3))
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxEmit2.symbols b/tests/baselines/reference/tsxEmit2.symbols
index eda1e5c3c9d79..637c3a778946c 100644
--- a/tests/baselines/reference/tsxEmit2.symbols
+++ b/tests/baselines/reference/tsxEmit2.symbols
@@ -22,44 +22,44 @@ var p1: any, p2: any, p3: any;
var spreads1 = {p2}
;
>spreads1 : Symbol(spreads1, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p1 : Symbol(p1, Decl(file.tsx, 7, 3))
>p2 : Symbol(p2, Decl(file.tsx, 7, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads2 = {p2}
;
>spreads2 : Symbol(spreads2, Decl(file.tsx, 9, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p1 : Symbol(p1, Decl(file.tsx, 7, 3))
>p2 : Symbol(p2, Decl(file.tsx, 7, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads3 = {p2}
;
>spreads3 : Symbol(spreads3, Decl(file.tsx, 10, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 10, 19))
>p3 : Symbol(p3, Decl(file.tsx, 7, 21))
>p1 : Symbol(p1, Decl(file.tsx, 7, 3))
>p2 : Symbol(p2, Decl(file.tsx, 7, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads4 = {p2}
;
>spreads4 : Symbol(spreads4, Decl(file.tsx, 11, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p1 : Symbol(p1, Decl(file.tsx, 7, 3))
>x : Symbol(x, Decl(file.tsx, 11, 27))
>p3 : Symbol(p3, Decl(file.tsx, 7, 21))
>p2 : Symbol(p2, Decl(file.tsx, 7, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads5 = {p2}
;
>spreads5 : Symbol(spreads5, Decl(file.tsx, 12, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 12, 19))
>p2 : Symbol(p2, Decl(file.tsx, 7, 12))
>p1 : Symbol(p1, Decl(file.tsx, 7, 3))
>y : Symbol(y, Decl(file.tsx, 12, 34))
>p3 : Symbol(p3, Decl(file.tsx, 7, 21))
>p2 : Symbol(p2, Decl(file.tsx, 7, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxFragmentPreserveEmit.symbols b/tests/baselines/reference/tsxFragmentPreserveEmit.symbols
index 2da8e928fdde9..b667919968e5d 100644
--- a/tests/baselines/reference/tsxFragmentPreserveEmit.symbols
+++ b/tests/baselines/reference/tsxFragmentPreserveEmit.symbols
@@ -22,19 +22,19 @@ declare var React: any;
< /*starting wrap*/ > /*ending wrap*/>; // comments in the tags
<>hi>; // text inside
<>hibye
>; // children
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
<>1<>2.12.2>3>; // nested fragments
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
<>#>; // # would cause scanning error if not in jsxtext
diff --git a/tests/baselines/reference/tsxFragmentReactEmit.symbols b/tests/baselines/reference/tsxFragmentReactEmit.symbols
index 9f0b0f7c41ad6..b569e98108b09 100644
--- a/tests/baselines/reference/tsxFragmentReactEmit.symbols
+++ b/tests/baselines/reference/tsxFragmentReactEmit.symbols
@@ -22,19 +22,19 @@ declare var React: any;
< /*starting wrap*/ > /*ending wrap*/>; // comments in the tags
<>hi>; // text inside
<>hibye
>; // children
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
<>1<>2.12.2>3>; // nested fragments
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->span : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>span : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
<>#>; // # would cause scanning error if not in jsxtext
diff --git a/tests/baselines/reference/tsxReactEmit1.symbols b/tests/baselines/reference/tsxReactEmit1.symbols
index cc4e653b76828..036fcf113731e 100644
--- a/tests/baselines/reference/tsxReactEmit1.symbols
+++ b/tests/baselines/reference/tsxReactEmit1.symbols
@@ -22,39 +22,39 @@ var p;
var selfClosed1 = ;
>selfClosed1 : Symbol(selfClosed1, Decl(file.tsx, 9, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var selfClosed2 = ;
>selfClosed2 : Symbol(selfClosed2, Decl(file.tsx, 10, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 10, 22))
var selfClosed3 = ;
>selfClosed3 : Symbol(selfClosed3, Decl(file.tsx, 11, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 11, 22))
var selfClosed4 = ;
>selfClosed4 : Symbol(selfClosed4, Decl(file.tsx, 12, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 12, 22))
>y : Symbol(y, Decl(file.tsx, 12, 28))
var selfClosed5 = ;
>selfClosed5 : Symbol(selfClosed5, Decl(file.tsx, 13, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 13, 22))
>y : Symbol(y, Decl(file.tsx, 13, 28))
var selfClosed6 = ;
>selfClosed6 : Symbol(selfClosed6, Decl(file.tsx, 14, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 14, 22))
>y : Symbol(y, Decl(file.tsx, 14, 30))
var selfClosed7 = ;
>selfClosed7 : Symbol(selfClosed7, Decl(file.tsx, 15, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 15, 22))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>y : Symbol(y, Decl(file.tsx, 15, 28))
@@ -62,38 +62,38 @@ var selfClosed7 = ;
var openClosed1 = ;
>openClosed1 : Symbol(openClosed1, Decl(file.tsx, 17, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed2 = foo
;
>openClosed2 : Symbol(openClosed2, Decl(file.tsx, 18, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 18, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed3 = {p}
;
>openClosed3 : Symbol(openClosed3, Decl(file.tsx, 19, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 19, 22))
>p : Symbol(p, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed4 = {p < p}
;
>openClosed4 : Symbol(openClosed4, Decl(file.tsx, 20, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 20, 22))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>p : Symbol(p, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var openClosed5 = {p > p}
;
>openClosed5 : Symbol(openClosed5, Decl(file.tsx, 21, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>n : Symbol(n, Decl(file.tsx, 21, 22))
>b : Symbol(b, Decl(file.tsx, 21, 28))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>p : Symbol(p, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
class SomeClass {
>SomeClass : Symbol(SomeClass, Decl(file.tsx, 21, 45))
@@ -103,67 +103,67 @@ class SomeClass {
var rewrites1 = {() => this}
;
>rewrites1 : Symbol(rewrites1, Decl(file.tsx, 25, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>this : Symbol(SomeClass, Decl(file.tsx, 21, 45))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites2 = {[p, ...p, p]}
;
>rewrites2 : Symbol(rewrites2, Decl(file.tsx, 26, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>p : Symbol(p, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites3 = {{p}}
;
>rewrites3 : Symbol(rewrites3, Decl(file.tsx, 27, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 27, 25))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites4 = this}>
;
>rewrites4 : Symbol(rewrites4, Decl(file.tsx, 29, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>a : Symbol(a, Decl(file.tsx, 29, 22))
>this : Symbol(SomeClass, Decl(file.tsx, 21, 45))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites5 = ;
>rewrites5 : Symbol(rewrites5, Decl(file.tsx, 30, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>a : Symbol(a, Decl(file.tsx, 30, 22))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>p : Symbol(p, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var rewrites6 = ;
>rewrites6 : Symbol(rewrites6, Decl(file.tsx, 31, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>a : Symbol(a, Decl(file.tsx, 31, 22))
>p : Symbol(p, Decl(file.tsx, 31, 27))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
}
}
var whitespace1 =
;
>whitespace1 : Symbol(whitespace1, Decl(file.tsx, 35, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var whitespace2 = {p}
;
>whitespace2 : Symbol(whitespace2, Decl(file.tsx, 36, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var whitespace3 =
>whitespace3 : Symbol(whitespace3, Decl(file.tsx, 37, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
{p}
>p : Symbol(p, Decl(file.tsx, 8, 3))
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxReactEmit2.symbols b/tests/baselines/reference/tsxReactEmit2.symbols
index 22c21c14e5b61..b119f4e86b401 100644
--- a/tests/baselines/reference/tsxReactEmit2.symbols
+++ b/tests/baselines/reference/tsxReactEmit2.symbols
@@ -24,44 +24,44 @@ var p1: any, p2: any, p3: any;
var spreads1 = {p2}
;
>spreads1 : Symbol(spreads1, Decl(file.tsx, 9, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p1 : Symbol(p1, Decl(file.tsx, 8, 3))
>p2 : Symbol(p2, Decl(file.tsx, 8, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads2 = {p2}
;
>spreads2 : Symbol(spreads2, Decl(file.tsx, 10, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p1 : Symbol(p1, Decl(file.tsx, 8, 3))
>p2 : Symbol(p2, Decl(file.tsx, 8, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads3 = {p2}
;
>spreads3 : Symbol(spreads3, Decl(file.tsx, 11, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 11, 19))
>p3 : Symbol(p3, Decl(file.tsx, 8, 21))
>p1 : Symbol(p1, Decl(file.tsx, 8, 3))
>p2 : Symbol(p2, Decl(file.tsx, 8, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads4 = {p2}
;
>spreads4 : Symbol(spreads4, Decl(file.tsx, 12, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p1 : Symbol(p1, Decl(file.tsx, 8, 3))
>x : Symbol(x, Decl(file.tsx, 12, 27))
>p3 : Symbol(p3, Decl(file.tsx, 8, 21))
>p2 : Symbol(p2, Decl(file.tsx, 8, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var spreads5 = {p2}
;
>spreads5 : Symbol(spreads5, Decl(file.tsx, 13, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 13, 19))
>p2 : Symbol(p2, Decl(file.tsx, 8, 12))
>p1 : Symbol(p1, Decl(file.tsx, 8, 3))
>y : Symbol(y, Decl(file.tsx, 13, 34))
>p3 : Symbol(p3, Decl(file.tsx, 8, 21))
>p2 : Symbol(p2, Decl(file.tsx, 8, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxReactEmit4.symbols b/tests/baselines/reference/tsxReactEmit4.symbols
index a78763c0e22b9..f22e9b44ce3b1 100644
--- a/tests/baselines/reference/tsxReactEmit4.symbols
+++ b/tests/baselines/reference/tsxReactEmit4.symbols
@@ -22,17 +22,17 @@ var p: any;
var openClosed1 =
>openClosed1 : Symbol(openClosed1, Decl(file.tsx, 9, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
{blah}
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Should emit React.__spread({}, p, {x: 0})
var spread1 = ;
>spread1 : Symbol(spread1, Decl(file.tsx, 16, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 8, 3))
>x : Symbol(x, Decl(file.tsx, 16, 25))
diff --git a/tests/baselines/reference/tsxReactEmit5.symbols b/tests/baselines/reference/tsxReactEmit5.symbols
index e72bcd941c265..76db22e9d1613 100644
--- a/tests/baselines/reference/tsxReactEmit5.symbols
+++ b/tests/baselines/reference/tsxReactEmit5.symbols
@@ -30,7 +30,7 @@ var foo: any;
var spread1 = ;
>spread1 : Symbol(spread1, Decl(react-consumer.tsx, 4, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(react-consumer.tsx, 4, 18))
>foo : Symbol(foo, Decl(react-consumer.tsx, 3, 3))
>y : Symbol(y, Decl(react-consumer.tsx, 4, 32))
diff --git a/tests/baselines/reference/tsxReactEmit6.symbols b/tests/baselines/reference/tsxReactEmit6.symbols
index 87b536172c359..02927cb0966f5 100644
--- a/tests/baselines/reference/tsxReactEmit6.symbols
+++ b/tests/baselines/reference/tsxReactEmit6.symbols
@@ -33,7 +33,7 @@ namespace M {
var spread1 = ;
>spread1 : Symbol(spread1, Decl(react-consumer.tsx, 8, 4))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(react-consumer.tsx, 8, 19))
>foo : Symbol(foo, Decl(react-consumer.tsx, 7, 4))
>y : Symbol(y, Decl(react-consumer.tsx, 8, 33))
@@ -41,8 +41,8 @@ namespace M {
// Quotes
var x = This "quote" thing
;
>x : Symbol(x, Decl(react-consumer.tsx, 11, 4))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
}
diff --git a/tests/baselines/reference/tsxReactEmit7.symbols b/tests/baselines/reference/tsxReactEmit7.symbols
index ae9747ab9f39e..efb7e1a6836fc 100644
--- a/tests/baselines/reference/tsxReactEmit7.symbols
+++ b/tests/baselines/reference/tsxReactEmit7.symbols
@@ -17,56 +17,56 @@ declare module JSX {
var m = ;
>m : Symbol(m, Decl(file.tsx, 7, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x-y : Symbol(x-y, Decl(file.tsx, 7, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var n = ;
>n : Symbol(n, Decl(file.tsx, 8, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>xx-y : Symbol(xx-y, Decl(file.tsx, 8, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var o = ;
>o : Symbol(o, Decl(file.tsx, 9, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x-yy : Symbol(x-yy, Decl(file.tsx, 9, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var p = ;
>p : Symbol(p, Decl(file.tsx, 10, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>xx-yy : Symbol(xx-yy, Decl(file.tsx, 10, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Investigation
var a = ;
>a : Symbol(a, Decl(file.tsx, 13, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 13, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var b = ;
>b : Symbol(b, Decl(file.tsx, 14, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>xx : Symbol(xx, Decl(file.tsx, 14, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var c = ;
>c : Symbol(c, Decl(file.tsx, 15, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>xxx : Symbol(xxx, Decl(file.tsx, 15, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var d = ;
>d : Symbol(d, Decl(file.tsx, 16, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>xxxx : Symbol(xxxx, Decl(file.tsx, 16, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
var e = ;
>e : Symbol(e, Decl(file.tsx, 17, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>xxxxx : Symbol(xxxxx, Decl(file.tsx, 17, 12))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxReactEmitEntities.symbols b/tests/baselines/reference/tsxReactEmitEntities.symbols
index 4b8e4e5f2a423..7f243f7858a62 100644
--- a/tests/baselines/reference/tsxReactEmitEntities.symbols
+++ b/tests/baselines/reference/tsxReactEmitEntities.symbols
@@ -18,42 +18,42 @@ declare var React: any;
>React : Symbol(React, Decl(file.tsx, 6, 11))
Dot goes here: · ¬AnEntity;
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
Be careful of "-ed strings!
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
{{braces}}
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Escapes do nothing
\n
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Also works in string literal attributes
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>attr : Symbol(attr, Decl(file.tsx, 15, 4))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Does not happen for a string literal that happens to be inside an attribute (and escapes then work)
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>attr : Symbol(attr, Decl(file.tsx, 17, 4))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Preserves single quotes
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>attr : Symbol(attr, Decl(file.tsx, 19, 4))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// https://github.com/microsoft/TypeScript/issues/35732
🐈🐕🐇🐑
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxReactEmitWhitespace.symbols b/tests/baselines/reference/tsxReactEmitWhitespace.symbols
index 47d42df3cd6c6..2746b9763d7e7 100644
--- a/tests/baselines/reference/tsxReactEmitWhitespace.symbols
+++ b/tests/baselines/reference/tsxReactEmitWhitespace.symbols
@@ -25,88 +25,88 @@ var p = 0;
// Emit " "
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit " ", p, " "
{p}
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
>p : Symbol(p, Decl(file.tsx, 11, 3))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit only p
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
{p}
>p : Symbol(p, Decl(file.tsx, 11, 3))
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit only p
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
{p}
>p : Symbol(p, Decl(file.tsx, 11, 3))
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit " 3"
3
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit " 3 "
3
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit "3"
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
3
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit no args
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit "foo bar"
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
foo
bar
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit "hello\\ world"
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
hello\
world
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Emit " a b c d "
a
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
b c
d
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxReactEmitWhitespace2.symbols b/tests/baselines/reference/tsxReactEmitWhitespace2.symbols
index f8a9e57c667c7..2df31b45ee0c7 100644
--- a/tests/baselines/reference/tsxReactEmitWhitespace2.symbols
+++ b/tests/baselines/reference/tsxReactEmitWhitespace2.symbols
@@ -19,22 +19,22 @@ declare var React: any;
// Emit ' word' in the last string
word code
word
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->code : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->code : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>code : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>code : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// Same here
code
word
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->code : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->code : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>code : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>code : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
// And here
word
;
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->code : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
->div : Symbol(JSX.IntrinsicElements, Decl(file.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>code : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(file.tsx, 2, 30))
diff --git a/tests/baselines/reference/tsxSpreadChildren.symbols b/tests/baselines/reference/tsxSpreadChildren.symbols
index d712d02d709f1..ae5e83619b057 100644
--- a/tests/baselines/reference/tsxSpreadChildren.symbols
+++ b/tests/baselines/reference/tsxSpreadChildren.symbols
@@ -40,7 +40,7 @@ function Todo(prop: { key: number, todo: string }) {
>todo : Symbol(todo, Decl(tsxSpreadChildren.tsx, 15, 34))
return {prop.key.toString() + prop.todo}
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildren.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildren.tsx, 2, 30))
>prop.key.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
>prop.key : Symbol(key, Decl(tsxSpreadChildren.tsx, 15, 21))
>prop : Symbol(prop, Decl(tsxSpreadChildren.tsx, 15, 14))
@@ -49,7 +49,7 @@ function Todo(prop: { key: number, todo: string }) {
>prop.todo : Symbol(todo, Decl(tsxSpreadChildren.tsx, 15, 34))
>prop : Symbol(prop, Decl(tsxSpreadChildren.tsx, 15, 14))
>todo : Symbol(todo, Decl(tsxSpreadChildren.tsx, 15, 34))
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildren.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildren.tsx, 2, 30))
}
function TodoList({ todos }: TodoListProps) {
>TodoList : Symbol(TodoList, Decl(tsxSpreadChildren.tsx, 17, 1))
@@ -57,7 +57,7 @@ function TodoList({ todos }: TodoListProps) {
>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildren.tsx, 11, 1))
return
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildren.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildren.tsx, 2, 30))
{...todos.map(todo => )}
>todos.map : Symbol(Array.map, Decl(lib.es5.d.ts, --, --))
@@ -75,7 +75,7 @@ function TodoList({ todos }: TodoListProps) {
>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildren.tsx, 9, 15))
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildren.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildren.tsx, 2, 30))
}
let x: TodoListProps;
>x : Symbol(x, Decl(tsxSpreadChildren.tsx, 23, 3))
diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).symbols b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).symbols
index 3df2056b35c28..4483c730fdb69 100644
--- a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).symbols
+++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es2015).symbols
@@ -40,7 +40,7 @@ function Todo(prop: { key: number, todo: string }) {
>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34))
return {prop.key.toString() + prop.todo}
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
>prop.key.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
>prop.key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21))
>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14))
@@ -49,7 +49,7 @@ function Todo(prop: { key: number, todo: string }) {
>prop.todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34))
>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14))
>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34))
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
}
function TodoList({ todos }: TodoListProps) {
>TodoList : Symbol(TodoList, Decl(tsxSpreadChildrenInvalidType.tsx, 17, 1))
@@ -57,7 +57,7 @@ function TodoList({ todos }: TodoListProps) {
>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1))
return
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
{...}
>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1))
@@ -71,7 +71,7 @@ function TodoList({ todos }: TodoListProps) {
>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15))
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
}
function TodoListNoError({ todos }: TodoListProps) {
>TodoListNoError : Symbol(TodoListNoError, Decl(tsxSpreadChildrenInvalidType.tsx, 22, 1))
@@ -80,7 +80,7 @@ function TodoListNoError({ todos }: TodoListProps) {
// any is not checked
return
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
{...( as any)}
>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1))
@@ -94,7 +94,7 @@ function TodoListNoError({ todos }: TodoListProps) {
>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15))
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
}
let x: TodoListProps;
>x : Symbol(x, Decl(tsxSpreadChildrenInvalidType.tsx, 29, 3))
diff --git a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).symbols b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).symbols
index 3df2056b35c28..4483c730fdb69 100644
--- a/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).symbols
+++ b/tests/baselines/reference/tsxSpreadChildrenInvalidType(jsx=react,target=es5).symbols
@@ -40,7 +40,7 @@ function Todo(prop: { key: number, todo: string }) {
>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34))
return {prop.key.toString() + prop.todo}
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
>prop.key.toString : Symbol(Number.toString, Decl(lib.es5.d.ts, --, --))
>prop.key : Symbol(key, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 21))
>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14))
@@ -49,7 +49,7 @@ function Todo(prop: { key: number, todo: string }) {
>prop.todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34))
>prop : Symbol(prop, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 14))
>todo : Symbol(todo, Decl(tsxSpreadChildrenInvalidType.tsx, 15, 34))
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
}
function TodoList({ todos }: TodoListProps) {
>TodoList : Symbol(TodoList, Decl(tsxSpreadChildrenInvalidType.tsx, 17, 1))
@@ -57,7 +57,7 @@ function TodoList({ todos }: TodoListProps) {
>TodoListProps : Symbol(TodoListProps, Decl(tsxSpreadChildrenInvalidType.tsx, 11, 1))
return
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
{...}
>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1))
@@ -71,7 +71,7 @@ function TodoList({ todos }: TodoListProps) {
>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15))
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
}
function TodoListNoError({ todos }: TodoListProps) {
>TodoListNoError : Symbol(TodoListNoError, Decl(tsxSpreadChildrenInvalidType.tsx, 22, 1))
@@ -80,7 +80,7 @@ function TodoListNoError({ todos }: TodoListProps) {
// any is not checked
return
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
{...( as any)}
>Todo : Symbol(Todo, Decl(tsxSpreadChildrenInvalidType.tsx, 14, 1))
@@ -94,7 +94,7 @@ function TodoListNoError({ todos }: TodoListProps) {
>todo : Symbol(TodoProp.todo, Decl(tsxSpreadChildrenInvalidType.tsx, 9, 15))
;
->div : Symbol(JSX.IntrinsicElements, Decl(tsxSpreadChildrenInvalidType.tsx, 1, 22))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(tsxSpreadChildrenInvalidType.tsx, 2, 30))
}
let x: TodoListProps;
>x : Symbol(x, Decl(tsxSpreadChildrenInvalidType.tsx, 29, 3))
diff --git a/tests/baselines/reference/tsxSpreadInvalidType.symbols b/tests/baselines/reference/tsxSpreadInvalidType.symbols
index 223812737e150..99f4dcbd52900 100644
--- a/tests/baselines/reference/tsxSpreadInvalidType.symbols
+++ b/tests/baselines/reference/tsxSpreadInvalidType.symbols
@@ -21,16 +21,16 @@ const c = undefined;
const d =
>d : Symbol(d, Decl(a.tsx, 8, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 0, 15))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 1, 40))
>a : Symbol(a, Decl(a.tsx, 4, 5))
const e =
>e : Symbol(e, Decl(a.tsx, 9, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 0, 15))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 1, 40))
>b : Symbol(b, Decl(a.tsx, 5, 5))
const f =
>f : Symbol(f, Decl(a.tsx, 10, 5))
->div : Symbol(JSX.IntrinsicElements, Decl(a.tsx, 0, 15))
+>div : Symbol(JSX.IntrinsicElements.__index, Decl(a.tsx, 1, 40))
>c : Symbol(c, Decl(a.tsx, 6, 5))
diff --git a/tests/cases/compiler/jsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.tsx b/tests/cases/compiler/jsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.tsx
new file mode 100644
index 0000000000000..9c344314a42e7
--- /dev/null
+++ b/tests/cases/compiler/jsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.tsx
@@ -0,0 +1,17 @@
+// @jsx: preserve
+// @noEmit: true
+
+// https://github.com/microsoft/TypeScript/issues/55240
+
+declare namespace JSX {
+ interface IntrinsicElements {
+ [k: `foo${string}`]: { prop: string };
+ [k: `foobar${string}`]: { prop: 'literal' };
+ }
+}
+
+;
+;
+
+;
+;
diff --git a/tests/cases/fourslash/quickInfoOnJsxIntrinsicDeclaredUsingCatchCallIndexSignature.ts b/tests/cases/fourslash/quickInfoOnJsxIntrinsicDeclaredUsingCatchCallIndexSignature.ts
new file mode 100644
index 0000000000000..ad08b4974ddbd
--- /dev/null
+++ b/tests/cases/fourslash/quickInfoOnJsxIntrinsicDeclaredUsingCatchCallIndexSignature.ts
@@ -0,0 +1,13 @@
+///
+
+// https://github.com/microsoft/TypeScript/issues/5984
+
+// @jsx: react
+
+// @filename: /a.tsx
+//// declare namespace JSX {
+//// interface IntrinsicElements { [elemName: string]: any; }
+//// }
+//// **/div class="democlass" />;
+
+verify.baselineQuickInfo();
diff --git a/tests/cases/fourslash/quickInfoOnJsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.ts b/tests/cases/fourslash/quickInfoOnJsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.ts
new file mode 100644
index 0000000000000..a59ee0d8e16d8
--- /dev/null
+++ b/tests/cases/fourslash/quickInfoOnJsxIntrinsicDeclaredUsingTemplateLiteralTypeSignatures.ts
@@ -0,0 +1,17 @@
+///
+
+// https://github.com/microsoft/TypeScript/issues/55240
+
+// @jsx: react
+
+// @filename: /a.tsx
+//// declare namespace JSX {
+//// interface IntrinsicElements {
+//// [k: `foo${string}`]: any;
+//// [k: `foobar${string}`]: any;
+//// }
+//// }
+//// *1*/foobaz />;
+//// *2*/foobarbaz />;
+
+verify.baselineQuickInfo();