PsiSubstitutor (@NotNull PsiClass superClass, @NotNull PsiClass derivedClass, @NotNull PsiSubstitutor derivedSubstitutor) { if (!superClass.hasTypeParameters() && superClass.getContainingClass() == null) return PsiSubstitutor.EMPTY; //optimization and protection against EJB queer hierarchy PsiSubstitutor substitutor = getMaybeSuperClassSubstitutor(superClass, derivedClass, derivedSubstitutor); if (substitutor == null) { JavaClassSupers.getInstance().reportHierarchyInconsistency(superClass, derivedClass); return PsiSubstitutor.EMPTY; } return substitutor; }