mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-13 14:36:58 +07:00
This patch adds the PreviewFeatureInspection inspection that is enabled only when the language level of the project is a preview one. It allows to register warnings and suppress all the preview warnings as it's done in javac. When the language level of the project is not a preview one, HighlightVisitorImpl runs the same visitor that can report errors instead of warnings. It cannot be suppressed. A PSI element is considered a preview feature when either: - it is annotated with PreviewFeature directly - one of its enclosing classes is annotated with PreviewFeature - its module is annotated with PreviewFeature It's worth mentioning that when a package in package-info.java is annotated with PreviewFeature this flag doesn't get to be propagated to the classes that are inside the package. Signed-off-by: Nikita Eshkeev <nikita.eshkeev@jetbrains.com> GitOrigin-RevId: 5bd22ea2e18ba83303156a2b9665bc54622f6344
28 lines
531 B
Java
28 lines
531 B
Java
package jdk.internal;
|
|
|
|
import java.lang.annotation.*;
|
|
|
|
@Target({ElementType.METHOD,
|
|
ElementType.CONSTRUCTOR,
|
|
ElementType.FIELD,
|
|
ElementType.PACKAGE,
|
|
ElementType.TYPE})
|
|
@Retention(RetentionPolicy.CLASS)
|
|
public @interface PreviewFeature {
|
|
/**
|
|
* Name of the preview feature the annotated API is associated
|
|
* with.
|
|
*/
|
|
public Feature feature();
|
|
|
|
public boolean essentialAPI() default false;
|
|
|
|
public enum Feature {
|
|
PATTERN_MATCHING_IN_INSTANCEOF,
|
|
TEXT_BLOCKS,
|
|
RECORDS,
|
|
SEALED_CLASSES
|
|
;
|
|
}
|
|
}
|