diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index d7558c12385..30907406b9c 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -100,181 +100,181 @@ namespace ts { const forEachChildTable: (ForEachChildFunction | undefined)[] = []; const forEachChildNoOpFn: ForEachChildFunction = (_node, _cbNode, _cbNodes) => undefined; for (let i = 0; i < SyntaxKind.Count; i++) forEachChildTable.push(forEachChildNoOpFn); - forEachChildTable[SyntaxKind.QualifiedName] = forEachQualifiedName; - forEachChildTable[SyntaxKind.TypeParameter] = forEachTypeParameter; - forEachChildTable[SyntaxKind.ShorthandPropertyAssignment] = forEachShorthandPropertyAssignment; - forEachChildTable[SyntaxKind.SpreadAssignment] = forEachSpreadAssignment; - forEachChildTable[SyntaxKind.Parameter] = forEachParameter; - forEachChildTable[SyntaxKind.PropertyDeclaration] = forEachPropertyDeclaration; - forEachChildTable[SyntaxKind.PropertySignature] = forEachPropertySignature; - forEachChildTable[SyntaxKind.PropertyAssignment] = forEachPropertyAssignment; - forEachChildTable[SyntaxKind.VariableDeclaration] = forEachVariableDeclaration; - forEachChildTable[SyntaxKind.BindingElement] = forEachBindingElement; - forEachChildTable[SyntaxKind.IndexSignature] = forEachIndexSignature; - forEachChildTable[SyntaxKind.ConstructorType] = forEachConstructorType; - forEachChildTable[SyntaxKind.FunctionType] = forEachFunctionType; - forEachChildTable[SyntaxKind.CallSignature] = forEachCallOrConstructSignature; - forEachChildTable[SyntaxKind.ConstructSignature] = forEachCallOrConstructSignature; - forEachChildTable[SyntaxKind.MethodDeclaration] = forEachMethodDeclaration; - forEachChildTable[SyntaxKind.MethodSignature] = forEachMethodSignature; - forEachChildTable[SyntaxKind.Constructor] = forEachConstructor; - forEachChildTable[SyntaxKind.GetAccessor] = forEachGetAccessor; - forEachChildTable[SyntaxKind.SetAccessor] = forEachSetAccessor; - forEachChildTable[SyntaxKind.FunctionDeclaration] = forEachFunctionDeclaration; - forEachChildTable[SyntaxKind.FunctionExpression] = forEachFunctionExpression; - forEachChildTable[SyntaxKind.ArrowFunction] = forEachArrowFunction; - forEachChildTable[SyntaxKind.ClassStaticBlockDeclaration] = forEachClassStaticBlockDeclaration; - forEachChildTable[SyntaxKind.TypeReference] = forEachTypeReference; - forEachChildTable[SyntaxKind.TypePredicate] = forEachTypePredicate; - forEachChildTable[SyntaxKind.TypeQuery] = forEachTypeQuery; - forEachChildTable[SyntaxKind.TypeLiteral] = forEachTypeLiteral; - forEachChildTable[SyntaxKind.ArrayType] = forEachArrayType; - forEachChildTable[SyntaxKind.TupleType] = forEachTupleType; - forEachChildTable[SyntaxKind.UnionType] = forEachUnionOrIntersectionType; - forEachChildTable[SyntaxKind.IntersectionType] = forEachUnionOrIntersectionType; - forEachChildTable[SyntaxKind.ConditionalType] = forEachConditionalType; - forEachChildTable[SyntaxKind.InferType] = forEachInferType; - forEachChildTable[SyntaxKind.ImportType] = forEachImportType; - forEachChildTable[SyntaxKind.ImportTypeAssertionContainer] = forEachImportTypeAssertionContainer; - forEachChildTable[SyntaxKind.ParenthesizedType] = forEachParenthesizedTypeOrTypeOperator; - forEachChildTable[SyntaxKind.TypeOperator] = forEachParenthesizedTypeOrTypeOperator; - forEachChildTable[SyntaxKind.IndexedAccessType] = forEachIndexedAccessType; - forEachChildTable[SyntaxKind.MappedType] = forEachMappedType; - forEachChildTable[SyntaxKind.LiteralType] = forEachLiteralType; - forEachChildTable[SyntaxKind.NamedTupleMember] = forEachNamedTupleMember; - forEachChildTable[SyntaxKind.ObjectBindingPattern] = forEachObjectOrArrayBindingPattern; - forEachChildTable[SyntaxKind.ArrayBindingPattern] = forEachObjectOrArrayBindingPattern; - forEachChildTable[SyntaxKind.ArrayLiteralExpression] = forEachArrayLiteralExpression; - forEachChildTable[SyntaxKind.ObjectLiteralExpression] = forEachObjectLiteralExpression; - forEachChildTable[SyntaxKind.PropertyAccessExpression] = forEachPropertyAccessExpression; - forEachChildTable[SyntaxKind.ElementAccessExpression] = forEachElementAccessExpression; - forEachChildTable[SyntaxKind.CallExpression] = forEachCallExpression; - forEachChildTable[SyntaxKind.NewExpression] = forEachCallExpression; - forEachChildTable[SyntaxKind.TaggedTemplateExpression] = forEachTaggedTemplateExpression; - forEachChildTable[SyntaxKind.TypeAssertionExpression] = forEachTypeAssertionExpression; - forEachChildTable[SyntaxKind.ParenthesizedExpression] = forEachParenthesizedExpression; - forEachChildTable[SyntaxKind.DeleteExpression] = forEachDeleteExpression; - forEachChildTable[SyntaxKind.TypeOfExpression] = forEachTypeOfExpression; - forEachChildTable[SyntaxKind.VoidExpression] = forEachVoidExpression; - forEachChildTable[SyntaxKind.PrefixUnaryExpression] = forEachPrefixUnaryExpression; - forEachChildTable[SyntaxKind.YieldExpression] = forEachYieldExpression; - forEachChildTable[SyntaxKind.AwaitExpression] = forEachAwaitExpression; - forEachChildTable[SyntaxKind.PostfixUnaryExpression] = forEachPostfixUnaryExpression; - forEachChildTable[SyntaxKind.BinaryExpression] = forEachBinaryExpression; - forEachChildTable[SyntaxKind.AsExpression] = forEachAsExpression; - forEachChildTable[SyntaxKind.NonNullExpression] = forEachNonNullExpression; - forEachChildTable[SyntaxKind.MetaProperty] = forEachMetaProperty; - forEachChildTable[SyntaxKind.ConditionalExpression] = forEachConditionalExpression; - forEachChildTable[SyntaxKind.SpreadElement] = forEachSpreadElement; - forEachChildTable[SyntaxKind.Block] = forEachBlock; - forEachChildTable[SyntaxKind.ModuleBlock] = forEachBlock; - forEachChildTable[SyntaxKind.SourceFile] = forEachSourceFile; - forEachChildTable[SyntaxKind.VariableStatement] = forEachVariableStatement; - forEachChildTable[SyntaxKind.VariableDeclarationList] = forEachVariableDeclarationList; - forEachChildTable[SyntaxKind.ExpressionStatement] = forEachExpressionStatement; - forEachChildTable[SyntaxKind.IfStatement] = forEachIfStatement; - forEachChildTable[SyntaxKind.DoStatement] = forEachDoStatement; - forEachChildTable[SyntaxKind.WhileStatement] = forEachWhileStatement; - forEachChildTable[SyntaxKind.ForStatement] = forEachForStatement; - forEachChildTable[SyntaxKind.ForInStatement] = forEachForInStatement; - forEachChildTable[SyntaxKind.ForOfStatement] = forEachForOfStatement; - forEachChildTable[SyntaxKind.ContinueStatement] = forEachContinueStatement; - forEachChildTable[SyntaxKind.BreakStatement] = forEachContinueStatement; - forEachChildTable[SyntaxKind.ReturnStatement] = forEachReturnStatement; - forEachChildTable[SyntaxKind.WithStatement] = forEachWithStatement; - forEachChildTable[SyntaxKind.SwitchStatement] = forEachSwitchStatement; - forEachChildTable[SyntaxKind.CaseBlock] = forEachCaseBlock; - forEachChildTable[SyntaxKind.CaseClause] = forEachCaseClause; - forEachChildTable[SyntaxKind.DefaultClause] = forEachDefaultClause; - forEachChildTable[SyntaxKind.LabeledStatement] = forEachLabeledStatement; - forEachChildTable[SyntaxKind.ThrowStatement] = forEachThrowStatement; - forEachChildTable[SyntaxKind.TryStatement] = forEachTryStatement; - forEachChildTable[SyntaxKind.CatchClause] = forEachCatchClause; - forEachChildTable[SyntaxKind.Decorator] = forEachDecorator; - forEachChildTable[SyntaxKind.ClassDeclaration] = forEachClassDeclarationOrExpression; - forEachChildTable[SyntaxKind.ClassExpression] = forEachClassDeclarationOrExpression; - forEachChildTable[SyntaxKind.InterfaceDeclaration] = forEachInterfaceDeclaration; - forEachChildTable[SyntaxKind.TypeAliasDeclaration] = forEachTypeAliasDeclaration; - forEachChildTable[SyntaxKind.EnumDeclaration] = forEachEnumDeclaration; - forEachChildTable[SyntaxKind.EnumMember] = forEachEnumMember; - forEachChildTable[SyntaxKind.ModuleDeclaration] = forEachModuleDeclaration; - forEachChildTable[SyntaxKind.ImportEqualsDeclaration] = forEachImportEqualsDeclaration; - forEachChildTable[SyntaxKind.ImportDeclaration] = forEachImportDeclaration; - forEachChildTable[SyntaxKind.ImportClause] = forEachImportClause; - forEachChildTable[SyntaxKind.AssertClause] = forEachAssertClause; - forEachChildTable[SyntaxKind.AssertEntry] = forEachAssertEntry; - forEachChildTable[SyntaxKind.NamespaceExportDeclaration] = forEachNamespaceExportDeclaration; - forEachChildTable[SyntaxKind.NamespaceImport] = forEachNamespaceImport; - forEachChildTable[SyntaxKind.NamespaceExport] = forEachNamespaceExport; - forEachChildTable[SyntaxKind.NamedImports] = forEachNamedImportsOrExports; - forEachChildTable[SyntaxKind.NamedExports] = forEachNamedImportsOrExports; - forEachChildTable[SyntaxKind.ExportDeclaration] = forEachExportDeclaration; - forEachChildTable[SyntaxKind.ImportSpecifier] = forEachImportOrExportSpecifier; - forEachChildTable[SyntaxKind.ExportSpecifier] = forEachImportOrExportSpecifier; - forEachChildTable[SyntaxKind.ExportAssignment] = forEachExportAssignment; - forEachChildTable[SyntaxKind.TemplateExpression] = forEachTemplateExpression; - forEachChildTable[SyntaxKind.TemplateSpan] = forEachTemplateSpan; - forEachChildTable[SyntaxKind.TemplateLiteralType] = forEachTemplateLiteralType; - forEachChildTable[SyntaxKind.TemplateLiteralTypeSpan] = forEachTemplateLiteralTypeSpan; - forEachChildTable[SyntaxKind.ComputedPropertyName] = forEachComputedPropertyName; - forEachChildTable[SyntaxKind.HeritageClause] = forEachHeritageClause; - forEachChildTable[SyntaxKind.ExpressionWithTypeArguments] = forEachExpressionWithTypeArguments; - forEachChildTable[SyntaxKind.ExternalModuleReference] = forEachExternalModuleReference; - forEachChildTable[SyntaxKind.MissingDeclaration] = forEachMissingDeclaration; - forEachChildTable[SyntaxKind.CommaListExpression] = forEachCommaListExpression; - forEachChildTable[SyntaxKind.JsxElement] = forEachJsxElement; - forEachChildTable[SyntaxKind.JsxFragment] = forEachJsxFragment; - forEachChildTable[SyntaxKind.JsxSelfClosingElement] = forEachJsxOpeningOrSelfClosingElement; - forEachChildTable[SyntaxKind.JsxOpeningElement] = forEachJsxOpeningOrSelfClosingElement; - forEachChildTable[SyntaxKind.JsxAttributes] = forEachJsxAttributes; - forEachChildTable[SyntaxKind.JsxAttribute] = forEachJsxAttribute; - forEachChildTable[SyntaxKind.JsxSpreadAttribute] = forEachJsxSpreadAttribute; - forEachChildTable[SyntaxKind.JsxExpression] = forEachJsxExpression; - forEachChildTable[SyntaxKind.JsxClosingElement] = forEachJsxClosingElement; - forEachChildTable[SyntaxKind.OptionalType] = forEachOptionalRestOrJSDocParameterModifier; - forEachChildTable[SyntaxKind.RestType] = forEachOptionalRestOrJSDocParameterModifier; - forEachChildTable[SyntaxKind.JSDocTypeExpression] = forEachOptionalRestOrJSDocParameterModifier; - forEachChildTable[SyntaxKind.JSDocNonNullableType] = forEachOptionalRestOrJSDocParameterModifier; - forEachChildTable[SyntaxKind.JSDocNullableType] = forEachOptionalRestOrJSDocParameterModifier; - forEachChildTable[SyntaxKind.JSDocOptionalType] = forEachOptionalRestOrJSDocParameterModifier; - forEachChildTable[SyntaxKind.JSDocVariadicType] = forEachOptionalRestOrJSDocParameterModifier; - forEachChildTable[SyntaxKind.JSDocFunctionType] = forEachJSDocFunctionType; - forEachChildTable[SyntaxKind.JSDoc] = forEachJSDoc; - forEachChildTable[SyntaxKind.JSDocSeeTag] = forEachJSDocSeeTag; - forEachChildTable[SyntaxKind.JSDocNameReference] = forEachJSDocNameReference; - forEachChildTable[SyntaxKind.JSDocMemberName] = forEachJSDocMemberName; - forEachChildTable[SyntaxKind.JSDocParameterTag] = forEachJSDocParameterOrPropertyTag; - forEachChildTable[SyntaxKind.JSDocPropertyTag] = forEachJSDocParameterOrPropertyTag; - forEachChildTable[SyntaxKind.JSDocAuthorTag] = forEachJSDocAuthorTag; - forEachChildTable[SyntaxKind.JSDocImplementsTag] = forEachJSDocImplementsTag; - forEachChildTable[SyntaxKind.JSDocAugmentsTag] = forEachJSDocAugmentsTag; - forEachChildTable[SyntaxKind.JSDocTemplateTag] = forEachJSDocTemplateTag; - forEachChildTable[SyntaxKind.JSDocTypedefTag] = forEachJSDocTypedefTag; - forEachChildTable[SyntaxKind.JSDocCallbackTag] = forEachJSDocCallbackTag; - forEachChildTable[SyntaxKind.JSDocReturnTag] = forEachJSDocReturnTag; - forEachChildTable[SyntaxKind.JSDocTypeTag] = forEachJSDocReturnTag; - forEachChildTable[SyntaxKind.JSDocThisTag] = forEachJSDocReturnTag; - forEachChildTable[SyntaxKind.JSDocEnumTag] = forEachJSDocReturnTag; - forEachChildTable[SyntaxKind.JSDocSignature] = forEachJSDocSignature; - forEachChildTable[SyntaxKind.JSDocLink] = forEachJSDocLinkCodeOrPlain; - forEachChildTable[SyntaxKind.JSDocLinkCode] = forEachJSDocLinkCodeOrPlain; - forEachChildTable[SyntaxKind.JSDocLinkPlain] = forEachJSDocLinkCodeOrPlain; - forEachChildTable[SyntaxKind.JSDocTypeLiteral] = forEachJSDocTypeLiteral; - forEachChildTable[SyntaxKind.JSDocTag] = forEachJSDocTag; - forEachChildTable[SyntaxKind.JSDocClassTag] = forEachJSDocTag; - forEachChildTable[SyntaxKind.JSDocPublicTag] = forEachJSDocTag; - forEachChildTable[SyntaxKind.JSDocPrivateTag] = forEachJSDocTag; - forEachChildTable[SyntaxKind.JSDocProtectedTag] = forEachJSDocTag; - forEachChildTable[SyntaxKind.JSDocReadonlyTag] = forEachJSDocTag; - forEachChildTable[SyntaxKind.JSDocDeprecatedTag] = forEachJSDocTag; - forEachChildTable[SyntaxKind.PartiallyEmittedExpression] = forEachPartiallyEmittedExpression; + forEachChildTable[SyntaxKind.QualifiedName] = forEachChildInQualifiedName; + forEachChildTable[SyntaxKind.TypeParameter] = forEachChildInTypeParameter; + forEachChildTable[SyntaxKind.ShorthandPropertyAssignment] = forEachChildInShorthandPropertyAssignment; + forEachChildTable[SyntaxKind.SpreadAssignment] = forEachChildInSpreadAssignment; + forEachChildTable[SyntaxKind.Parameter] = forEachChildInParameter; + forEachChildTable[SyntaxKind.PropertyDeclaration] = forEachChildInPropertyDeclaration; + forEachChildTable[SyntaxKind.PropertySignature] = forEachChildInPropertySignature; + forEachChildTable[SyntaxKind.PropertyAssignment] = forEachChildInPropertyAssignment; + forEachChildTable[SyntaxKind.VariableDeclaration] = forEachChildInVariableDeclaration; + forEachChildTable[SyntaxKind.BindingElement] = forEachChildInBindingElement; + forEachChildTable[SyntaxKind.IndexSignature] = forEachChildInIndexSignature; + forEachChildTable[SyntaxKind.ConstructorType] = forEachChildInConstructorType; + forEachChildTable[SyntaxKind.FunctionType] = forEachChildInFunctionType; + forEachChildTable[SyntaxKind.CallSignature] = forEachChildInCallOrConstructSignature; + forEachChildTable[SyntaxKind.ConstructSignature] = forEachChildInCallOrConstructSignature; + forEachChildTable[SyntaxKind.MethodDeclaration] = forEachChildInMethodDeclaration; + forEachChildTable[SyntaxKind.MethodSignature] = forEachChildInMethodSignature; + forEachChildTable[SyntaxKind.Constructor] = forEachChildInConstructor; + forEachChildTable[SyntaxKind.GetAccessor] = forEachChildInGetAccessor; + forEachChildTable[SyntaxKind.SetAccessor] = forEachChildInSetAccessor; + forEachChildTable[SyntaxKind.FunctionDeclaration] = forEachChildInFunctionDeclaration; + forEachChildTable[SyntaxKind.FunctionExpression] = forEachChildInFunctionExpression; + forEachChildTable[SyntaxKind.ArrowFunction] = forEachChildInArrowFunction; + forEachChildTable[SyntaxKind.ClassStaticBlockDeclaration] = forEachChildInClassStaticBlockDeclaration; + forEachChildTable[SyntaxKind.TypeReference] = forEachChildInTypeReference; + forEachChildTable[SyntaxKind.TypePredicate] = forEachChildInTypePredicate; + forEachChildTable[SyntaxKind.TypeQuery] = forEachChildInTypeQuery; + forEachChildTable[SyntaxKind.TypeLiteral] = forEachChildInTypeLiteral; + forEachChildTable[SyntaxKind.ArrayType] = forEachChildInArrayType; + forEachChildTable[SyntaxKind.TupleType] = forEachChildInTupleType; + forEachChildTable[SyntaxKind.UnionType] = forEachChildInUnionOrIntersectionType; + forEachChildTable[SyntaxKind.IntersectionType] = forEachChildInUnionOrIntersectionType; + forEachChildTable[SyntaxKind.ConditionalType] = forEachChildInConditionalType; + forEachChildTable[SyntaxKind.InferType] = forEachChildInInferType; + forEachChildTable[SyntaxKind.ImportType] = forEachChildInImportType; + forEachChildTable[SyntaxKind.ImportTypeAssertionContainer] = forEachChildInImportTypeAssertionContainer; + forEachChildTable[SyntaxKind.ParenthesizedType] = forEachChildInParenthesizedTypeOrTypeOperator; + forEachChildTable[SyntaxKind.TypeOperator] = forEachChildInParenthesizedTypeOrTypeOperator; + forEachChildTable[SyntaxKind.IndexedAccessType] = forEachChildInIndexedAccessType; + forEachChildTable[SyntaxKind.MappedType] = forEachChildInMappedType; + forEachChildTable[SyntaxKind.LiteralType] = forEachChildInLiteralType; + forEachChildTable[SyntaxKind.NamedTupleMember] = forEachChildInNamedTupleMember; + forEachChildTable[SyntaxKind.ObjectBindingPattern] = forEachChildInObjectOrArrayBindingPattern; + forEachChildTable[SyntaxKind.ArrayBindingPattern] = forEachChildInObjectOrArrayBindingPattern; + forEachChildTable[SyntaxKind.ArrayLiteralExpression] = forEachChildInArrayLiteralExpression; + forEachChildTable[SyntaxKind.ObjectLiteralExpression] = forEachChildInObjectLiteralExpression; + forEachChildTable[SyntaxKind.PropertyAccessExpression] = forEachChildInPropertyAccessExpression; + forEachChildTable[SyntaxKind.ElementAccessExpression] = forEachChildInElementAccessExpression; + forEachChildTable[SyntaxKind.CallExpression] = forEachChildInCallExpression; + forEachChildTable[SyntaxKind.NewExpression] = forEachChildInCallExpression; + forEachChildTable[SyntaxKind.TaggedTemplateExpression] = forEachChildInTaggedTemplateExpression; + forEachChildTable[SyntaxKind.TypeAssertionExpression] = forEachChildInTypeAssertionExpression; + forEachChildTable[SyntaxKind.ParenthesizedExpression] = forEachChildInParenthesizedExpression; + forEachChildTable[SyntaxKind.DeleteExpression] = forEachChildInDeleteExpression; + forEachChildTable[SyntaxKind.TypeOfExpression] = forEachChildInTypeOfExpression; + forEachChildTable[SyntaxKind.VoidExpression] = forEachChildInVoidExpression; + forEachChildTable[SyntaxKind.PrefixUnaryExpression] = forEachChildInPrefixUnaryExpression; + forEachChildTable[SyntaxKind.YieldExpression] = forEachChildInYieldExpression; + forEachChildTable[SyntaxKind.AwaitExpression] = forEachChildInAwaitExpression; + forEachChildTable[SyntaxKind.PostfixUnaryExpression] = forEachChildInPostfixUnaryExpression; + forEachChildTable[SyntaxKind.BinaryExpression] = forEachChildInBinaryExpression; + forEachChildTable[SyntaxKind.AsExpression] = forEachChildInAsExpression; + forEachChildTable[SyntaxKind.NonNullExpression] = forEachChildInNonNullExpression; + forEachChildTable[SyntaxKind.MetaProperty] = forEachChildInMetaProperty; + forEachChildTable[SyntaxKind.ConditionalExpression] = forEachChildInConditionalExpression; + forEachChildTable[SyntaxKind.SpreadElement] = forEachChildInSpreadElement; + forEachChildTable[SyntaxKind.Block] = forEachChildInBlock; + forEachChildTable[SyntaxKind.ModuleBlock] = forEachChildInBlock; + forEachChildTable[SyntaxKind.SourceFile] = forEachChildInSourceFile; + forEachChildTable[SyntaxKind.VariableStatement] = forEachChildInVariableStatement; + forEachChildTable[SyntaxKind.VariableDeclarationList] = forEachChildInVariableDeclarationList; + forEachChildTable[SyntaxKind.ExpressionStatement] = forEachChildInExpressionStatement; + forEachChildTable[SyntaxKind.IfStatement] = forEachChildInIfStatement; + forEachChildTable[SyntaxKind.DoStatement] = forEachChildInDoStatement; + forEachChildTable[SyntaxKind.WhileStatement] = forEachChildInWhileStatement; + forEachChildTable[SyntaxKind.ForStatement] = forEachChildInForStatement; + forEachChildTable[SyntaxKind.ForInStatement] = forEachChildInForInStatement; + forEachChildTable[SyntaxKind.ForOfStatement] = forEachChildInForOfStatement; + forEachChildTable[SyntaxKind.ContinueStatement] = forEachChildInContinueStatement; + forEachChildTable[SyntaxKind.BreakStatement] = forEachChildInContinueStatement; + forEachChildTable[SyntaxKind.ReturnStatement] = forEachChildInReturnStatement; + forEachChildTable[SyntaxKind.WithStatement] = forEachChildInWithStatement; + forEachChildTable[SyntaxKind.SwitchStatement] = forEachChildInSwitchStatement; + forEachChildTable[SyntaxKind.CaseBlock] = forEachChildInCaseBlock; + forEachChildTable[SyntaxKind.CaseClause] = forEachChildInCaseClause; + forEachChildTable[SyntaxKind.DefaultClause] = forEachChildInDefaultClause; + forEachChildTable[SyntaxKind.LabeledStatement] = forEachChildInLabeledStatement; + forEachChildTable[SyntaxKind.ThrowStatement] = forEachChildInThrowStatement; + forEachChildTable[SyntaxKind.TryStatement] = forEachChildInTryStatement; + forEachChildTable[SyntaxKind.CatchClause] = forEachChildInCatchClause; + forEachChildTable[SyntaxKind.Decorator] = forEachChildInDecorator; + forEachChildTable[SyntaxKind.ClassDeclaration] = forEachChildInClassDeclarationOrExpression; + forEachChildTable[SyntaxKind.ClassExpression] = forEachChildInClassDeclarationOrExpression; + forEachChildTable[SyntaxKind.InterfaceDeclaration] = forEachChildInInterfaceDeclaration; + forEachChildTable[SyntaxKind.TypeAliasDeclaration] = forEachChildInTypeAliasDeclaration; + forEachChildTable[SyntaxKind.EnumDeclaration] = forEachChildInEnumDeclaration; + forEachChildTable[SyntaxKind.EnumMember] = forEachChildInEnumMember; + forEachChildTable[SyntaxKind.ModuleDeclaration] = forEachChildInModuleDeclaration; + forEachChildTable[SyntaxKind.ImportEqualsDeclaration] = forEachChildInImportEqualsDeclaration; + forEachChildTable[SyntaxKind.ImportDeclaration] = forEachChildInImportDeclaration; + forEachChildTable[SyntaxKind.ImportClause] = forEachChildInImportClause; + forEachChildTable[SyntaxKind.AssertClause] = forEachChildInAssertClause; + forEachChildTable[SyntaxKind.AssertEntry] = forEachChildInAssertEntry; + forEachChildTable[SyntaxKind.NamespaceExportDeclaration] = forEachChildInNamespaceExportDeclaration; + forEachChildTable[SyntaxKind.NamespaceImport] = forEachChildInNamespaceImport; + forEachChildTable[SyntaxKind.NamespaceExport] = forEachChildInNamespaceExport; + forEachChildTable[SyntaxKind.NamedImports] = forEachChildInNamedImportsOrExports; + forEachChildTable[SyntaxKind.NamedExports] = forEachChildInNamedImportsOrExports; + forEachChildTable[SyntaxKind.ExportDeclaration] = forEachChildInExportDeclaration; + forEachChildTable[SyntaxKind.ImportSpecifier] = forEachChildInImportOrExportSpecifier; + forEachChildTable[SyntaxKind.ExportSpecifier] = forEachChildInImportOrExportSpecifier; + forEachChildTable[SyntaxKind.ExportAssignment] = forEachChildInExportAssignment; + forEachChildTable[SyntaxKind.TemplateExpression] = forEachChildInTemplateExpression; + forEachChildTable[SyntaxKind.TemplateSpan] = forEachChildInTemplateSpan; + forEachChildTable[SyntaxKind.TemplateLiteralType] = forEachChildInTemplateLiteralType; + forEachChildTable[SyntaxKind.TemplateLiteralTypeSpan] = forEachChildInTemplateLiteralTypeSpan; + forEachChildTable[SyntaxKind.ComputedPropertyName] = forEachChildInComputedPropertyName; + forEachChildTable[SyntaxKind.HeritageClause] = forEachChildInHeritageClause; + forEachChildTable[SyntaxKind.ExpressionWithTypeArguments] = forEachChildInExpressionWithTypeArguments; + forEachChildTable[SyntaxKind.ExternalModuleReference] = forEachChildInExternalModuleReference; + forEachChildTable[SyntaxKind.MissingDeclaration] = forEachChildInMissingDeclaration; + forEachChildTable[SyntaxKind.CommaListExpression] = forEachChildInCommaListExpression; + forEachChildTable[SyntaxKind.JsxElement] = forEachChildInJsxElement; + forEachChildTable[SyntaxKind.JsxFragment] = forEachChildInJsxFragment; + forEachChildTable[SyntaxKind.JsxSelfClosingElement] = forEachChildInJsxOpeningOrSelfClosingElement; + forEachChildTable[SyntaxKind.JsxOpeningElement] = forEachChildInJsxOpeningOrSelfClosingElement; + forEachChildTable[SyntaxKind.JsxAttributes] = forEachChildInJsxAttributes; + forEachChildTable[SyntaxKind.JsxAttribute] = forEachChildInJsxAttribute; + forEachChildTable[SyntaxKind.JsxSpreadAttribute] = forEachChildInJsxSpreadAttribute; + forEachChildTable[SyntaxKind.JsxExpression] = forEachChildInJsxExpression; + forEachChildTable[SyntaxKind.JsxClosingElement] = forEachChildInJsxClosingElement; + forEachChildTable[SyntaxKind.OptionalType] = forEachChildInOptionalRestOrJSDocParameterModifier; + forEachChildTable[SyntaxKind.RestType] = forEachChildInOptionalRestOrJSDocParameterModifier; + forEachChildTable[SyntaxKind.JSDocTypeExpression] = forEachChildInOptionalRestOrJSDocParameterModifier; + forEachChildTable[SyntaxKind.JSDocNonNullableType] = forEachChildInOptionalRestOrJSDocParameterModifier; + forEachChildTable[SyntaxKind.JSDocNullableType] = forEachChildInOptionalRestOrJSDocParameterModifier; + forEachChildTable[SyntaxKind.JSDocOptionalType] = forEachChildInOptionalRestOrJSDocParameterModifier; + forEachChildTable[SyntaxKind.JSDocVariadicType] = forEachChildInOptionalRestOrJSDocParameterModifier; + forEachChildTable[SyntaxKind.JSDocFunctionType] = forEachChildInJSDocFunctionType; + forEachChildTable[SyntaxKind.JSDoc] = forEachChildInJSDoc; + forEachChildTable[SyntaxKind.JSDocSeeTag] = forEachChildInJSDocSeeTag; + forEachChildTable[SyntaxKind.JSDocNameReference] = forEachChildInJSDocNameReference; + forEachChildTable[SyntaxKind.JSDocMemberName] = forEachChildInJSDocMemberName; + forEachChildTable[SyntaxKind.JSDocParameterTag] = forEachChildInJSDocParameterOrPropertyTag; + forEachChildTable[SyntaxKind.JSDocPropertyTag] = forEachChildInJSDocParameterOrPropertyTag; + forEachChildTable[SyntaxKind.JSDocAuthorTag] = forEachChildInJSDocAuthorTag; + forEachChildTable[SyntaxKind.JSDocImplementsTag] = forEachChildInJSDocImplementsTag; + forEachChildTable[SyntaxKind.JSDocAugmentsTag] = forEachChildInJSDocAugmentsTag; + forEachChildTable[SyntaxKind.JSDocTemplateTag] = forEachChildInJSDocTemplateTag; + forEachChildTable[SyntaxKind.JSDocTypedefTag] = forEachChildInJSDocTypedefTag; + forEachChildTable[SyntaxKind.JSDocCallbackTag] = forEachChildInJSDocCallbackTag; + forEachChildTable[SyntaxKind.JSDocReturnTag] = forEachChildInJSDocReturnTag; + forEachChildTable[SyntaxKind.JSDocTypeTag] = forEachChildInJSDocReturnTag; + forEachChildTable[SyntaxKind.JSDocThisTag] = forEachChildInJSDocReturnTag; + forEachChildTable[SyntaxKind.JSDocEnumTag] = forEachChildInJSDocReturnTag; + forEachChildTable[SyntaxKind.JSDocSignature] = forEachChildInJSDocSignature; + forEachChildTable[SyntaxKind.JSDocLink] = forEachChildInJSDocLinkCodeOrPlain; + forEachChildTable[SyntaxKind.JSDocLinkCode] = forEachChildInJSDocLinkCodeOrPlain; + forEachChildTable[SyntaxKind.JSDocLinkPlain] = forEachChildInJSDocLinkCodeOrPlain; + forEachChildTable[SyntaxKind.JSDocTypeLiteral] = forEachChildInJSDocTypeLiteral; + forEachChildTable[SyntaxKind.JSDocTag] = forEachChildInJSDocTag; + forEachChildTable[SyntaxKind.JSDocClassTag] = forEachChildInJSDocTag; + forEachChildTable[SyntaxKind.JSDocPublicTag] = forEachChildInJSDocTag; + forEachChildTable[SyntaxKind.JSDocPrivateTag] = forEachChildInJSDocTag; + forEachChildTable[SyntaxKind.JSDocProtectedTag] = forEachChildInJSDocTag; + forEachChildTable[SyntaxKind.JSDocReadonlyTag] = forEachChildInJSDocTag; + forEachChildTable[SyntaxKind.JSDocDeprecatedTag] = forEachChildInJSDocTag; + forEachChildTable[SyntaxKind.PartiallyEmittedExpression] = forEachChildInPartiallyEmittedExpression; - function forEachQualifiedName(node: QualifiedName, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInQualifiedName(node: QualifiedName, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.left) || visitNode(cbNode, node.right); } - function forEachTypeParameter(node: TypeParameterDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypeParameter(node: TypeParameterDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.constraint) || @@ -282,7 +282,7 @@ namespace ts { visitNode(cbNode, node.expression); } - function forEachShorthandPropertyAssignment(node: ShorthandPropertyAssignment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInShorthandPropertyAssignment(node: ShorthandPropertyAssignment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || @@ -292,11 +292,11 @@ namespace ts { visitNode(cbNode, node.objectAssignmentInitializer); } - function forEachSpreadAssignment(node: SpreadAssignment, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInSpreadAssignment(node: SpreadAssignment, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachParameter(node: ParameterDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInParameter(node: ParameterDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.name) || @@ -305,7 +305,7 @@ namespace ts { visitNode(cbNode, node.initializer); } - function forEachPropertyDeclaration(node: PropertyDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInPropertyDeclaration(node: PropertyDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || @@ -314,7 +314,7 @@ namespace ts { visitNode(cbNode, node.initializer); } - function forEachPropertySignature(node: PropertySignature, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInPropertySignature(node: PropertySignature, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || @@ -322,7 +322,7 @@ namespace ts { visitNode(cbNode, node.initializer); } - function forEachPropertyAssignment(node: PropertyAssignment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInPropertyAssignment(node: PropertyAssignment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || @@ -331,48 +331,48 @@ namespace ts { visitNode(cbNode, node.initializer); } - function forEachVariableDeclaration(node: VariableDeclaration, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInVariableDeclaration(node: VariableDeclaration, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name) || visitNode(cbNode, node.exclamationToken) || visitNode(cbNode, node.type) || visitNode(cbNode, node.initializer); } - function forEachBindingElement(node: BindingElement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInBindingElement(node: BindingElement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.name) || visitNode(cbNode, node.initializer); } - function forEachIndexSignature(node: IndexSignatureDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInIndexSignature(node: IndexSignatureDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode(cbNode, node.type); } - function forEachConstructorType(node: ConstructorTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInConstructorType(node: ConstructorTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode(cbNode, node.type); } - function forEachFunctionType(node: FunctionTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInFunctionType(node: FunctionTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode(cbNode, node.type); } - function forEachCallOrConstructSignature(node: CallSignatureDeclaration | ConstructSignatureDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInCallOrConstructSignature(node: CallSignatureDeclaration | ConstructSignatureDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode(cbNode, node.type); } - function forEachMethodDeclaration(node: MethodDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInMethodDeclaration(node: MethodDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.name) || @@ -384,7 +384,7 @@ namespace ts { visitNode(cbNode, node.body); } - function forEachMethodSignature(node: MethodSignature, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInMethodSignature(node: MethodSignature, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || @@ -393,7 +393,7 @@ namespace ts { visitNode(cbNode, node.type); } - function forEachConstructor(node: ConstructorDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInConstructor(node: ConstructorDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || @@ -403,7 +403,7 @@ namespace ts { visitNode(cbNode, node.body); } - function forEachGetAccessor(node: GetAccessorDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInGetAccessor(node: GetAccessorDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || @@ -412,7 +412,7 @@ namespace ts { visitNode(cbNode, node.body); } - function forEachSetAccessor(node: SetAccessorDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInSetAccessor(node: SetAccessorDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || @@ -421,7 +421,7 @@ namespace ts { visitNode(cbNode, node.body); } - function forEachFunctionDeclaration(node: FunctionDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInFunctionDeclaration(node: FunctionDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.asteriskToken) || @@ -432,7 +432,7 @@ namespace ts { visitNode(cbNode, node.body); } - function forEachFunctionExpression(node: FunctionExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInFunctionExpression(node: FunctionExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.name) || @@ -442,7 +442,7 @@ namespace ts { visitNode(cbNode, node.body); } - function forEachArrowFunction(node: ArrowFunction, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInArrowFunction(node: ArrowFunction, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || @@ -451,76 +451,76 @@ namespace ts { visitNode(cbNode, node.body); } - function forEachClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInClassStaticBlockDeclaration(node: ClassStaticBlockDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.body); } - function forEachTypeReference(node: TypeReferenceNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypeReference(node: TypeReferenceNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.typeName) || visitNodes(cbNode, cbNodes, node.typeArguments); } - function forEachTypePredicate(node: TypePredicateNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypePredicate(node: TypePredicateNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.assertsModifier) || visitNode(cbNode, node.parameterName) || visitNode(cbNode, node.type); } - function forEachTypeQuery(node: TypeQueryNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypeQuery(node: TypeQueryNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.exprName) || visitNodes(cbNode, cbNodes, node.typeArguments); } - function forEachTypeLiteral(node: TypeLiteralNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypeLiteral(node: TypeLiteralNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.members); } - function forEachArrayType(node: ArrayTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInArrayType(node: ArrayTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.elementType); } - function forEachTupleType(node: TupleTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTupleType(node: TupleTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.elements); } - function forEachUnionOrIntersectionType(node: UnionTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInUnionOrIntersectionType(node: UnionTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.types); } - function forEachConditionalType(node: ConditionalTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInConditionalType(node: ConditionalTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.checkType) || visitNode(cbNode, node.extendsType) || visitNode(cbNode, node.trueType) || visitNode(cbNode, node.falseType); } - function forEachInferType(node: InferTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInInferType(node: InferTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.typeParameter); } - function forEachImportType(node: ImportTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInImportType(node: ImportTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.argument) || visitNode(cbNode, node.assertions) || visitNode(cbNode, node.qualifier) || visitNodes(cbNode, cbNodes, node.typeArguments); } - function forEachImportTypeAssertionContainer(node: ImportTypeAssertionContainer, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInImportTypeAssertionContainer(node: ImportTypeAssertionContainer, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.assertClause); } - function forEachParenthesizedTypeOrTypeOperator(node: ParenthesizedTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInParenthesizedTypeOrTypeOperator(node: ParenthesizedTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, (node as ParenthesizedTypeNode | TypeOperatorNode).type); } - function forEachIndexedAccessType(node: IndexedAccessTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInIndexedAccessType(node: IndexedAccessTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.objectType) || visitNode(cbNode, node.indexType); } - function forEachMappedType(node: MappedTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInMappedType(node: MappedTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.readonlyToken) || visitNode(cbNode, node.typeParameter) || visitNode(cbNode, node.nameType) || @@ -529,113 +529,113 @@ namespace ts { visitNodes(cbNode, cbNodes, node.members); } - function forEachLiteralType(node: LiteralTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInLiteralType(node: LiteralTypeNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.literal); } - function forEachNamedTupleMember(node: NamedTupleMember, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInNamedTupleMember(node: NamedTupleMember, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.type); } - function forEachObjectOrArrayBindingPattern(node: ObjectBindingPattern, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInObjectOrArrayBindingPattern(node: ObjectBindingPattern, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.elements); } - function forEachArrayLiteralExpression(node: ArrayLiteralExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInArrayLiteralExpression(node: ArrayLiteralExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.elements); } - function forEachObjectLiteralExpression(node: ObjectLiteralExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInObjectLiteralExpression(node: ObjectLiteralExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.properties); } - function forEachPropertyAccessExpression(node: PropertyAccessExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInPropertyAccessExpression(node: PropertyAccessExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.questionDotToken) || visitNode(cbNode, node.name); } - function forEachElementAccessExpression(node: ElementAccessExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInElementAccessExpression(node: ElementAccessExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.questionDotToken) || visitNode(cbNode, node.argumentExpression); } - function forEachCallExpression(node: CallExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInCallExpression(node: CallExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNodes(cbNode, cbNodes, node.arguments); } - function forEachTaggedTemplateExpression(node: TaggedTemplateExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTaggedTemplateExpression(node: TaggedTemplateExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tag) || visitNode(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode(cbNode, node.template); } - function forEachTypeAssertionExpression(node: TypeAssertion, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypeAssertionExpression(node: TypeAssertion, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.type) || visitNode(cbNode, node.expression); } - function forEachParenthesizedExpression(node: ParenthesizedExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInParenthesizedExpression(node: ParenthesizedExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachDeleteExpression(node: DeleteExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInDeleteExpression(node: DeleteExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachTypeOfExpression(node: TypeOfExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypeOfExpression(node: TypeOfExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachVoidExpression(node: VoidExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInVoidExpression(node: VoidExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachPrefixUnaryExpression(node: PrefixUnaryExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInPrefixUnaryExpression(node: PrefixUnaryExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.operand); } - function forEachYieldExpression(node: YieldExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInYieldExpression(node: YieldExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.expression); } - function forEachAwaitExpression(node: AwaitExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInAwaitExpression(node: AwaitExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachPostfixUnaryExpression(node: PostfixUnaryExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInPostfixUnaryExpression(node: PostfixUnaryExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.operand); } - function forEachBinaryExpression(node: BinaryExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInBinaryExpression(node: BinaryExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.left) || visitNode(cbNode, node.operatorToken) || visitNode(cbNode, node.right); } - function forEachAsExpression(node: AsExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInAsExpression(node: AsExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.type); } - function forEachNonNullExpression(node: NonNullExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInNonNullExpression(node: NonNullExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachMetaProperty(node: MetaProperty, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInMetaProperty(node: MetaProperty, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name); } - function forEachConditionalExpression(node: ConditionalExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInConditionalExpression(node: ConditionalExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.condition) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.whenTrue) || @@ -643,125 +643,125 @@ namespace ts { visitNode(cbNode, node.whenFalse); } - function forEachSpreadElement(node: SpreadElement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInSpreadElement(node: SpreadElement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachBlock(node: Block, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInBlock(node: Block, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.statements); } - function forEachSourceFile(node: SourceFile, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInSourceFile(node: SourceFile, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.statements) || visitNode(cbNode, node.endOfFileToken); } - function forEachVariableStatement(node: VariableStatement, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInVariableStatement(node: VariableStatement, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.declarationList); } - function forEachVariableDeclarationList(node: VariableDeclarationList, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInVariableDeclarationList(node: VariableDeclarationList, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.declarations); } - function forEachExpressionStatement(node: ExpressionStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInExpressionStatement(node: ExpressionStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachIfStatement(node: IfStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInIfStatement(node: IfStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.thenStatement) || visitNode(cbNode, node.elseStatement); } - function forEachDoStatement(node: DoStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInDoStatement(node: DoStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.statement) || visitNode(cbNode, node.expression); } - function forEachWhileStatement(node: WhileStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInWhileStatement(node: WhileStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); } - function forEachForStatement(node: ForStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInForStatement(node: ForStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || visitNode(cbNode, node.incrementor) || visitNode(cbNode, node.statement); } - function forEachForInStatement(node: ForInStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInForInStatement(node: ForInStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); } - function forEachForOfStatement(node: ForOfStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInForOfStatement(node: ForOfStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.awaitModifier) || visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); } - function forEachContinueStatement(node: ContinueStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInContinueStatement(node: ContinueStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.label); } - function forEachReturnStatement(node: ReturnStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInReturnStatement(node: ReturnStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachWithStatement(node: WithStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInWithStatement(node: WithStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); } - function forEachSwitchStatement(node: SwitchStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInSwitchStatement(node: SwitchStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.caseBlock); } - function forEachCaseBlock(node: CaseBlock, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInCaseBlock(node: CaseBlock, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.clauses); } - function forEachCaseClause(node: CaseClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInCaseClause(node: CaseClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.statements); } - function forEachDefaultClause(node: DefaultClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInDefaultClause(node: DefaultClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.statements); } - function forEachLabeledStatement(node: LabeledStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInLabeledStatement(node: LabeledStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.label) || visitNode(cbNode, node.statement); } - function forEachThrowStatement(node: ThrowStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInThrowStatement(node: ThrowStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachTryStatement(node: TryStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTryStatement(node: TryStatement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tryBlock) || visitNode(cbNode, node.catchClause) || visitNode(cbNode, node.finallyBlock); } - function forEachCatchClause(node: CatchClause, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInCatchClause(node: CatchClause, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.variableDeclaration) || visitNode(cbNode, node.block); } - function forEachDecorator(node: Decorator, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInDecorator(node: Decorator, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachClassDeclarationOrExpression(node: ClassDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInClassDeclarationOrExpression(node: ClassDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || @@ -769,7 +769,7 @@ namespace ts { visitNodes(cbNode, cbNodes, node.members); } - function forEachInterfaceDeclaration(node: InterfaceDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInInterfaceDeclaration(node: InterfaceDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || @@ -778,7 +778,7 @@ namespace ts { visitNodes(cbNode, cbNodes, node.members); } - function forEachTypeAliasDeclaration(node: TypeAliasDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTypeAliasDeclaration(node: TypeAliasDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || @@ -786,33 +786,33 @@ namespace ts { visitNode(cbNode, node.type); } - function forEachEnumDeclaration(node: EnumDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInEnumDeclaration(node: EnumDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.members); } - function forEachEnumMember(node: EnumMember, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInEnumMember(node: EnumMember, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name) || visitNode(cbNode, node.initializer); } - function forEachModuleDeclaration(node: ModuleDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInModuleDeclaration(node: ModuleDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.body); } - function forEachImportEqualsDeclaration(node: ImportEqualsDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInImportEqualsDeclaration(node: ImportEqualsDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.moduleReference); } - function forEachImportDeclaration(node: ImportDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInImportDeclaration(node: ImportDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.importClause) || @@ -820,38 +820,38 @@ namespace ts { visitNode(cbNode, node.assertClause); } - function forEachImportClause(node: ImportClause, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInImportClause(node: ImportClause, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name) || visitNode(cbNode, node.namedBindings); } - function forEachAssertClause(node: AssertClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInAssertClause(node: AssertClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.elements); } - function forEachAssertEntry(node: AssertEntry, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInAssertEntry(node: AssertEntry, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name) || visitNode(cbNode, node.value); } - function forEachNamespaceExportDeclaration(node: NamespaceExportDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInNamespaceExportDeclaration(node: NamespaceExportDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNode(cbNode, node.name); } - function forEachNamespaceImport(node: NamespaceImport, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInNamespaceImport(node: NamespaceImport, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name); } - function forEachNamespaceExport(node: NamespaceExport, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInNamespaceExport(node: NamespaceExport, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name); } - function forEachNamedImportsOrExports(node: NamedImports, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInNamedImportsOrExports(node: NamedImports, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.elements); } - function forEachExportDeclaration(node: ExportDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInExportDeclaration(node: ExportDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.exportClause) || @@ -859,135 +859,135 @@ namespace ts { visitNode(cbNode, node.assertClause); } - function forEachImportOrExportSpecifier(node: ImportSpecifier, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInImportOrExportSpecifier(node: ImportSpecifier, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.name); } - function forEachExportAssignment(node: ExportAssignment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInExportAssignment(node: ExportAssignment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers) || visitNode(cbNode, node.expression); } - function forEachTemplateExpression(node: TemplateExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTemplateExpression(node: TemplateExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans); } - function forEachTemplateSpan(node: TemplateSpan, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTemplateSpan(node: TemplateSpan, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal); } - function forEachTemplateLiteralType(node: TemplateLiteralTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTemplateLiteralType(node: TemplateLiteralTypeNode, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans); } - function forEachTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInTemplateLiteralTypeSpan(node: TemplateLiteralTypeSpan, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.type) || visitNode(cbNode, node.literal); } - function forEachComputedPropertyName(node: ComputedPropertyName, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInComputedPropertyName(node: ComputedPropertyName, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachHeritageClause(node: HeritageClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInHeritageClause(node: HeritageClause, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.types); } - function forEachExpressionWithTypeArguments(node: ExpressionWithTypeArguments, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInExpressionWithTypeArguments(node: ExpressionWithTypeArguments, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.typeArguments); } - function forEachExternalModuleReference(node: ExternalModuleReference, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInExternalModuleReference(node: ExternalModuleReference, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachMissingDeclaration(node: MissingDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInMissingDeclaration(node: MissingDeclaration, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.decorators) || visitNodes(cbNode, cbNodes, node.modifiers); } - function forEachCommaListExpression(node: CommaListExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInCommaListExpression(node: CommaListExpression, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.elements); } - function forEachJsxElement(node: JsxElement, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxElement(node: JsxElement, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.openingElement) || visitNodes(cbNode, cbNodes, node.children) || visitNode(cbNode, node.closingElement); } - function forEachJsxFragment(node: JsxFragment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxFragment(node: JsxFragment, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.openingFragment) || visitNodes(cbNode, cbNodes, node.children) || visitNode(cbNode, node.closingFragment); } - function forEachJsxOpeningOrSelfClosingElement(node: JsxOpeningLikeElement, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxOpeningOrSelfClosingElement(node: JsxOpeningLikeElement, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode(cbNode, node.attributes); } - function forEachJsxAttributes(node: JsxAttributes, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxAttributes(node: JsxAttributes, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.properties); } - function forEachJsxAttribute(node: JsxAttribute, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxAttribute(node: JsxAttribute, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name) || visitNode(cbNode, node.initializer); } - function forEachJsxSpreadAttribute(node: JsxSpreadAttribute, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxSpreadAttribute(node: JsxSpreadAttribute, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); } - function forEachJsxExpression(node: JsxExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxExpression(node: JsxExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.expression); } - function forEachJsxClosingElement(node: JsxClosingElement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJsxClosingElement(node: JsxClosingElement, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName); } - function forEachOptionalRestOrJSDocParameterModifier(node: OptionalTypeNode | RestTypeNode | JSDocTypeExpression | JSDocTypeReferencingNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInOptionalRestOrJSDocParameterModifier(node: OptionalTypeNode | RestTypeNode | JSDocTypeExpression | JSDocTypeReferencingNode, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.type); } - function forEachJSDocFunctionType(node: JSDocFunctionType, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocFunctionType(node: JSDocFunctionType, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNodes(cbNode, cbNodes, node.parameters) || visitNode(cbNode, node.type); } - function forEachJSDoc(node: JSDoc, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDoc(node: JSDoc, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)) || visitNodes(cbNode, cbNodes, node.tags); } - function forEachJSDocSeeTag(node: JSDocSeeTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocSeeTag(node: JSDocSeeTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || visitNode(cbNode, node.name) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachJSDocNameReference(node: JSDocNameReference, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocNameReference(node: JSDocNameReference, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name); } - function forEachJSDocMemberName(node: JSDocMemberName, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocMemberName(node: JSDocMemberName, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.left) || visitNode(cbNode, node.right); } - function forEachJSDocParameterOrPropertyTag(node: JSDocParameterTag | JSDocPropertyTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocParameterOrPropertyTag(node: JSDocParameterTag | JSDocPropertyTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || (node.isNameFirst ? visitNode(cbNode, node.name) || @@ -998,31 +998,31 @@ namespace ts { (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment))); } - function forEachJSDocAuthorTag(node: JSDocAuthorTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocAuthorTag(node: JSDocAuthorTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachJSDocImplementsTag(node: JSDocImplementsTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocImplementsTag(node: JSDocImplementsTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || visitNode(cbNode, node.class) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachJSDocAugmentsTag(node: JSDocAugmentsTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocAugmentsTag(node: JSDocAugmentsTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || visitNode(cbNode, node.class) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachJSDocTemplateTag(node: JSDocTemplateTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocTemplateTag(node: JSDocTemplateTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || visitNode(cbNode, node.constraint) || visitNodes(cbNode, cbNodes, node.typeParameters) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachJSDocTypedefTag(node: JSDocTypedefTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocTypedefTag(node: JSDocTypedefTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || (node.typeExpression && node.typeExpression.kind === SyntaxKind.JSDocTypeExpression @@ -1034,39 +1034,39 @@ namespace ts { (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment))); } - function forEachJSDocCallbackTag(node: JSDocCallbackTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocCallbackTag(node: JSDocCallbackTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || visitNode(cbNode, node.fullName) || visitNode(cbNode, node.typeExpression) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachJSDocReturnTag(node: JSDocReturnTag | JSDocTypeTag | JSDocThisTag | JSDocEnumTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocReturnTag(node: JSDocReturnTag | JSDocTypeTag | JSDocThisTag | JSDocEnumTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || visitNode(cbNode, node.typeExpression) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachJSDocSignature(node: JSDocSignature, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocSignature(node: JSDocSignature, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return forEach(node.typeParameters, cbNode) || forEach(node.parameters, cbNode) || visitNode(cbNode, node.type); } - function forEachJSDocLinkCodeOrPlain(node: JSDocLink | JSDocLinkCode | JSDocLinkPlain, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocLinkCodeOrPlain(node: JSDocLink | JSDocLinkCode | JSDocLinkPlain, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.name); } - function forEachJSDocTypeLiteral(node: JSDocTypeLiteral, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocTypeLiteral(node: JSDocTypeLiteral, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return forEach(node.jsDocPropertyTags, cbNode); } - function forEachJSDocTag(node: JSDocTag | JSDocClassTag | JSDocPublicTag | JSDocPrivateTag | JSDocProtectedTag | JSDocReadonlyTag | JSDocDeprecatedTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInJSDocTag(node: JSDocTag | JSDocClassTag | JSDocPublicTag | JSDocPrivateTag | JSDocProtectedTag | JSDocReadonlyTag | JSDocDeprecatedTag, cbNode: (node: Node) => T | undefined, cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.tagName) || (typeof node.comment === "string" ? undefined : visitNodes(cbNode, cbNodes, node.comment)); } - function forEachPartiallyEmittedExpression(node: PartiallyEmittedExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined) { + function forEachChildInPartiallyEmittedExpression(node: PartiallyEmittedExpression, cbNode: (node: Node) => T | undefined, _cbNodes?: (nodes: NodeArray) => T | undefined): T | undefined { return visitNode(cbNode, node.expression); }