Source:
public Void visitMethodInvocation(MethodInvocationTree node, Void p) { if (TreeUtils.elementFromUse(node) == null || TreeUtils.isEnumSuper(node)) { return super.visitMethodInvocation(node, p); } if (shouldSkipUses(node)) { return super.visitMethodInvocation(node, p); } ParameterizedExecutableType mType = atypeFactory.methodFromUse(node); AnnotatedExecutableType invokedMethod = mType.executableType; List<AnnotatedTypeMirror> typeargs = mType.typeArgs; if (!atypeFactory.ignoreUninferredTypeArguments) { for (AnnotatedTypeMirror typearg : typeargs) { if (typearg.getKind() == TypeKind.WILDCARD && ((AnnotatedWildcardType) typearg).isUninferredTypeArgument()) { checker.reportError( node, "type.arguments.not.inferred", invokedMethod.getElement().getSimpleName()); break; } } } List<AnnotatedTypeParameterBounds> paramBounds = new ArrayList<>(); for (AnnotatedTypeVariable param : invokedMethod.getTypeVariables()) { paramBounds.add(param.getBounds()); } ExecutableElement method = TreeUtils.elementFromUse(node); Name methodName = method.getSimpleName(); checkTypeArguments( node, paramBounds, typeargs, node.getTypeArguments(), methodName, invokedMethod.getTypeVariables()); List<AnnotatedTypeMirror> params = AnnotatedTypes.expandVarArgs(atypeFactory, invokedMethod, node.getArguments()); checkArguments(params, node.getArguments(), methodName, method.getParameters()); checkVarargs(invokedMethod, node); if (ElementUtils.isMethod( invokedMethod.getElement(), vectorCopyInto, atypeFactory.getProcessingEnv())) { typeCheckVectorCopyIntoArgument(node, params); } ExecutableElement invokedMethodElement = invokedMethod.getElement(); if (!ElementUtils.isStatic(invokedMethodElement) && !TreeUtils.isSuperConstructorCall(node)) { checkMethodInvocability(invokedMethod, node); } checkPreconditions(node, contractsUtils.getPreconditions(invokedMethodElement)); if (TreeUtils.isSuperConstructorCall(node)) { checkSuperConstructorCall(node); } else if (TreeUtils.isThisConstructorCall(node)) { checkThisConstructorCall(node); } scan(node.getMethodSelect(), p); return null; }

Target:
public Void visitMethodInvocation(MethodInvocationTree node, Void p) { if (TreeUtils.elementFromUse(node) == null || TreeUtils.isEnumSuper(node)) { return super.visitMethodInvocation(node, p); } if (shouldSkipUses(node)) { return super.visitMethodInvocation(node, p); } ParameterizedExecutableType mType = atypeFactory.methodFromUse(node); AnnotatedExecutableType invokedMethod = mType.executableType; List<AnnotatedTypeMirror> typeargs = mType.typeArgs; if (!atypeFactory.ignoreUninferredTypeArguments) { for (AnnotatedTypeMirror typearg : typeargs) { if (typearg.getKind() == TypeKind.WILDCARD && ((AnnotatedWildcardType) typearg).isUninferredTypeArgument()) { checker.reportError( node, "type.arguments.not.inferred", invokedMethod.getElement().getSimpleName()); break; } } } List<AnnotatedTypeParameterBounds> paramBounds = new ArrayList<>(); for (AnnotatedTypeVariable param : invokedMethod.getTypeVariables()) { paramBounds.add(param.getBounds()); } ExecutableElement method = invokedMethod.getElement(); Name methodName = method.getSimpleName(); checkTypeArguments( node, paramBounds, typeargs, node.getTypeArguments(), methodName, invokedMethod.getTypeVariables()); List<AnnotatedTypeMirror> params = AnnotatedTypes.expandVarArgs(atypeFactory, invokedMethod, node.getArguments()); checkArguments(params, node.getArguments(), methodName, method.getParameters()); checkVarargs(invokedMethod, node); if (ElementUtils.isMethod( invokedMethod.getElement(), vectorCopyInto, atypeFactory.getProcessingEnv())) { typeCheckVectorCopyIntoArgument(node, params); } ExecutableElement invokedMethodElement = invokedMethod.getElement(); if (!ElementUtils.isStatic(invokedMethodElement) && !TreeUtils.isSuperConstructorCall(node)) { checkMethodInvocability(invokedMethod, node); } checkPreconditions(node, contractsUtils.getPreconditions(invokedMethodElement)); if (TreeUtils.isSuperConstructorCall(node)) { checkSuperConstructorCall(node); } else if (TreeUtils.isThisConstructorCall(node)) { checkThisConstructorCall(node); } scan(node.getMethodSelect(), p); return null; }