private boolean isMemberBloc(AstNode parent) { return parent.is( CSharpGrammar.METHOD_BODY, CSharpGrammar.ACCESSOR_BODY, CSharpGrammar.ADD_ACCESSOR_DECLARATION, CSharpGrammar.REMOVE_ACCESSOR_DECLARATION, CSharpGrammar.OPERATOR_BODY, CSharpGrammar.CONSTRUCTOR_BODY, CSharpGrammar.DESTRUCTOR_BODY, CSharpGrammar.STATIC_CONSTRUCTOR_BODY); }
@Override public void leaveNode(AstNode node) { if (node.is(PythonGrammar.FUNCDEF)) { functionNestingLevel--; } } }
@Override public void leaveNode(AstNode astNode) { if (astNode.is(DECLARATIONS)) { currentFile.inDeclaration = false; } }
private AstNode getFirstAncestor(AstNode node, AstNodeType t1, AstNodeType t2) { AstNode result = node; while (result != null && !result.is(t1, t2)) { result = result.getParent(); } return result; }
@Override public void leaveNode(AstNode astNode) { if (astNode.is(CSharpGrammar.FOR_STATEMENT)) { counters.removeAll(getLoopsCounters(astNode)); pendingCounters = Collections.emptySet(); } }
@Override public void leaveNode(AstNode astNode) { if (astNode.is(FUNCTIONS)) { reportUnusedVariable(); currentScope = currentScope.outerScope; } }
private boolean isExcluded(AstNode rcurly) { return rcurly.getParent().is( CSharpGrammar.ARRAY_INITIALIZER, CSharpGrammar.COLLECTION_INITIALIZER, CSharpGrammar.OBJECT_INITIALIZER); }
@Override public void leaveNode(AstNode node) { if (node.is(CSharpGrammar.CLASS_DECLARATION) && types.size() > couplingThreshold) { getContext().createLineViolation( this, "Refactor this class that is coupled to " + types.size() + " other classes (which is higher than " + couplingThreshold + " authorized).", node); } }
@Override public void visitNode(AstNode astNode) { if (astNode.is(PHPGrammar.CLASS_DECLARATION)) { retrieveCoupledTypes(astNode); } else { retrieveInstantiatedClassName(astNode); } }
private boolean isWrapperFunction(AstNode childFunction) { if(astNode != null && astNode.is(PythonGrammar.FUNCDEF)) { AstNode childStatement = childFunction.getParent().getParent(); return astNode.getFirstChild(PythonGrammar.SUITE) .getChildren(PythonGrammar.STATEMENT) .stream() .filter(statement -> statement != childStatement) .allMatch(NestingLevel::isSimpleReturn); } return false; }
public AstSelect firstAncestor(AstNodeType... types) { AstNode result = node.getParent(); while (result != null && !result.is(types)) { result = result.getParent(); } return AstSelectFactory.select(result); }
@Override public void visitNode(AstNode node) { if (node.getFirstChild().is(CSharpPunctuator.SEMICOLON)) { getContext().createLineViolation(this, "Remove this empty statement.", node); } }
private AstNode getBooleanLiteralFromUnaryExpression(AstNode unaryExpression) { AstNode boolLiteral = null; if (unaryExpression.getFirstChild().is(CSharpPunctuator.EXCLAMATION)) { AstNode expr = unaryExpression.getLastChild(); if (isBooleanLiteral(expr)) { boolLiteral = expr; } } return boolLiteral; }
@Override public void visitNode(AstNode astNode) { if (astNode.is(PHPKeyword.GLOBAL) || isGlobalsArray(astNode)) { getContext().createLineViolation(this, "Pass this global variable to the function as a parameter rather than accessing it directly.", astNode); } }
private static AstNode getDeprecatedConstructor(AstNode astNode) { String className = astNode.getFirstChild(PHPGrammar.IDENTIFIER).getTokenOriginalValue(); for (AstNode classStmt : astNode.getChildren(PHPGrammar.CLASS_STATEMENT)) { AstNode stmt = classStmt.getFirstChild(); if (stmt.is(PHPGrammar.METHOD_DECLARATION) && className.equals(getMethodName(stmt))) { return stmt; } } return null; }
@Override public void visitNode(AstNode astNode) { if (astNode.is(Kind.RETURN_STATEMENT) && isLastReturnStatement(astNode)) { return; } getContext().peekSourceCode().add(EcmaScriptMetric.COMPLEXITY, 1); }
private void retrieveTypeFromParameter(AstNode methodDeclaration) { AstNode parameterList = methodDeclaration.getFirstChild(PHPGrammar.PARAMETER_LIST); if (parameterList != null) { for (AstNode parameter : parameterList.getChildren(PHPGrammar.PARAMETER)) { AstNode classType = parameter.getFirstChild(PHPGrammar.OPTIONAL_CLASS_TYPE); if (classType != null && classType.getFirstChild().is(PHPGrammar.FULLY_QUALIFIED_CLASS_NAME)) { types.add(getClassName(classType.getFirstChild())); } } } }
@Override public void visitNode(AstNode astNode) { if (astNode.is(FunctionUtils.functions())) { enterScope(); checkParameters(astNode); } else if (inScope()) { checkLocalVariable(astNode); } }