Skip to content

Commit b67cba6

Browse files
committed
add jsdocImportTypeTag parsing tests
1 parent 953e54b commit b67cba6

File tree

5 files changed

+221
-1
lines changed

5 files changed

+221
-1
lines changed

src/compiler/parser.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9458,7 +9458,7 @@ namespace Parser {
94589458
}
94599459

94609460
function parseImportTypeTag(start: number, tagName: Identifier, margin: number, indentText: string): JSDocImportTypeTag {
9461-
const afterImportTypeTagPos = scanner.getTokenEnd();
9461+
const afterImportTypeTagPos = scanner.getTokenFullStart();
94629462

94639463
let identifier: Identifier | undefined;
94649464
if (isIdentifier()) {

src/testRunner/unittests/jsDocParsing.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,34 @@ describe("unittests:: JSDocParsing", () => {
204204
*/`,
205205
);
206206

207+
parsesCorrectly(
208+
"importTypeTag1",
209+
`/**
210+
* @importType foo from 'foo'
211+
*/`,
212+
);
213+
214+
parsesCorrectly(
215+
"importTypeTag2",
216+
`/**
217+
* @importType { foo } from 'foo'
218+
*/`,
219+
);
220+
221+
parsesCorrectly(
222+
"importTypeTag3",
223+
`/**
224+
* @importType * as types from 'foo'
225+
*/`,
226+
);
227+
228+
parsesCorrectly(
229+
"importTypeTag3",
230+
`/**
231+
* @importType * as types from 'foo' comment part
232+
*/`,
233+
);
234+
207235
parsesCorrectly(
208236
"returnTag1",
209237
`/**
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{
2+
"kind": "JSDoc",
3+
"pos": 0,
4+
"end": 39,
5+
"flags": "JSDoc",
6+
"modifierFlagsCache": 0,
7+
"transformFlags": 0,
8+
"tags": {
9+
"0": {
10+
"kind": "JSDocImportTypeTag",
11+
"pos": 8,
12+
"end": 34,
13+
"modifierFlagsCache": 0,
14+
"transformFlags": 0,
15+
"tagName": {
16+
"kind": "Identifier",
17+
"pos": 9,
18+
"end": 19,
19+
"modifierFlagsCache": 0,
20+
"transformFlags": 0,
21+
"escapedText": "importType"
22+
},
23+
"importClause": {
24+
"kind": "ImportClause",
25+
"pos": 20,
26+
"end": 23,
27+
"modifierFlagsCache": 0,
28+
"transformFlags": 1,
29+
"isTypeOnly": true,
30+
"name": {
31+
"kind": "Identifier",
32+
"pos": 20,
33+
"end": 23,
34+
"modifierFlagsCache": 0,
35+
"transformFlags": 0,
36+
"escapedText": "foo"
37+
}
38+
},
39+
"moduleSpecifier": {
40+
"kind": "StringLiteral",
41+
"pos": 28,
42+
"end": 34,
43+
"modifierFlagsCache": 0,
44+
"transformFlags": 0,
45+
"text": "foo"
46+
}
47+
},
48+
"length": 1,
49+
"pos": 8,
50+
"end": 34,
51+
"hasTrailingComma": false,
52+
"transformFlags": 0
53+
}
54+
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
{
2+
"kind": "JSDoc",
3+
"pos": 0,
4+
"end": 43,
5+
"flags": "JSDoc",
6+
"modifierFlagsCache": 0,
7+
"transformFlags": 0,
8+
"tags": {
9+
"0": {
10+
"kind": "JSDocImportTypeTag",
11+
"pos": 8,
12+
"end": 38,
13+
"modifierFlagsCache": 0,
14+
"transformFlags": 0,
15+
"tagName": {
16+
"kind": "Identifier",
17+
"pos": 9,
18+
"end": 19,
19+
"modifierFlagsCache": 0,
20+
"transformFlags": 0,
21+
"escapedText": "importType"
22+
},
23+
"importClause": {
24+
"kind": "ImportClause",
25+
"pos": 20,
26+
"end": 27,
27+
"modifierFlagsCache": 0,
28+
"transformFlags": 1,
29+
"isTypeOnly": true,
30+
"namedBindings": {
31+
"kind": "NamedImports",
32+
"pos": 20,
33+
"end": 27,
34+
"modifierFlagsCache": 0,
35+
"transformFlags": 0,
36+
"elements": {
37+
"0": {
38+
"kind": "ImportSpecifier",
39+
"pos": 21,
40+
"end": 25,
41+
"modifierFlagsCache": 0,
42+
"transformFlags": 0,
43+
"isTypeOnly": false,
44+
"name": {
45+
"kind": "Identifier",
46+
"pos": 21,
47+
"end": 25,
48+
"modifierFlagsCache": 0,
49+
"transformFlags": 0,
50+
"escapedText": "foo"
51+
}
52+
},
53+
"length": 1,
54+
"pos": 21,
55+
"end": 25,
56+
"hasTrailingComma": false,
57+
"transformFlags": 0
58+
}
59+
}
60+
},
61+
"moduleSpecifier": {
62+
"kind": "StringLiteral",
63+
"pos": 32,
64+
"end": 38,
65+
"modifierFlagsCache": 0,
66+
"transformFlags": 0,
67+
"text": "foo"
68+
}
69+
},
70+
"length": 1,
71+
"pos": 8,
72+
"end": 38,
73+
"hasTrailingComma": false,
74+
"transformFlags": 0
75+
}
76+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
{
2+
"kind": "JSDoc",
3+
"pos": 0,
4+
"end": 59,
5+
"flags": "JSDoc",
6+
"modifierFlagsCache": 0,
7+
"transformFlags": 0,
8+
"tags": {
9+
"0": {
10+
"kind": "JSDocImportTypeTag",
11+
"pos": 8,
12+
"end": 57,
13+
"modifierFlagsCache": 0,
14+
"transformFlags": 0,
15+
"tagName": {
16+
"kind": "Identifier",
17+
"pos": 9,
18+
"end": 19,
19+
"modifierFlagsCache": 0,
20+
"transformFlags": 0,
21+
"escapedText": "importType"
22+
},
23+
"comment": "comment part",
24+
"importClause": {
25+
"kind": "ImportClause",
26+
"pos": 20,
27+
"end": 30,
28+
"modifierFlagsCache": 0,
29+
"transformFlags": 1,
30+
"isTypeOnly": true,
31+
"namedBindings": {
32+
"kind": "NamespaceImport",
33+
"pos": 20,
34+
"end": 30,
35+
"modifierFlagsCache": 0,
36+
"transformFlags": 0,
37+
"name": {
38+
"kind": "Identifier",
39+
"pos": 24,
40+
"end": 30,
41+
"modifierFlagsCache": 0,
42+
"transformFlags": 0,
43+
"escapedText": "types"
44+
}
45+
}
46+
},
47+
"moduleSpecifier": {
48+
"kind": "StringLiteral",
49+
"pos": 35,
50+
"end": 41,
51+
"modifierFlagsCache": 0,
52+
"transformFlags": 0,
53+
"text": "foo"
54+
}
55+
},
56+
"length": 1,
57+
"pos": 8,
58+
"end": 57,
59+
"hasTrailingComma": false,
60+
"transformFlags": 0
61+
}
62+
}

0 commit comments

Comments
 (0)