This patch fixes the problems with reporting errors when:
- a class that is annotated with PreviewFeature instantiated;
- a method that is annotated with PreviewFeature used in a method reference;
- a class or an interface that is annotated with PreviewFeature is inherited
Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>
GitOrigin-RevId: 586caeddae4446ad398878e0bd4bf66858e4518c
This patch fixes the problems according to the code review, it includes:
- inlining the trivial wrapper methods checkConstructorPreviewFeature, checkMethodCallPreviewFeatureAnnotation, checkTypePreviewFeatureAnnotation
- applying ObjectUtils#tryCast in HighlightUtil#checkPackagePreviewFeatureAnnotation
- simplifying HighlightVisitorImpl#visitImportStaticStatement by calling directly HighlightUtil#checkPreviewFeatureElement
- generalizing HighlightVisitorImpl#visitReferenceExpression's check if the element is annotated with PreviewFeature
Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>
GitOrigin-RevId: 954ad1bbb26352d7d98581b3ad95a360569b0636
This patch fixes the problems according to the code review, it includes:
- moving extractHighlightingFeature to HighlightingFeature and renaming it to fromPreviewFeatureAnnotation
- assuring the PreviewFeature annotation name by calling PsiAnnotation#hasQualifiedName instead of comparing the name by equals
- moving JDK_INTERNAL_PREVIEW_FEATURE to HighlightingFeature
- extracting repeating part of checking the language level to HighlightUtil#checkPreviewFeatureElement
- adding a new case "SEALED_CLASSES" to HighlightFeature#fromPreviewAnnotationName
In addition to that there is also more robust solution to detect invalid contexts in references and static imports. The test data updated accordingly.
Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>
GitOrigin-RevId: 999d43ec5d9315d0881d08ce9341433707de96a0
This patch adds support of the jdk.internal.PreviewFeature annotation
Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com>
GitOrigin-RevId: b2f56d62c3b12475690f667628811e5345b1d1cf