@NotNull
  @Override
  public Collection<? extends GroovyResolveResult> resolve(boolean incomplete) {
    final PsiElement parent = getParent();
    if (parent instanceof GrConstructorInvocation) {
      // Archaeology notice.
      //
      // GrConstructorInvocation only consists of 'this'/'super' keyword and argument list.
      // It has own fake reference, while this GrReferenceExpression exists so user may click on something,
      // i.e. this GrReferenceExpression provides text range for GrConstructorInvocation.
      //
      // GrConstructorInvocation might have had its own real reference with proper range,
      // but instead it returns this GrReferenceExpression as invoked one.
      return ((GrConstructorInvocation)parent).getConstructorReference().resolve(incomplete);
    }

    final Collection<? extends GroovyResolveResult> staticResults = getStaticReference().resolve(false);
    if (!staticResults.isEmpty()) {
      return staticResults;
    }

    final GroovyReference callReference = getCallReference();
    if (callReference != null) {
      return callReference.resolve(incomplete);
    }

    return TypeInferenceHelper.getCurrentContext().resolve(this, incomplete, RESOLVER);
  }
@NotNull
  @Override
  public Collection<? extends GroovyResolveResult> resolve(boolean incomplete)