boolean (PsiElement place, @NotNull Set<? extends PsiMember> membersToMove, @Nullable PsiClass targetClass, boolean includeSubclasses) { PsiElement parent = place; while (parent != null) { //noinspection SuspiciousMethodCalls if (membersToMove.contains(parent)) return true; if (parent instanceof PsiModifierList && (targetClass == null || targetClass.getModifierList() == parent)) return false; //see IDEADEV-12448 if (parent instanceof PsiClass && targetClass != null) { if (targetClass.equals(parent)) return true; if (includeSubclasses && ((PsiClass) parent).isInheritor(targetClass, true)) return true; } parent = parent.getParent(); } return false; }