Index: pkg/analyzer/lib/dart/ast/visitor.dart |
diff --git a/pkg/analyzer/lib/dart/ast/visitor.dart b/pkg/analyzer/lib/dart/ast/visitor.dart |
index 0cdb170b99d4278b137edb5ed5c9339b3ae3153b..f76fb1dc0b2ed36800711bec541633aa97858ad1 100644 |
--- a/pkg/analyzer/lib/dart/ast/visitor.dart |
+++ b/pkg/analyzer/lib/dart/ast/visitor.dart |
@@ -93,6 +93,809 @@ class BreadthFirstVisitor<R> extends GeneralizingAstVisitor<R> { |
/** |
* An AST visitor that will recursively visit all of the nodes in an AST |
+ * structure. For each node that is visited, the corresponding visit method on |
+ * one or more other visitors (the 'delegates') will be invoked. |
+ * |
+ * For example, if an instance of this class is created with two delegates V1 |
+ * and V2, and that instance is used to visit the expression 'x + 1', then the |
+ * following visit methods will be invoked: |
+ * 1. V1.visitBinaryExpression |
+ * 2. V2.visitBinaryExpression |
+ * 3. V1.visitSimpleIdentifier |
+ * 4. V2.visitSimpleIdentifier |
+ * 5. V1.visitIntegerLiteral |
+ * 6. V2.visitIntegerLiteral |
+ * |
+ * Clients may not extend, implement or mix-in this class. |
+ */ |
+class DelegatingAstVisitor<T> implements AstVisitor<T> { |
+ /** |
+ * The delegates whose visit methods will be invoked. |
+ */ |
+ final Iterable<AstVisitor<T>> _delegates; |
+ |
+ /** |
+ * Initialize a newly created visitor to use each of the given delegate |
+ * visitors to visit the nodes of an AST structure. |
+ */ |
+ DelegatingAstVisitor(this._delegates); |
+ |
+ @override |
+ T visitAdjacentStrings(AdjacentStrings node) { |
+ _delegates.forEach((delegate) => delegate.visitAdjacentStrings(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitAnnotation(Annotation node) { |
+ _delegates.forEach((delegate) => delegate.visitAnnotation(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitArgumentList(ArgumentList node) { |
+ _delegates.forEach((delegate) => delegate.visitArgumentList(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitAsExpression(AsExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitAsExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitAssertStatement(AssertStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitAssertStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitAssignmentExpression(AssignmentExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitAssignmentExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitAwaitExpression(AwaitExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitAwaitExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitBinaryExpression(BinaryExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitBinaryExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitBlock(Block node) { |
+ _delegates.forEach((delegate) => delegate.visitBlock(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitBlockFunctionBody(BlockFunctionBody node) { |
+ _delegates.forEach((delegate) => delegate.visitBlockFunctionBody(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitBooleanLiteral(BooleanLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitBooleanLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitBreakStatement(BreakStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitBreakStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitCascadeExpression(CascadeExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitCascadeExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitCatchClause(CatchClause node) { |
+ _delegates.forEach((delegate) => delegate.visitCatchClause(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitClassDeclaration(ClassDeclaration node) { |
+ _delegates.forEach((delegate) => delegate.visitClassDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitClassTypeAlias(ClassTypeAlias node) { |
+ _delegates.forEach((delegate) => delegate.visitClassTypeAlias(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitComment(Comment node) { |
+ _delegates.forEach((delegate) => delegate.visitComment(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitCommentReference(CommentReference node) { |
+ _delegates.forEach((delegate) => delegate.visitCommentReference(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitCompilationUnit(CompilationUnit node) { |
+ _delegates.forEach((delegate) => delegate.visitCompilationUnit(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitConditionalExpression(ConditionalExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitConditionalExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitConfiguration(Configuration node) { |
+ _delegates.forEach((delegate) => delegate.visitConfiguration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitConstructorDeclaration(ConstructorDeclaration node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitConstructorDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitConstructorFieldInitializer(ConstructorFieldInitializer node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitConstructorFieldInitializer(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitConstructorName(ConstructorName node) { |
+ _delegates.forEach((delegate) => delegate.visitConstructorName(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitContinueStatement(ContinueStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitContinueStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitDeclaredIdentifier(DeclaredIdentifier node) { |
+ _delegates.forEach((delegate) => delegate.visitDeclaredIdentifier(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitDefaultFormalParameter(DefaultFormalParameter node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitDefaultFormalParameter(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitDoStatement(DoStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitDoStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitDottedName(DottedName node) { |
+ _delegates.forEach((delegate) => delegate.visitDottedName(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitDoubleLiteral(DoubleLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitDoubleLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitEmptyFunctionBody(EmptyFunctionBody node) { |
+ _delegates.forEach((delegate) => delegate.visitEmptyFunctionBody(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitEmptyStatement(EmptyStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitEmptyStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitEnumConstantDeclaration(EnumConstantDeclaration node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitEnumConstantDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitEnumDeclaration(EnumDeclaration node) { |
+ _delegates.forEach((delegate) => delegate.visitEnumDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitExportDirective(ExportDirective node) { |
+ _delegates.forEach((delegate) => delegate.visitExportDirective(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitExpressionFunctionBody(ExpressionFunctionBody node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitExpressionFunctionBody(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitExpressionStatement(ExpressionStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitExpressionStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitExtendsClause(ExtendsClause node) { |
+ _delegates.forEach((delegate) => delegate.visitExtendsClause(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFieldDeclaration(FieldDeclaration node) { |
+ _delegates.forEach((delegate) => delegate.visitFieldDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFieldFormalParameter(FieldFormalParameter node) { |
+ _delegates.forEach((delegate) => delegate.visitFieldFormalParameter(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitForEachStatement(ForEachStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitForEachStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFormalParameterList(FormalParameterList node) { |
+ _delegates.forEach((delegate) => delegate.visitFormalParameterList(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitForStatement(ForStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitForStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFunctionDeclaration(FunctionDeclaration node) { |
+ _delegates.forEach((delegate) => delegate.visitFunctionDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFunctionDeclarationStatement(FunctionDeclarationStatement node) { |
+ _delegates.forEach( |
+ (delegate) => delegate.visitFunctionDeclarationStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFunctionExpression(FunctionExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitFunctionExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFunctionExpressionInvocation(FunctionExpressionInvocation node) { |
+ _delegates.forEach( |
+ (delegate) => delegate.visitFunctionExpressionInvocation(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFunctionTypeAlias(FunctionTypeAlias node) { |
+ _delegates.forEach((delegate) => delegate.visitFunctionTypeAlias(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) { |
+ _delegates.forEach( |
+ (delegate) => delegate.visitFunctionTypedFormalParameter(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitHideCombinator(HideCombinator node) { |
+ _delegates.forEach((delegate) => delegate.visitHideCombinator(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitIfStatement(IfStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitIfStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitImplementsClause(ImplementsClause node) { |
+ _delegates.forEach((delegate) => delegate.visitImplementsClause(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitImportDirective(ImportDirective node) { |
+ _delegates.forEach((delegate) => delegate.visitImportDirective(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitIndexExpression(IndexExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitIndexExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitInstanceCreationExpression(InstanceCreationExpression node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitInstanceCreationExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitIntegerLiteral(IntegerLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitIntegerLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitInterpolationExpression(InterpolationExpression node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitInterpolationExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitInterpolationString(InterpolationString node) { |
+ _delegates.forEach((delegate) => delegate.visitInterpolationString(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitIsExpression(IsExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitIsExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitLabel(Label node) { |
+ _delegates.forEach((delegate) => delegate.visitLabel(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitLabeledStatement(LabeledStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitLabeledStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitLibraryDirective(LibraryDirective node) { |
+ _delegates.forEach((delegate) => delegate.visitLibraryDirective(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitLibraryIdentifier(LibraryIdentifier node) { |
+ _delegates.forEach((delegate) => delegate.visitLibraryIdentifier(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitListLiteral(ListLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitListLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitMapLiteral(MapLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitMapLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitMapLiteralEntry(MapLiteralEntry node) { |
+ _delegates.forEach((delegate) => delegate.visitMapLiteralEntry(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitMethodDeclaration(MethodDeclaration node) { |
+ _delegates.forEach((delegate) => delegate.visitMethodDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitMethodInvocation(MethodInvocation node) { |
+ _delegates.forEach((delegate) => delegate.visitMethodInvocation(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitNamedExpression(NamedExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitNamedExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitNativeClause(NativeClause node) { |
+ _delegates.forEach((delegate) => delegate.visitNativeClause(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitNativeFunctionBody(NativeFunctionBody node) { |
+ _delegates.forEach((delegate) => delegate.visitNativeFunctionBody(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitNullLiteral(NullLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitNullLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitParenthesizedExpression(ParenthesizedExpression node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitParenthesizedExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitPartDirective(PartDirective node) { |
+ _delegates.forEach((delegate) => delegate.visitPartDirective(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitPartOfDirective(PartOfDirective node) { |
+ _delegates.forEach((delegate) => delegate.visitPartOfDirective(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitPostfixExpression(PostfixExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitPostfixExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitPrefixedIdentifier(PrefixedIdentifier node) { |
+ _delegates.forEach((delegate) => delegate.visitPrefixedIdentifier(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitPrefixExpression(PrefixExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitPrefixExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitPropertyAccess(PropertyAccess node) { |
+ _delegates.forEach((delegate) => delegate.visitPropertyAccess(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitRedirectingConstructorInvocation( |
+ RedirectingConstructorInvocation node) { |
+ _delegates.forEach( |
+ (delegate) => delegate.visitRedirectingConstructorInvocation(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitRethrowExpression(RethrowExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitRethrowExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitReturnStatement(ReturnStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitReturnStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitScriptTag(ScriptTag node) { |
+ _delegates.forEach((delegate) => delegate.visitScriptTag(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitShowCombinator(ShowCombinator node) { |
+ _delegates.forEach((delegate) => delegate.visitShowCombinator(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSimpleFormalParameter(SimpleFormalParameter node) { |
+ _delegates.forEach((delegate) => delegate.visitSimpleFormalParameter(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSimpleIdentifier(SimpleIdentifier node) { |
+ _delegates.forEach((delegate) => delegate.visitSimpleIdentifier(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSimpleStringLiteral(SimpleStringLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitSimpleStringLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitStringInterpolation(StringInterpolation node) { |
+ _delegates.forEach((delegate) => delegate.visitStringInterpolation(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSuperConstructorInvocation(SuperConstructorInvocation node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitSuperConstructorInvocation(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSuperExpression(SuperExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitSuperExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSwitchCase(SwitchCase node) { |
+ _delegates.forEach((delegate) => delegate.visitSwitchCase(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSwitchDefault(SwitchDefault node) { |
+ _delegates.forEach((delegate) => delegate.visitSwitchDefault(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSwitchStatement(SwitchStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitSwitchStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitSymbolLiteral(SymbolLiteral node) { |
+ _delegates.forEach((delegate) => delegate.visitSymbolLiteral(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitThisExpression(ThisExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitThisExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitThrowExpression(ThrowExpression node) { |
+ _delegates.forEach((delegate) => delegate.visitThrowExpression(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitTopLevelVariableDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitTryStatement(TryStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitTryStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitTypeArgumentList(TypeArgumentList node) { |
+ _delegates.forEach((delegate) => delegate.visitTypeArgumentList(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitTypeName(TypeName node) { |
+ _delegates.forEach((delegate) => delegate.visitTypeName(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitTypeParameter(TypeParameter node) { |
+ _delegates.forEach((delegate) => delegate.visitTypeParameter(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitTypeParameterList(TypeParameterList node) { |
+ _delegates.forEach((delegate) => delegate.visitTypeParameterList(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitVariableDeclaration(VariableDeclaration node) { |
+ _delegates.forEach((delegate) => delegate.visitVariableDeclaration(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitVariableDeclarationList(VariableDeclarationList node) { |
+ _delegates |
+ .forEach((delegate) => delegate.visitVariableDeclarationList(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitVariableDeclarationStatement(VariableDeclarationStatement node) { |
+ _delegates.forEach( |
+ (delegate) => delegate.visitVariableDeclarationStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitWhileStatement(WhileStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitWhileStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitWithClause(WithClause node) { |
+ _delegates.forEach((delegate) => delegate.visitWithClause(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+ |
+ @override |
+ T visitYieldStatement(YieldStatement node) { |
+ _delegates.forEach((delegate) => delegate.visitYieldStatement(node)); |
+ node.visitChildren(this); |
+ return null; |
+ } |
+} |
+ |
+/** |
+ * An AST visitor that will recursively visit all of the nodes in an AST |
* structure (like instances of the class [RecursiveAstVisitor]). In addition, |
* when a node of a specific type is visited not only will the visit method for |
* that specific type of node be invoked, but additional methods for the |