Skip to content

Commit e9f6a0a

Browse files
simonseyockbrettz9
authored andcommitted
Update parser
1 parent 15bc934 commit e9f6a0a

File tree

3 files changed

+14
-31
lines changed

3 files changed

+14
-31
lines changed

src/rules/checkTypes.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,32 +20,32 @@ const adjustNames = (type, preferred, isGenericMatch, nodeName, node, parentNode
2020
let ret = preferred;
2121
if (isGenericMatch) {
2222
if (preferred === '[]') {
23-
parentNode.meta.brackets = '[]';
23+
parentNode.meta.brackets = 'square';
2424
parentNode.meta.dot = false;
2525
ret = 'Array';
2626
} else {
2727
const dotBracketEnd = preferred.match(/\.(?:<>)?$/u);
2828
if (dotBracketEnd) {
29-
parentNode.meta.brackets = '<>';
29+
parentNode.meta.brackets = 'angle';
3030
parentNode.meta.dot = true;
3131
ret = preferred.slice(0, -dotBracketEnd[0].length);
3232
} else {
3333
const bracketEnd = preferred.endsWith('<>');
3434
if (bracketEnd) {
35-
parentNode.meta.brackets = '<>';
35+
parentNode.meta.brackets = 'angle';
3636
parentNode.meta.dot = false;
3737
ret = preferred.slice(0, -2);
3838
} else if (
39-
parentNode.meta.brackets === '[]' &&
39+
parentNode.meta.brackets === 'square' &&
4040
(nodeName === '[]' || nodeName === 'Array')
4141
) {
42-
parentNode.meta.brackets = '<>';
42+
parentNode.meta.brackets = 'angle';
4343
parentNode.meta.dot = false;
4444
}
4545
}
4646
}
47-
} else if (type === 'ANY') {
48-
node.type = 'NAME';
47+
} else if (type === 'JsdocTypeAny') {
48+
node.type = 'JsdocTypeName';
4949
}
5050
node.value = ret.replace(/(?:\.|<>|\.<>|\[\])$/u, '');
5151

@@ -79,12 +79,12 @@ export default iterateJsdoc(({
7979
let isGenericMatch;
8080
let typeName = nodeName;
8181
if (Object.keys(preferredTypes).length) {
82-
const isNameOfGeneric = parentNode !== undefined && parentNode.type === 'GENERIC' && property === 'left';
82+
const isNameOfGeneric = parentNode !== undefined && parentNode.type === 'JsdocTypeGeneric' && property === 'left';
8383
if (unifyParentAndChildTypeChecks || isNameOfGeneric) {
8484
const brackets = parentNode?.meta?.brackets;
8585
const dot = parentNode?.meta?.dot;
8686

87-
if (brackets === '<>') {
87+
if (brackets === 'angle') {
8888
const checkPostFixes = dot ? ['.', '.<>'] : ['<>'];
8989
isGenericMatch = checkPostFixes.some(checkPostFix => {
9090
if (preferredTypes?.[nodeName + checkPostFix] !== undefined) {
@@ -96,7 +96,7 @@ export default iterateJsdoc(({
9696
}
9797

9898
if (!isGenericMatch && property) {
99-
const checkPostFixes = dot ? ['.', '.<>'] : [brackets]
99+
const checkPostFixes = dot ? ['.', '.<>'] : [brackets === 'angle' ? '<>' : '[]']
100100

101101
isGenericMatch = checkPostFixes.some(checkPostFix => {
102102
if (preferredTypes?.[checkPostFix] !== undefined) {
@@ -132,10 +132,10 @@ export default iterateJsdoc(({
132132

133133
traverse(typeAst, (node, parentNode, property) => {
134134
const {type, value} = node;
135-
if (!['NAME', 'ANY'].includes(type)) {
135+
if (!['JsdocTypeName', 'JsdocTypeAny'].includes(type)) {
136136
return;
137137
}
138-
let nodeName = type === 'ANY' ? '*' : value;
138+
let nodeName = type === 'JsdocTypeAny' ? '*' : value;
139139

140140
const [hasMatchingPreferredType, typeName, isGenericMatch] = getPreferredTypeInfo(type, nodeName, parentNode, property);
141141

@@ -172,7 +172,7 @@ export default iterateJsdoc(({
172172
!types.includes(nodeName);
173173
})) {
174174
invalidTypes.push([nodeName, types]);
175-
} else if (!noDefaults && type === 'NAME') {
175+
} else if (!noDefaults && type === 'JsdocTypeName') {
176176
for (const strictNativeType of strictNativeTypes) {
177177
if (strictNativeType === 'object' && mode === 'typescript') {
178178
continue;

src/rules/noUndefinedTypes.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,7 @@ export default iterateJsdoc(({
151151
}
152152

153153
traverse(parsedType, ({type, value}, parentNode, property) => {
154-
if (type === 'NAME') {
155-
if (parentNode !== undefined && parentNode.type === 'KEY_VALUE' && property === 'left') {
156-
return
157-
}
154+
if (type === 'JsdocTypeName') {
158155
const structuredTypes = structuredTags[tag.tag]?.type;
159156
if (!allDefinedTypes.has(value) &&
160157
(!Array.isArray(structuredTypes) || !structuredTypes.includes(value))

test/rules/assertions/validTypes.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,20 +144,6 @@ export default {
144144
},
145145
},
146146
},
147-
{
148-
code: `
149-
/**
150-
* @alias module:abc#event:foo-bar
151-
*/
152-
function quux() {
153-
154-
}
155-
`,
156-
errors: [{
157-
line: 3,
158-
message: 'Syntax error in namepath: module:abc#event:foo-bar',
159-
}],
160-
},
161147
{
162148
code: `
163149
/**

0 commit comments

Comments
 (0)