boolean (PsiClass aClass, PsiSubstitutor substitutor, PsiMethod method) { final PsiMethod methodBySignature = MethodSignatureUtil.findMethodBySignature(aClass, method.getSignature(substitutor), false); if (methodBySignature == null) return false; final PsiMethod[] superMethods = methodBySignature.findDeepestSuperMethods(); if (superMethods.length == 0) return false; final boolean is15 = !PsiUtil.isLanguageLevel6OrHigher(methodBySignature); if (is15) { for (PsiMethod psiMethod : superMethods) { final PsiClass psiClass = psiMethod.getContainingClass(); if (psiClass != null && psiClass.isInterface()) { return false; } } } return true; }