mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
refactor [java]: Extract PsiImplUtil.isTypeQualifierOfStaticMember() out of AnnotationChecker
GitOrigin-RevId: ec17169848b689d83b72039626b44aa5e8e311a2
This commit is contained in:
committed by
intellij-monorepo-bot
parent
4d44085484
commit
100f749763
+2
-14
@@ -33,7 +33,6 @@ import com.intellij.psi.PsiErrorElement;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
import com.intellij.psi.PsiIdentifier;
|
||||
import com.intellij.psi.PsiJavaCodeReferenceElement;
|
||||
import com.intellij.psi.PsiMember;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
import com.intellij.psi.PsiModifier;
|
||||
import com.intellij.psi.PsiModifierList;
|
||||
@@ -109,19 +108,8 @@ final class AnnotationChecker {
|
||||
return;
|
||||
}
|
||||
|
||||
PsiElement parent = ref.getParent();
|
||||
while (parent instanceof PsiJavaCodeReferenceElement referenceElement) {
|
||||
PsiElement qualified = referenceElement.resolve();
|
||||
if (qualified instanceof PsiMember member && member.hasModifierProperty(PsiModifier.STATIC)) {
|
||||
myVisitor.report(JavaErrorKinds.ANNOTATION_NOT_ALLOWED_STATIC.create(annotation));
|
||||
return;
|
||||
}
|
||||
if (qualified instanceof PsiClass) {
|
||||
parent = parent.getParent();
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
if (PsiImplUtil.isTypeQualifierOfStaticMember(ref)) {
|
||||
myVisitor.report(JavaErrorKinds.ANNOTATION_NOT_ALLOWED_STATIC.create(annotation));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1021,4 +1021,28 @@ public final class PsiImplUtil {
|
||||
}
|
||||
return element;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if ref is a type qualifier of a static member
|
||||
*/
|
||||
@ApiStatus.Internal
|
||||
public static boolean isTypeQualifierOfStaticMember(@NotNull PsiJavaCodeReferenceElement ref) {
|
||||
PsiElement parent = ref.getParent();
|
||||
while (parent instanceof PsiJavaCodeReferenceElement) {
|
||||
PsiJavaCodeReferenceElement referenceElement = (PsiJavaCodeReferenceElement)parent;
|
||||
PsiElement qualified = referenceElement.resolve();
|
||||
if (qualified instanceof PsiMember) {
|
||||
if (((PsiMember)qualified).hasModifierProperty(PsiModifier.STATIC)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (qualified instanceof PsiClass) {
|
||||
parent = parent.getParent();
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user