@Nullable
  private static Set<PsiClass> getNonCallType(@NotNull PsiReferenceExpression expression, int maxDepth) {
    PsiExpression qualifier = expression.getQualifierExpression();
    if (qualifier == null) {
      PsiElement target = expression.resolve();
      return target instanceof PsiClass ? Collections.singleton((PsiClass)target) : extractClass(expression.getType());
    }

    Set<PsiClass> qualifierType = getPossibleTypes(qualifier, maxDepth - 1);
    String refName = expression.getReferenceName();
    List<? extends PsiMember> members = refName == null || qualifierType == null ? null : getPossibleNonMethods(qualifierType, refName);
    return members == null ? null : getDefiniteSymbolTypes(members, qualifierType);
  }
@Nullable
  private static Set<PsiClass> getNonCallType(@NotNull PsiReferenceExpression expression, int maxDepth)