Skip to content

Commit

Permalink
Partial migration of utilities.ts, data property dispatch
Browse files Browse the repository at this point in the history
  • Loading branch information
rbuckton committed Oct 3, 2024
1 parent 6418f9c commit d6c6746
Show file tree
Hide file tree
Showing 31 changed files with 6,075 additions and 1,603 deletions.
3,083 changes: 2,718 additions & 365 deletions src/compiler/ast.ts

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions src/compiler/astForEachChild.ts
Original file line number Diff line number Diff line change
Expand Up @@ -757,13 +757,13 @@ const astForEachChildTable: AstForEachChildTable = {
visitNode(cbNode, node.data.type);
},
[SyntaxKind.JSDoc]: function forEachChildInJSDoc<T>(node: AstJSDoc, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return (typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment))
return visitNodes(cbNode, cbNodes, node.data.commentArray)
|| visitNodes(cbNode, cbNodes, node.data.tags);
},
[SyntaxKind.JSDocSeeTag]: function forEachChildInJSDocSeeTag<T>(node: AstJSDocSeeTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
visitNode(cbNode, node.data.name) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
},
[SyntaxKind.JSDocNameReference]: function forEachChildInJSDocNameReference<T>(node: AstJSDocNameReference, cbNode: (node: AstNode) => T | undefined, _cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.name);
Expand All @@ -776,40 +776,40 @@ const astForEachChildTable: AstForEachChildTable = {
[SyntaxKind.JSDocPropertyTag]: forEachChildInJSDocParameterOrPropertyTag,
[SyntaxKind.JSDocAuthorTag]: function forEachChildInJSDocAuthorTag<T>(node: AstJSDocAuthorTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
},
[SyntaxKind.JSDocImplementsTag]: function forEachChildInJSDocImplementsTag<T>(node: AstJSDocImplementsTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
visitNode(cbNode, node.data.class) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
},
[SyntaxKind.JSDocAugmentsTag]: function forEachChildInJSDocAugmentsTag<T>(node: AstJSDocAugmentsTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
visitNode(cbNode, node.data.class) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
},
[SyntaxKind.JSDocTemplateTag]: function forEachChildInJSDocTemplateTag<T>(node: AstJSDocTemplateTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
visitNode(cbNode, node.data.constraint) ||
visitNodes(cbNode, cbNodes, node.data.typeParameters) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
},
[SyntaxKind.JSDocTypedefTag]: function forEachChildInJSDocTypedefTag<T>(node: AstJSDocTypedefTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
(node.data.typeExpression &&
node.data.typeExpression.kind === SyntaxKind.JSDocTypeExpression
? visitNode(cbNode, node.data.typeExpression) ||
visitNode(cbNode, node.data.fullName) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment))
visitNodes(cbNode, cbNodes, node.data.commentArray)
: visitNode(cbNode, node.data.fullName) ||
visitNode(cbNode, node.data.typeExpression) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment)));
visitNodes(cbNode, cbNodes, node.data.commentArray));
},
[SyntaxKind.JSDocCallbackTag]: function forEachChildInJSDocCallbackTag<T>(node: AstJSDocCallbackTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
visitNode(cbNode, node.data.fullName) ||
visitNode(cbNode, node.data.typeExpression) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
},
[SyntaxKind.JSDocReturnTag]: forEachChildInJSDocTypeLikeTag,
[SyntaxKind.JSDocTypeTag]: forEachChildInJSDocTypeLikeTag,
Expand Down Expand Up @@ -901,13 +901,13 @@ function forEachChildInJSDocParameterOrPropertyTag<T>(node: AstJSDocParameterTag
(node.data.isNameFirst
? visitNode(cbNode, node.data.name) || visitNode(cbNode, node.data.typeExpression)
: visitNode(cbNode, node.data.typeExpression) || visitNode(cbNode, node.data.name)) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
}

function forEachChildInJSDocTypeLikeTag<T>(node: AstJSDocReturnTag | AstJSDocTypeTag | AstJSDocThisTag | AstJSDocEnumTag | AstJSDocThrowsTag | AstJSDocOverloadTag | AstJSDocSatisfiesTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName) ||
visitNode(cbNode, node.data.typeExpression) ||
(typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
visitNodes(cbNode, cbNodes, node.data.commentArray);
}

function forEachChildInJSDocLinkCodeOrPlain<T>(node: AstJSDocLink | AstJSDocLinkCode | AstJSDocLinkPlain, cbNode: (node: AstNode) => T | undefined, _cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
Expand All @@ -916,15 +916,15 @@ function forEachChildInJSDocLinkCodeOrPlain<T>(node: AstJSDocLink | AstJSDocLink

function forEachChildInJSDocTag<T>(node: AstJSDocUnknownTag | AstJSDocClassTag | AstJSDocPublicTag | AstJSDocPrivateTag | AstJSDocProtectedTag | AstJSDocReadonlyTag | AstJSDocDeprecatedTag | AstJSDocOverrideTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName)
|| (typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
|| visitNodes(cbNode, cbNodes, node.data.commentArray);
}

function forEachChildInJSDocImportTag<T>(node: AstJSDocImportTag, cbNode: (node: AstNode) => T | undefined, cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
return visitNode(cbNode, node.data.tagName)
|| visitNode(cbNode, node.data.importClause)
|| visitNode(cbNode, node.data.moduleSpecifier)
|| visitNode(cbNode, node.data.attributes)
|| (typeof node.data.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.data.comment));
|| visitNodes(cbNode, cbNodes, node.data.commentArray);
}

function forEachChildInPartiallyEmittedExpression<T>(node: AstPartiallyEmittedExpression, cbNode: (node: AstNode) => T | undefined, _cbNodes?: (nodes: AstNodeArray<AstNode>) => T | undefined): T | undefined {
Expand Down
Loading

0 comments on commit d6c6746

Please sign in to comment.