PsiClass (PsiClass languageFileType, PsiClass language, SearchScope scope) { return ClassInheritorsSearch.search(languageFileType, scope, true).filtering(psiClass -> { UClass uClass = UastContextKt.toUElement(psiClass, UClass.class); if (uClass == null) return false; final UCallExpression expression = getSuperConstructorParameterExpression(uClass); if (expression == null) return false; final UExpression languageParam = expression.getArgumentForParameter(0); if (languageParam == null) return false; final PsiClass paramPsiClass = PsiTypesUtil.getPsiClass(languageParam.getExpressionType()); return language.getManager().areElementsEquivalent(language, paramPsiClass); }).findFirst(); }