boolean (@NotNull String subType, @NotNull String superType, @Nullable Project project) { if (project == null) { return subType.equals(superType); } ArrayClass nodeClass = getArrayClass(subType); ArrayClass rendererClass = getArrayClass(superType); if (nodeClass == null || rendererClass == null) return false; if (nodeClass.dims == rendererClass.dims) { GlobalSearchScope scope = GlobalSearchScope.allScope(project); PsiClass psiNodeClass = JavaPsiFacade.getInstance(project).findClass(nodeClass.className, scope); PsiClass psiRendererClass = JavaPsiFacade.getInstance(project).findClass(rendererClass.className, scope); return InheritanceUtil.isInheritorOrSelf(psiNodeClass, psiRendererClass, true); } else if (nodeClass.dims > rendererClass.dims) { return rendererClass.className.equals(CommonClassNames.JAVA_LANG_OBJECT); } return false; }