Package org.sonar.php.tree.symbols
Class DeclarationVisitor
- java.lang.Object
-
- org.sonar.plugins.php.api.visitors.PHPVisitorCheck
-
- org.sonar.php.tree.symbols.DeclarationVisitor
-
- All Implemented Interfaces:
PHPCheck,VisitorCheck
public class DeclarationVisitor extends PHPVisitorCheck
-
-
Field Summary
-
Fields inherited from class org.sonar.plugins.php.api.visitors.PHPVisitorCheck
MAX_DEPTH
-
-
Method Summary
-
Methods inherited from class org.sonar.plugins.php.api.visitors.PHPVisitorCheck
analyze, analyze, analyze, context, getFullyQualifiedName, init, newIssue, scan, scan, visitArrayAccess, visitArrayAssignmentPattern, visitArrayAssignmentPatternElement, visitArrayInitializerBracket, visitArrayInitializerFunction, visitArrayPair, visitArrowFunctionExpression, visitAssignmentExpression, visitAttribute, visitAttributeGroup, visitBinaryExpression, visitBlock, visitBreakStatement, visitBuiltInType, visitCallArgument, visitCaseClause, visitCastExpression, visitCatchBlock, visitClassPropertyDeclaration, visitCompoundVariable, visitComputedVariable, visitConditionalExpression, visitConstDeclaration, visitContinueStatement, visitDeclareStatement, visitDefaultClause, visitDoWhileStatement, visitEchoTagStatement, visitElseClause, visitElseifClause, visitEmptyStatement, visitExecutionOperator, visitExpandableStringCharacters, visitExpandableStringLiteral, visitExpressionListStatement, visitExpressionStatement, visitForEachStatement, visitForStatement, visitGlobalStatement, visitGotoStatement, visitHeredoc, visitIfStatement, visitInlineHTML, visitLabel, visitLexicalVariables, visitListExpression, visitLiteral, visitMatchConditionClause, visitMatchDefaultClause, visitMatchExpression, visitMemberAccess, visitNameIdentifier, visitNamespaceName, visitNewExpression, visitParameter, visitParameterList, visitParenthesisedExpression, visitPostfixExpression, visitPrefixedCastExpression, visitPrefixExpression, visitReferenceVariable, visitReturnTypeClause, visitScript, visitSpreadArgument, visitStaticStatement, visitSwitchStatement, visitThrowExpression, visitThrowStatement, visitToken, visitTraitAlias, visitTraitMethodReference, visitTraitPrecedence, visitTrivia, visitTryStatement, visitType, visitUnionType, visitUnsetVariableStatement, visitUseClause, visitUseTraitDeclaration, visitVariableDeclaration, visitVariableIdentifier, visitVariableVariable, visitWhileStatement
-
-
-
-
Method Detail
-
visitCompilationUnit
public void visitCompilationUnit(CompilationUnitTree tree)
- Specified by:
visitCompilationUnitin interfaceVisitorCheck- Overrides:
visitCompilationUnitin classPHPVisitorCheck
-
visitClassDeclaration
public void visitClassDeclaration(ClassDeclarationTree tree)
- Specified by:
visitClassDeclarationin interfaceVisitorCheck- Overrides:
visitClassDeclarationin classPHPVisitorCheck
-
visitAnonymousClass
public void visitAnonymousClass(AnonymousClassTree tree)
- Specified by:
visitAnonymousClassin interfaceVisitorCheck- Overrides:
visitAnonymousClassin classPHPVisitorCheck
-
visitMethodDeclaration
public void visitMethodDeclaration(MethodDeclarationTree tree)
- Specified by:
visitMethodDeclarationin interfaceVisitorCheck- Overrides:
visitMethodDeclarationin classPHPVisitorCheck
-
visitFunctionDeclaration
public void visitFunctionDeclaration(FunctionDeclarationTree tree)
- Specified by:
visitFunctionDeclarationin interfaceVisitorCheck- Overrides:
visitFunctionDeclarationin classPHPVisitorCheck
-
visitReturnStatement
public void visitReturnStatement(ReturnStatementTree tree)
- Specified by:
visitReturnStatementin interfaceVisitorCheck- Overrides:
visitReturnStatementin classPHPVisitorCheck
-
visitYieldExpression
public void visitYieldExpression(YieldExpressionTree tree)
- Specified by:
visitYieldExpressionin interfaceVisitorCheck- Overrides:
visitYieldExpressionin classPHPVisitorCheck
-
visitFunctionExpression
public void visitFunctionExpression(FunctionExpressionTree tree)
- Specified by:
visitFunctionExpressionin interfaceVisitorCheck- Overrides:
visitFunctionExpressionin classPHPVisitorCheck
-
visitFunctionCall
public void visitFunctionCall(FunctionCallTree tree)
- Specified by:
visitFunctionCallin interfaceVisitorCheck- Overrides:
visitFunctionCallin classPHPVisitorCheck
-
classSymbolData
public Collection<ClassSymbolData> classSymbolData()
-
classSymbolIndex
public ClassSymbolIndex classSymbolIndex()
-
functionSymbolData
public Collection<FunctionSymbolData> functionSymbolData()
-
functionSymbolIndex
public FunctionSymbolIndex functionSymbolIndex()
-
currentNamespace
public SymbolQualifiedName currentNamespace()
-
visitNamespaceStatement
public void visitNamespaceStatement(NamespaceStatementTree tree)
- Specified by:
visitNamespaceStatementin interfaceVisitorCheck- Overrides:
visitNamespaceStatementin classPHPVisitorCheck
-
isBracketedNamespace
public boolean isBracketedNamespace(NamespaceStatementTree tree)
-
visitUseStatement
public void visitUseStatement(UseStatementTree tree)
- Specified by:
visitUseStatementin interfaceVisitorCheck- Overrides:
visitUseStatementin classPHPVisitorCheck
-
getFullyQualifiedName
public QualifiedName getFullyQualifiedName(NamespaceNameTree name, Symbol.Kind kind)
Resolution rules are defined in http://php.net/manual/en/language.namespaces.rules.phpIf unqualified name (see above link for definition) is a class symbol we resolve it in the current namespace. If it's a function we check if it's declared in current namespace, and if not we resolve as if it was in global namespace. This is imprecise heuristics, because function could be declared in current namespace, but in another source file, thus we will incorrectly consider such functions to be in the global namespace
-
-