@Override public void visitNewClass(NewClassTree tree) { super.visitNewClass(tree); visitMethodSymbol(tree.constructorSymbol()); }
@Override public void visitNewClass(NewClassTree tree) { checkIfThrowThrowable(tree.constructorSymbol()); super.visitNewClass(tree); }
@Override public void visitNewClass(NewClassTree tree) { addThrownTypes(tree.constructorSymbol()); super.visitNewClass(tree); }
@Override public void visitNewClass(NewClassTree tree) { if (isThrowingJavaLangException(tree.constructorSymbol())) { return; } super.visitNewClass(tree); }
@Override public void visitNewClass(NewClassTree tree) { super.visitNewClass(tree); visitMethodSymbol(tree.constructorSymbol()); }
@Override public void visitNewClass(NewClassTree tree) { addThrownTypes(tree.constructorSymbol()); super.visitNewClass(tree); }
@Override public void visitNewClass(NewClassTree tree) { if (isThrowingJavaLangException(tree.constructorSymbol())) { return; } super.visitNewClass(tree); }
@Override public void visitNewClass(NewClassTree tree) { checkIfThrowThrowable(tree.constructorSymbol()); super.visitNewClass(tree); }
private void checkIfUnknown(NewClassTree nct) { if (nct.constructorSymbol().isUnknown()) { unresolvedMethodNames.add(constructorName(nct.identifier())); } }
private void checkIfUnknown(NewClassTree nct) { if (nct.constructorSymbol().isUnknown()) { unresolvedMethodNames.add(constructorName(nct.identifier())); } }
@Override public void visitNewClass(NewClassTree tree) { if (tree.constructorSymbol().isUnknown()) { context.reportIssue(this, tree.identifier(), "Constructor not resolved"); } } }
@Override public void visitNewClass(NewClassTree tree) { checkMethodInvocationArgument(tree.arguments(), tree.constructorSymbol()); super.visitNewClass(tree); }
@Override public void visitNewClass(NewClassTree tree) { checkMethodInvocationArgument(tree.arguments(), tree.constructorSymbol()); super.visitNewClass(tree); }
@Override protected void onConstructorFound(NewClassTree newClassTree) { Symbol symbol = newClassTree.constructorSymbol(); if (symbol.isMethodSymbol()) { Symbol.MethodSymbol constructor = (Symbol.MethodSymbol) symbol; String signature = constructor.owner().name() + "(" + Joiner.on(',').join(constructor.parameterTypes()) + ")"; reportIssue(newClassTree.identifier(), "Remove this use of constructor \"" + signature + "\""); } }
@Override public void visitNewClass(NewClassTree syntaxTree) { Symbol symbol = syntaxTree.constructorSymbol(); if (symbol.isMethodSymbol()) { int peekSize = syntaxTree.arguments().size(); List<SymbolicValue> argumentValues = Lists.reverse(programState.peekValues(peekSize)); checkNullArguments(syntaxTree, (JavaSymbol.MethodJavaSymbol) symbol, argumentValues); } }
private void buildNewClass(NewClassTree tree) { handleExceptionalPaths(tree.constructorSymbol()); currentBlock.elements.add(tree); build(tree.arguments()); ExpressionTree enclosingExpression = tree.enclosingExpression(); if (enclosingExpression != null) { build(enclosingExpression); } }
private void buildNewClass(NewClassTree tree) { handleExceptionalPaths(tree.constructorSymbol()); currentBlock.elements.add(tree); build(tree.arguments()); ExpressionTree enclosingExpression = tree.enclosingExpression(); if (enclosingExpression != null) { build(enclosingExpression); } }
@Override public void visitNewClass(NewClassTree syntaxTree) { Symbol symbol = syntaxTree.constructorSymbol(); if (symbol.isMethodSymbol()) { int peekSize = syntaxTree.arguments().size(); List<SymbolicValue> argumentValues = Lists.reverse(programState.peekValues(peekSize)); checkNullArguments(syntaxTree, (JavaSymbol.MethodJavaSymbol) symbol, argumentValues); } }
@Override public ProgramState checkPreStatement(CheckerContext context, Tree syntaxNode) { ProgramState state = context.getState(); if (syntaxNode.is(Tree.Kind.METHOD_INVOCATION)) { MethodInvocationTree mit = (MethodInvocationTree) syntaxNode; checkParameters(mit, mit.symbol(), mit.arguments(), state); } else if (syntaxNode.is(Tree.Kind.NEW_CLASS)) { NewClassTree nct = (NewClassTree) syntaxNode; checkParameters(nct, nct.constructorSymbol(), nct.arguments(), state); } return state; }
@Override public ProgramState checkPreStatement(CheckerContext context, Tree syntaxNode) { ProgramState state = context.getState(); if (syntaxNode.is(Tree.Kind.METHOD_INVOCATION)) { MethodInvocationTree mit = (MethodInvocationTree) syntaxNode; checkParameters(mit, mit.symbol(), mit.arguments(), state); } else if (syntaxNode.is(Tree.Kind.NEW_CLASS)) { NewClassTree nct = (NewClassTree) syntaxNode; checkParameters(nct, nct.constructorSymbol(), nct.arguments(), state); } return state; }