public static boolean isStaticsOK(@NotNull PsiModifierListOwner member,
                                    @NotNull PsiElement place,
                                    @Nullable PsiElement resolveContext,
                                    boolean filterStaticAfterInstanceQualifier) {
    if (!(member instanceof PsiMember)) return true;
    if (member instanceof PsiMethod && ((PsiMethod)member).isConstructor()) return true;

    if (!(place instanceof GrReferenceExpression)) return true;

    if (member instanceof PsiClass && PsiTreeUtil.isAncestor(member, place, false)) return true;

    GrExpression qualifier = ((GrReferenceExpression)place).getQualifierExpression();
    final PsiClass containingClass = getContainingClass((PsiMember)member);
    if (qualifier != null) {
      return checkQualified(member, place, filterStaticAfterInstanceQualifier, qualifier, containingClass);
    }
    else {
      return checkNonQualified(member, place, resolveContext, containingClass);
    }
  }
public static boolean isStaticsOK(@NotNull PsiModifierListOwner member,
                                    @NotNull PsiElement place,
                                    @Nullable PsiElement resolveContext,
                                    boolean filterStaticAfterInstanceQualifier)