@Override public boolean endvisit(MethodDeclaration method) throws Exception { methodGlobalVars.pop(); declarations.pop(); for (final PHPSourceElementRequestorExtension visitor : extensions) { visitor.endvisit(method); } return super.endvisit(method); }
public boolean endvisit(LambdaFunctionDeclaration lambdaMethod) throws Exception { methodGlobalVars.pop(); this.fInMethod = false; if (!fNodes.isEmpty() && fNodes.peek() == lambdaMethod) { fRequestor.exitMethod(lambdaMethod.sourceEnd() - 1); fNodes.pop(); } for (final PHPSourceElementRequestorExtension visitor : extensions) { visitor.endvisit(lambdaMethod); } return true; }
@Override public boolean endvisit(Expression node) throws Exception { for (final PHPSourceElementRequestorExtension visitor : extensions) { visitor.endvisit(node); } if (node instanceof Assignment) { return endvisit((Assignment) node); } if (node instanceof ListVariable) { return endvisit((ListVariable) node); } if (node instanceof LambdaFunctionDeclaration) { return endvisit((LambdaFunctionDeclaration) node); } return true; }
@Override public boolean endvisit(ModuleDeclaration declaration) throws Exception { for (final PHPSourceElementRequestorExtension visitor : extensions) { visitor.endvisit(declaration); } while (deferredDeclarations != null && !deferredDeclarations.isEmpty()) { final ASTNode[] declarations = deferredDeclarations.toArray(new ASTNode[deferredDeclarations.size()]); deferredDeclarations.clear(); for (final ASTNode deferred : declarations) { deferred.traverse(this); } } fLastUseParts.clear(); return super.endvisit(declaration); }
@Override public boolean endvisit(TypeDeclaration type) throws Exception { if (type instanceof NamespaceDeclaration) { final NamespaceDeclaration namespaceDecl = (NamespaceDeclaration) type; fLastNamespace = null; // there are no nested namespaces if (namespaceDecl.isGlobal()) { return true; } } declarations.pop(); // resolve more type member declarations resolveMagicMembers(type); for (final PHPSourceElementRequestorExtension visitor : extensions) { visitor.endvisit(type); } return super.endvisit(type); }
@Override public boolean endvisit(Statement node) throws Exception { for (final PHPSourceElementRequestorExtension visitor : extensions) { visitor.endvisit(node); } if (node instanceof PHPFieldDeclaration) { return endvisit((PHPFieldDeclaration) node); } if (node instanceof FieldDeclaration) { return endvisit((FieldDeclaration) node); } if (node instanceof ConstantDeclaration) { return endvisit((ConstantDeclaration) node); } if (node instanceof CatchClause) { return endvisit((CatchClause) node); } if (node instanceof ForEachStatement) { return endvisit((ForEachStatement) node); } return true; }