mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IJ-CR-145483 [java-highlighting] IDEA-359527 Class 'MyRecord' must implement abstract method 'value()' in 'MyInterface' in implicit class
- use `getContextOfType` GitOrigin-RevId: 0f0c943c04e2e9c17dd0f66b884ff8f3a16ba455
This commit is contained in:
committed by
intellij-monorepo-bot
parent
e482d582cb
commit
8cccdff168
+2
-22
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user