diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java index 937ef80b9f82..027151a355cb 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java @@ -144,11 +144,11 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { * @return true if the member is not from an implicit class or if place and member are both in the same implicit class, false otherwise. */ private static boolean fromImplicitClassOutsideThisClass(@NotNull PsiMember member, @NotNull PsiElement place) { - PsiImplicitClass implicitClass = getImplicitClass(member); + PsiImplicitClass implicitClass = PsiTreeUtil.getContextOfType(member, PsiImplicitClass.class); if (implicitClass == null) { return false; } - PsiImplicitClass placeImplicitClass = getImplicitClass(place); + PsiImplicitClass placeImplicitClass = PsiTreeUtil.getContextOfType(place, PsiImplicitClass.class); if (placeImplicitClass == null) { return true; } @@ -156,26 +156,6 @@ public class PsiResolveHelperImpl implements PsiResolveHelper { return !member.getManager().areElementsEquivalent(implicitClass, placeImplicitClass); } - private static @Nullable PsiImplicitClass getImplicitClass(@NotNull PsiElement psiElement) { - PsiImplicitClass implicitClass = PsiTreeUtil.getParentOfType(psiElement, PsiImplicitClass.class); - if (implicitClass != null) { - return implicitClass; - } - //it can be a light member that doesn't have parents, but let's try with a containing file - PsiFile containingFile = psiElement.getContainingFile(); - if (!(containingFile instanceof PsiJavaFile)) { - return null; - } - PsiClass[] classes = ((PsiJavaFile)containingFile).getClasses(); - if(classes.length != 1) { - return null; - } - if(!(classes[0] instanceof PsiImplicitClass)) { - return null; - } - return (PsiImplicitClass)classes[0]; - } - @Override public boolean isAccessible(@NotNull PsiPackage pkg, @NotNull PsiElement place) { return isAccessible(moduleSystem -> moduleSystem.isAccessible(pkg.getQualifiedName(), null, place));