@Override public void visitTryStatement(TryStatementTree tree) { if (!tree.resourceList().isEmpty()) { hasTryWithResource = true; } super.visitTryStatement(tree); }
@Override public void visitTryStatement(TryStatementTree tree) { if (!tree.resourceList().isEmpty()) { hasTryWithResource = true; } super.visitTryStatement(tree); }
@Override public void visitTryStatement(TryStatementTree tree) { BlockTree finallyBlock = tree.finallyBlock(); hasTryFinally |= (finallyBlock != null && !getUsedLocalVarInSubTree(finallyBlock, methodSymbol).isEmpty()) || !tree.resourceList().isEmpty(); if (!hasTryFinally) { super.visitTryStatement(tree); } }
@Override public void visitNode(Tree tree) { if (tree.is(Tree.Kind.METHOD_INVOCATION)) { super.visitNode(tree); } else if (tree.is(Tree.Kind.FOR_STATEMENT)) { ForStatementTree fst = (ForStatementTree) tree; inWhileLoop.push(fst.initializer().isEmpty() && fst.condition() == null && fst.update().isEmpty()); } else { inWhileLoop.push(true); } }
@Override public void visitNode(Tree tree) { ForStatementTree forStatementTree = (ForStatementTree) tree; if (forStatementTree.initializer().isEmpty() && forStatementTree.update().isEmpty() && forStatementTree.condition() != null) { context.reportIssue(this, forStatementTree.forKeyword(), "Replace this \"for\" loop with a \"while\" loop."); } } }
@Override public void visitTryStatement(TryStatementTree tree) { BlockTree finallyBlock = tree.finallyBlock(); hasTryFinally |= (finallyBlock != null && !getUsedLocalVarInSubTree(finallyBlock, methodSymbol).isEmpty()) || !tree.resourceList().isEmpty(); if (!hasTryFinally) { super.visitTryStatement(tree); } }
private static boolean isExcludeElement(AssignmentExpressionTree assignment) { ExpressionTree expression = assignment.expression(); boolean isExcludeElement = EXCLUDE_ELEMENTS.contains(assignment.variable().toString()); boolean arrayNotEmpty = expression.is(Tree.Kind.NEW_ARRAY) && !((NewArrayTree) expression).initializers().isEmpty(); return isExcludeElement && arrayNotEmpty; } }
private static boolean isExcludeElement(AssignmentExpressionTree assignment) { ExpressionTree expression = assignment.expression(); boolean isExcludeElement = EXCLUDE_ELEMENTS.contains(assignment.variable().toString()); boolean arrayNotEmpty = expression.is(Tree.Kind.NEW_ARRAY) && !((NewArrayTree) expression).initializers().isEmpty(); return isExcludeElement && arrayNotEmpty; } }
@Override public void visitNode(Tree tree) { ForStatementTree forStatementTree = (ForStatementTree) tree; if (forStatementTree.initializer().isEmpty() && forStatementTree.update().isEmpty() && forStatementTree.condition() != null) { context.reportIssue(this, forStatementTree.forKeyword(), "Replace this \"for\" loop with a \"while\" loop."); } } }
private void completeTypeParameters(TypeParameters typeParameters, Resolve.Env env) { for (TypeParameterTree typeParameterTree : typeParameters) { List<JavaType> bounds = Lists.newArrayList(); if(typeParameterTree.bounds().isEmpty()) { bounds.add(symbols.objectType); } else { for (Tree boundTree : typeParameterTree.bounds()) { bounds.add(resolveType(env, boundTree)); } } ((TypeVariableJavaType) semanticModel.getSymbol(typeParameterTree).type()).bounds = bounds; } }
private static SyntaxToken getLastTokenFromSignature(MethodTree methodTree) { if (methodTree.throwsClauses().isEmpty()) { return methodTree.closeParenToken(); } else { return getIdentifierToken(Iterables.getLast(methodTree.throwsClauses())); } }
@Override public void visitNode(Tree tree) { ListTree<Tree> resources = ((TryStatementTree) tree).resourceList(); // need only (resources.size - 1) separators if (!resources.isEmpty() && resources.separators().size() == resources.size()) { reportIssue(Iterables.getLast(resources.separators()), "Remove this extraneous semicolon."); } }
@Override public void visitNode(Tree tree) { ListTree<TypeTree> thrownList = ((MethodTree) tree).throwsClauses(); if (!hasSemantic() || thrownList.isEmpty()) { return; } checkMethodThrownList((MethodTree) tree, thrownList); }
@Override public void visitNode(Tree tree) { ListTree<Tree> resources = ((TryStatementTree) tree).resourceList(); // need only (resources.size - 1) separators if (!resources.isEmpty() && resources.separators().size() == resources.size()) { reportIssue(Iterables.getLast(resources.separators()), "Remove this extraneous semicolon."); } }
@Override public void visitNode(Tree tree) { ListTree<TypeTree> thrownList = ((MethodTree) tree).throwsClauses(); if (!hasSemantic() || thrownList.isEmpty()) { return; } checkMethodThrownList((MethodTree) tree, thrownList); }
private static SyntaxToken getLastTokenFromSignature(MethodTree methodTree) { if (methodTree.throwsClauses().isEmpty()) { return methodTree.closeParenToken(); } else { return getIdentifierToken(Iterables.getLast(methodTree.throwsClauses())); } }
@Override public void visitNode(Tree tree) { MethodTreeImpl methodTree = (MethodTreeImpl) tree; if (methodTree.isMainMethod() && !methodTree.throwsClauses().isEmpty()) { reportIssue(methodTree.throwsToken(), "Remove this throws clause."); } } }
@Override public void visitNode(Tree tree) { MethodTreeImpl methodTree = (MethodTreeImpl) tree; if (methodTree.isMainMethod() && !methodTree.throwsClauses().isEmpty()) { reportIssue(methodTree.throwsToken(), "Remove this throws clause."); } } }
@Override public void visitVariable(VariableTree tree) { ExpressionTree initializer = tree.initializer(); boolean arrayNotInitialized = initializer != null && initializer.is(Kind.NEW_ARRAY) && ((NewArrayTree) initializer).initializers().isEmpty(); boolean isFinalOrNoSemantic = context.getSemanticModel() == null || tree.symbol().isFinal(); if (arrayNotInitialized || !isFinalOrNoSemantic) { super.visitVariable(tree); } }
@Override public void visitVariable(VariableTree tree) { ExpressionTree initializer = tree.initializer(); boolean arrayNotInitialized = initializer != null && initializer.is(Kind.NEW_ARRAY) && ((NewArrayTree) initializer).initializers().isEmpty(); boolean isFinalOrNoSemantic = context.getSemanticModel() == null || tree.symbol().isFinal(); if (arrayNotInitialized || !isFinalOrNoSemantic) { super.visitVariable(tree); } }