boolean (PsiMember element, PsiMember patternElement) { final MatchingHandler handler = myMatchingVisitor.getMatchContext().getPattern().getHandler(patternElement); if (handler instanceof SubstitutionHandler substitutionHandler) { if (!substitutionHandler.isSubtype()) { if (substitutionHandler.isStrictSubtype()) { // check if element is declared not in current class (in ancestors) return element.getContainingClass() != myClazz; } } else { return true; } } // check if element is declared in current class (not in ancestors) return myClazz == null || element.getContainingClass() == myClazz; }