@Override protected Iterable<? extends ExpressionTree> getChildNodes( MethodInvocationTree tree, VisitorState state) { return tree.getArguments(); } }
@Override protected Iterable<? extends ExpressionTree> getChildNodes( MethodInvocationTree methodInvocationTree, VisitorState state) { return methodInvocationTree.getArguments(); } }
@Nullable @Override ExpressionTree extractSourceTree(MethodInvocationTree tree, VisitorState state) { return getOnlyElement(tree.getArguments()); }
@Override FieldWithValue match(String name, MethodInvocationTree tree) { if (name.startsWith("set") && tree.getArguments().size() == 2) { Integer index = ASTHelpers.constValue(tree.getArguments().get(0), Integer.class); if (index != null) { return FieldWithValue.of( RepeatedField.of(name, index), tree, tree.getArguments().get(1)); } } return null; } },
@Override public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) { handleArguments(tree, tree.getArguments(), state); return NO_MATCH; }
@Override FieldWithValue match(String name, MethodInvocationTree tree) { if (name.startsWith("set") && tree.getArguments().size() == 1) { return FieldWithValue.of(SingleField.of(name), tree, tree.getArguments().get(0)); } return null; } },
/** Gets the index of where to insert the delta argument. */ private int getDeltaInsertionIndex( MethodInvocationTree methodInvocationTree, VisitorState state) { JCTree lastArgument = (JCTree) Iterables.getLast(methodInvocationTree.getArguments()); return state.getEndPosition(lastArgument); }
@Override public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) { checkArguments(tree, tree.getArguments(), state); return NO_MATCH; }
private static boolean isDefinitelyInvalidChronoField( MethodInvocationTree tree, Iterable<ChronoField> invalidChronoFields) { Optional<String> constant = getEnumName(Iterables.getOnlyElement(tree.getArguments())); if (constant.isPresent()) { for (ChronoField invalidChronoField : invalidChronoFields) { if (constant.get().equals(invalidChronoField.name())) { return true; } } } return false; }
static InvocationInfo createFromMethodInvocation( MethodInvocationTree tree, MethodSymbol symbol, VisitorState state) { return new AutoValue_InvocationInfo( tree, symbol, ImmutableList.copyOf(tree.getArguments()), getFormalParametersWithoutVarArgs(symbol), state); }
@Override public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) { if (!PATTERN_MATCHER.matches(tree, state)) { return Description.NO_MATCH; } return constructDescription(tree, tree.getArguments().get(0), state); }
@Override public Description matchMethodInvocation(MethodInvocationTree tree, VisitorState state) { Symbol.MethodSymbol sym = ASTHelpers.getSymbol(tree); if (sym == null) { return Description.NO_MATCH; } return matchArguments(state, sym, tree.getArguments().iterator()); }
@Override public Type visitMethodInvocation(MethodInvocationTree tree, Void unused) { return visitMethodInvocationOrNewClass( tree.getArguments(), ASTHelpers.getSymbol(tree), ((JCMethodInvocation) tree).meth.type); }
@Override public List<? extends ExpressionTree> visitMethodInvocation( MethodInvocationTree node, Void unused) { MethodSymbol symbol = ASTHelpers.getSymbol(node); if (symbol == null || !symbol.isStatic()) { return null; } return node.getArguments(); } },
/** Suggest replacing the tolerance with {@code 0} for JUnit assertions. */ private static Description.Builder suggestJunitFix( BugChecker bugChecker, MethodInvocationTree tree) { SuggestedFix fix = SuggestedFix.replace(getLast(tree.getArguments()), "0"); return bugChecker.buildDescription(tree).addFix(fix); }
private String generateFix(MethodInvocationTree methodInvocation, boolean negated) { String methodName = ASTHelpers.getSymbol(methodInvocation).getQualifiedName().toString(); String countMethod = methodName + "Count"; return String.format( "%s.%s() %s %s", getReceiver(methodInvocation), countMethod, negated ? "<=" : ">", getOnlyElement(methodInvocation.getArguments())); } },
private static String getMessageSnippet( StatementTree failStatement, VisitorState state, HasOtherParameters hasOtherParameters) { ExpressionTree expression = ((ExpressionStatementTree) failStatement).getExpression(); MethodSymbol sym = (MethodSymbol) getSymbol(expression); String tail = hasOtherParameters == HasOtherParameters.TRUE ? ", " : ""; // The above casts were checked earlier by failOrAssert. return hasInitialStringParameter(sym, state) ? state.getSourceForNode(((MethodInvocationTree) expression).getArguments().get(0)) + tail : ""; }
@Override Type extractSourceType(MethodInvocationTree tree, VisitorState state) { return extractTypeArgAsMemberOfSupertype( ASTHelpers.getType(Iterables.get(tree.getArguments(), methodArgIndex)), state.getSymbolFromString(methodArgTypeName), methodArgTypeArgIndex, state.getTypes()); }
@Override SuggestedFix fix(Fixer fixer, ExpressionTree tree, VisitorState state) { MethodInvocationTree methodInvocationTree = (MethodInvocationTree) tree; Tree parent = state.getPath().getParentPath().getLeaf(); return parent.getKind() == Kind.EXPRESSION_STATEMENT ? SuggestedFix.delete(parent) : SuggestedFix.replace( tree, state.getSourceForNode(methodInvocationTree.getArguments().get(0))); } };
@Override public UStatement visitExpressionStatement(ExpressionStatementTree tree, Void v) { PlaceholderMethod placeholderMethod = placeholder(tree.getExpression()); if (placeholderMethod != null && placeholderMethod.returnType().equals(UPrimitiveType.VOID)) { MethodInvocationTree invocation = (MethodInvocationTree) tree.getExpression(); return UPlaceholderStatement.create( placeholderMethod, templateExpressions(invocation.getArguments()), ControlFlowVisitor.Result.NEVER_EXITS); } return UExpressionStatement.create(template(tree.getExpression())); }