diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/java19modules/Java9NonAccessibleTypeExposedInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/java19modules/Java9NonAccessibleTypeExposedInspection.java index 9034c6a13b8a..fba3789276ae 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/java19modules/Java9NonAccessibleTypeExposedInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/java19modules/Java9NonAccessibleTypeExposedInspection.java @@ -101,30 +101,6 @@ public class Java9NonAccessibleTypeExposedInspection extends BaseJavaLocalInspec } } - @Override - public void visitAnnotation(PsiAnnotation annotation) { - super.visitAnnotation(annotation); - PsiJavaCodeReferenceElement referenceElement = annotation.getNameReferenceElement(); - if (referenceElement != null) { - PsiElement resolved = referenceElement.resolve(); - if (resolved instanceof PsiClass) { - PsiClass annotationClass = (PsiClass)resolved; - if (isInModuleSource(annotationClass) && !isModulePublicApi(annotationClass)) { - PsiAnnotationOwner owner = annotation.getOwner(); - if (isModulePublicApi(owner)) { - registerProblem(referenceElement); - } - if (owner instanceof PsiParameter) { - PsiElement parent = ((PsiParameter)owner).getParent(); - if (parent instanceof PsiMember && isModulePublicApi((PsiMember)parent)) { - registerProblem(referenceElement); - } - } - } - } - } - } - @Override public void visitClass(PsiClass aClass) { super.visitClass(aClass); diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/Java9NonAccessibleTypeExposedTest.kt b/java/java-tests/testSrc/com/intellij/codeInspection/Java9NonAccessibleTypeExposedTest.kt index ea47c819d947..51894b72967d 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/Java9NonAccessibleTypeExposedTest.kt +++ b/java/java-tests/testSrc/com/intellij/codeInspection/Java9NonAccessibleTypeExposedTest.kt @@ -264,86 +264,6 @@ public class Highlighted { """) } - fun testPublicAnnotation() { - add("apiPkg", "MyAnnotation", "public @interface MyAnnotation {}") - highlight("""package apiPkg; -@MyAnnotation -public class Highlighted { - @MyAnnotation public PublicApi field; - @MyAnnotation public Highlighted() {} - public Highlighted(@MyAnnotation PublicApi s) {field=s;} - @MyAnnotation protected void init() {} - protected @MyAnnotation PublicApi peek() {return field;} - public void set(@MyAnnotation PublicApi s) {field=s;} -} -""") - } - - fun testPackageLocalAnnotation() { - add("apiPkg", "MyAnnotation", "@interface MyAnnotation {}") - highlight("""package apiPkg; -@MyAnnotation -public class Highlighted { - @MyAnnotation public PublicApi field; - @MyAnnotation public Highlighted() {} - public Highlighted(@MyAnnotation PublicApi s) {field=s;} - @MyAnnotation protected void init() {} - protected @MyAnnotation PublicApi peek() {return field;} - public void set(@MyAnnotation PublicApi s) {field=s;} -} -""") - } - - fun testNotExportedAnnotation() { - add("implPkg", "MyAnnotation", "public @interface MyAnnotation {}") - highlight("""package apiPkg; -import implPkg.MyAnnotation; -@MyAnnotation -public class Highlighted { - @MyAnnotation public PublicApi field; - @MyAnnotation public Highlighted() {} - public Highlighted(@MyAnnotation PublicApi s) {field=s;} - @MyAnnotation protected void init() {} - protected @MyAnnotation PublicApi peek() {return field;} - public void set(@MyAnnotation PublicApi s) {field=s;} -} -""") - } - - fun testTypeParameterAndUseAnnotation() { - highlight("""package apiPkg; -import java.lang.annotation.*; -import java.util.*; -@Highlighted.PublicAnnotation -@Highlighted.PackageLocalAnnotation -public class Highlighted { - @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) public @interface PublicAnnotation {} - @Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE}) @interface PackageLocalAnnotation {} - - public class C1<@PublicAnnotation T> { - public List<@PublicAnnotation String> text; - public void foo(Set<@PublicAnnotation String> s) {} - protected <@PublicAnnotation X> void bar(X x) {} - protected Set<@PublicAnnotation T> baz() {return new HashSet<@PublicAnnotation T>();} - public List<@PublicAnnotation String> text() {return new ArrayList<@PublicAnnotation String>();} - } - public class C2<@PackageLocalAnnotation T> { - public List<@PackageLocalAnnotation String> text; - public void foo(Set<@PackageLocalAnnotation String> s) {} - protected <@PackageLocalAnnotation X> void bar(X x) {} - protected Set<@PackageLocalAnnotation T> baz() { - return new HashSet<@PackageLocalAnnotation T>(); - } - public List<@PackageLocalAnnotation String> text() { - return new ArrayList<@PackageLocalAnnotation String>(); - } - } - public interface I1 extends List<@PublicAnnotation Highlighted> {} - public interface I2 extends List<@PackageLocalAnnotation Highlighted> {} -} -""") - } - fun testGenericPublic() { add("apiPkg", "MyInterface", "public interface MyInterface {}") add("apiPkg", "MyClass", "public class MyClass implements MyInterface {}")