public Tree visitMethodInvocation()

in javac-ast-extension/src/org/jetbrains/jps/javac/ast/JavacTreeRefScanner.java [152:172]


  public Tree visitMethodInvocation(MethodInvocationTree node, JavacReferenceCollectorListener.ReferenceCollector collector) {
    if (node.getMethodSelect() instanceof IdentifierTree) {
      Element element = collector.getReferencedElement(node.getMethodSelect());
      if (element != null && element.getKind() != ElementKind.CONSTRUCTOR) {
        Set<Modifier> modifiers = element.getModifiers();
        if (!modifiers.contains(Modifier.STATIC) && !modifiers.contains(Modifier.PRIVATE)) {
          final TypeElement currentClass = getCurrentEnclosingTypeElement();
          TypeElement actualQualifier = findQualifier(element, currentClass);
          //means java.lang.Object's method called from an interface
          if (actualQualifier == null) {
            actualQualifier = currentClass;
          }
          collector.sinkReference(collector.asJavacRef(currentClass, element, actualQualifier));
          scan(node.getTypeArguments(), collector);
          scan(node.getArguments(), collector);
          return null;
        }
      }
    }
    return super.visitMethodInvocation(node, collector);
  }