Skip to content

Commit d5b883a

Browse files
committed
Add case for colons at ends of identifier
1 parent 7000ca7 commit d5b883a

5 files changed

+113
-1
lines changed

tests/baselines/reference/jsxNamespacePrefixInName.errors.txt

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,21 @@ tests/cases/compiler/jsxNamespacePrefixInName.tsx(11,32): error TS1003: Identifi
1515
tests/cases/compiler/jsxNamespacePrefixInName.tsx(11,68): error TS1005: '>' expected.
1616
tests/cases/compiler/jsxNamespacePrefixInName.tsx(11,73): error TS1005: ',' expected.
1717
tests/cases/compiler/jsxNamespacePrefixInName.tsx(11,74): error TS1109: Expression expected.
18+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(21,21): error TS1003: Identifier expected.
19+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(22,26): error TS1003: Identifier expected.
20+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(22,27): error TS1003: Identifier expected.
21+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(22,29): error TS1005: '...' expected.
22+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(24,21): error TS1109: Expression expected.
23+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(24,22): error TS1109: Expression expected.
24+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(24,25): error TS1005: ',' expected.
25+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(24,30): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
26+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(24,38): error TS1005: ':' expected.
27+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(24,41): error TS1109: Expression expected.
28+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(24,42): error TS1109: Expression expected.
29+
tests/cases/compiler/jsxNamespacePrefixInName.tsx(25,24): error TS1003: Identifier expected.
1830

1931

20-
==== tests/cases/compiler/jsxNamespacePrefixInName.tsx (17 errors) ====
32+
==== tests/cases/compiler/jsxNamespacePrefixInName.tsx (29 errors) ====
2133
var justElement1 = <a:element />;
2234
var justElement2 = <a:element></a:element>;
2335
var justElement3 = <a:element attr={"value"}></a:element>;
@@ -71,4 +83,34 @@ tests/cases/compiler/jsxNamespacePrefixInName.tsx(11,74): error TS1109: Expressi
7183
var both1 = <a:element a:attr={"value"} />;
7284
var both2 = <a:element k:attr={"value"}></a:element>;
7385
var both3 = <a:element a:attr={"value"}>{"text"}</a:element>;
86+
87+
var endOfIdent1 = <a: attr={"value"} />;
88+
~
89+
!!! error TS1003: Identifier expected.
90+
var endOfIdent2 = <a attr:={"value"} />;
91+
~
92+
!!! error TS1003: Identifier expected.
93+
~
94+
!!! error TS1003: Identifier expected.
95+
~~~~~~~
96+
!!! error TS1005: '...' expected.
97+
98+
var beginOfIdent1 = <:a attr={"value"} />;
99+
~
100+
!!! error TS1109: Expression expected.
101+
~
102+
!!! error TS1109: Expression expected.
103+
~~~~
104+
!!! error TS1005: ',' expected.
105+
~~~~~~~~~
106+
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.
107+
~
108+
!!! error TS1005: ':' expected.
109+
~
110+
!!! error TS1109: Expression expected.
111+
~
112+
!!! error TS1109: Expression expected.
113+
var beginOfIdent1 = <a :attr={"value"} />;
114+
~
115+
!!! error TS1003: Identifier expected.
74116

tests/baselines/reference/jsxNamespacePrefixInName.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ var justAttribute3 = <element a:attr={"value"}>{"text"}</element>;
1818
var both1 = <a:element a:attr={"value"} />;
1919
var both2 = <a:element k:attr={"value"}></a:element>;
2020
var both3 = <a:element a:attr={"value"}>{"text"}</a:element>;
21+
22+
var endOfIdent1 = <a: attr={"value"} />;
23+
var endOfIdent2 = <a attr:={"value"} />;
24+
25+
var beginOfIdent1 = <:a attr={"value"} />;
26+
var beginOfIdent1 = <a :attr={"value"} />;
2127

2228

2329
//// [jsxNamespacePrefixInName.jsx]
@@ -41,3 +47,7 @@ var justAttribute3 = <element a:attr={"value"}>{"text"}</element>;
4147
var both1 = <a:element a:attr={"value"}/>;
4248
var both2 = <a:element k:attr={"value"}></a:element>;
4349
var both3 = <a:element a:attr={"value"}>{"text"}</a:element>;
50+
var endOfIdent1 = <a attr={"value"}/>;
51+
var endOfIdent2 = <a attr {..."value"}/>;
52+
var beginOfIdent1 = < , a, attr = { "value": } / > ;
53+
var beginOfIdent1 = <a attr={"value"}/>;

tests/baselines/reference/jsxNamespacePrefixInName.symbols

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,21 @@ var both3 = <a:element a:attr={"value"}>{"text"}</a:element>;
6666
>both3 : Symbol(both3, Decl(jsxNamespacePrefixInName.tsx, 18, 3))
6767
>a:attr : Symbol(a:attr, Decl(jsxNamespacePrefixInName.tsx, 18, 22))
6868

69+
var endOfIdent1 = <a: attr={"value"} />;
70+
>endOfIdent1 : Symbol(endOfIdent1, Decl(jsxNamespacePrefixInName.tsx, 20, 3))
71+
>attr : Symbol(attr, Decl(jsxNamespacePrefixInName.tsx, 20, 21))
72+
73+
var endOfIdent2 = <a attr:={"value"} />;
74+
>endOfIdent2 : Symbol(endOfIdent2, Decl(jsxNamespacePrefixInName.tsx, 21, 3))
75+
>attr : Symbol(attr, Decl(jsxNamespacePrefixInName.tsx, 21, 20))
76+
77+
var beginOfIdent1 = <:a attr={"value"} />;
78+
>beginOfIdent1 : Symbol(beginOfIdent1, Decl(jsxNamespacePrefixInName.tsx, 23, 3), Decl(jsxNamespacePrefixInName.tsx, 24, 3))
79+
>a : Symbol(a, Decl(jsxNamespacePrefixInName.tsx, 23, 22))
80+
>attr : Symbol(attr, Decl(jsxNamespacePrefixInName.tsx, 23, 23))
81+
>"value" : Symbol("value", Decl(jsxNamespacePrefixInName.tsx, 23, 30))
82+
83+
var beginOfIdent1 = <a :attr={"value"} />;
84+
>beginOfIdent1 : Symbol(beginOfIdent1, Decl(jsxNamespacePrefixInName.tsx, 23, 3), Decl(jsxNamespacePrefixInName.tsx, 24, 3))
85+
>attr : Symbol(attr, Decl(jsxNamespacePrefixInName.tsx, 24, 24))
86+

tests/baselines/reference/jsxNamespacePrefixInName.types

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,39 @@ var both3 = <a:element a:attr={"value"}>{"text"}</a:element>;
138138
>"text" : "text"
139139
>a:element : any
140140

141+
var endOfIdent1 = <a: attr={"value"} />;
142+
>endOfIdent1 : any
143+
><a: attr={"value"} /> : any
144+
>a : any
145+
>attr : string
146+
>"value" : "value"
147+
148+
var endOfIdent2 = <a attr:={"value"} />;
149+
>endOfIdent2 : any
150+
><a attr:={"value"} /> : any
151+
>a : any
152+
>attr : true
153+
>"value" : "value"
154+
155+
var beginOfIdent1 = <:a attr={"value"} />;
156+
>beginOfIdent1 : boolean
157+
>< : boolean
158+
> : any
159+
> : any
160+
>a : any
161+
>attr : boolean
162+
>{"value"} /> : boolean
163+
>{"value"} / : number
164+
>{"value"} : { value: any; }
165+
>"value" : any
166+
> : any
167+
> : any
168+
> : any
169+
170+
var beginOfIdent1 = <a :attr={"value"} />;
171+
>beginOfIdent1 : boolean
172+
><a :attr={"value"} /> : any
173+
>a : any
174+
>attr : string
175+
>"value" : "value"
176+

tests/cases/compiler/jsxNamespacePrefixInName.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,9 @@ var justAttribute3 = <element a:attr={"value"}>{"text"}</element>;
1919
var both1 = <a:element a:attr={"value"} />;
2020
var both2 = <a:element k:attr={"value"}></a:element>;
2121
var both3 = <a:element a:attr={"value"}>{"text"}</a:element>;
22+
23+
var endOfIdent1 = <a: attr={"value"} />;
24+
var endOfIdent2 = <a attr:={"value"} />;
25+
26+
var beginOfIdent1 = <:a attr={"value"} />;
27+
var beginOfIdent1 = <a :attr={"value"} />;

0 commit comments

Comments
 (0)