mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 13:31:28 +07:00
[java-inspections] PreviewFeatureInspection: add features from Java 20-22
Fixes IDEA-340983 Preview API (structured concurrency) usage in Java 21 is not highlighted GitOrigin-RevId: cd02d5e1fe328104a47ac1fd684b2e2324b6558d
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5b363f94d2
commit
f7074186ea
@@ -137,6 +137,12 @@ feature.enum.qualified.name.in.switch=Qualified enum as a constant in switch
|
||||
feature.string.templates=String templates
|
||||
feature.unnamed.vars=Unnamed patterns and variables
|
||||
feature.implicit.classes=Implicitly declared classes
|
||||
feature.scoped.values=Scoped Values
|
||||
feature.structured.concurrency=Structured Concurrency
|
||||
feature.classfile.api=ClassFile API
|
||||
feature.stream.gatherers=Stream Gatherers
|
||||
feature.foreign.functions=Foreign Function & Memory API
|
||||
feature.virtual.threads=Virtual Threads
|
||||
|
||||
find.searching.for.references.to.class.progress=Searching for references to class {0}...
|
||||
find.usages.panel.title.derived.classes.cap=Derived classes
|
||||
|
||||
@@ -77,10 +77,30 @@ public enum HighlightingFeature {
|
||||
RECORD_PATTERNS_IN_FOR_EACH(LanguageLevel.JDK_20_PREVIEW, "feature.record.patterns.in.for.each"){
|
||||
@Override
|
||||
boolean isSufficient(@NotNull LanguageLevel useSiteLevel) {
|
||||
LanguageLevel until = LanguageLevel.JDK_20_PREVIEW;
|
||||
return until == useSiteLevel;
|
||||
return LanguageLevel.JDK_20_PREVIEW == useSiteLevel.getSupportedLevel();
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isLimited() {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
VIRTUAL_THREADS(LanguageLevel.JDK_20_PREVIEW, "feature.virtual.threads") {
|
||||
@Override
|
||||
boolean isSufficient(@NotNull LanguageLevel useSiteLevel) {
|
||||
return LanguageLevel.JDK_20_PREVIEW == useSiteLevel.getSupportedLevel();
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isLimited() {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
FOREIGN_FUNCTIONS(LanguageLevel.JDK_20_PREVIEW, "feature.foreign.functions") {
|
||||
@Override
|
||||
boolean isSufficient(@NotNull LanguageLevel useSiteLevel) {
|
||||
return LanguageLevel.JDK_20_PREVIEW == useSiteLevel.getSupportedLevel();
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean isLimited() {
|
||||
@@ -95,7 +115,12 @@ public enum HighlightingFeature {
|
||||
return super.isSufficient(useSiteLevel) || LanguageLevel.JDK_21_PREVIEW == useSiteLevel;
|
||||
}
|
||||
},
|
||||
IMPLICIT_CLASSES(LanguageLevel.JDK_21_PREVIEW, "feature.implicit.classes");
|
||||
IMPLICIT_CLASSES(LanguageLevel.JDK_21_PREVIEW, "feature.implicit.classes"),
|
||||
SCOPED_VALUES(LanguageLevel.JDK_21_PREVIEW, "feature.scoped.values"),
|
||||
STRUCTURED_CONCURRENCY(LanguageLevel.JDK_21_PREVIEW, "feature.structured.concurrency"),
|
||||
CLASSFILE_API(LanguageLevel.JDK_22_PREVIEW, "feature.classfile.api"),
|
||||
STREAM_GATHERERS(LanguageLevel.JDK_22_PREVIEW, "feature.stream.gatherers"),
|
||||
;
|
||||
|
||||
public static final @NonNls String JDK_INTERNAL_PREVIEW_FEATURE = "jdk.internal.PreviewFeature";
|
||||
public static final @NonNls String JDK_INTERNAL_JAVAC_PREVIEW_FEATURE = "jdk.internal.javac.PreviewFeature";
|
||||
@@ -158,6 +183,7 @@ public enum HighlightingFeature {
|
||||
return convertFromPreviewFeatureName(enumConstant.getName());
|
||||
}
|
||||
|
||||
// Should correspond to jdk.internal.javac.PreviewFeature.Feature enum
|
||||
@Nullable
|
||||
@Contract(pure = true)
|
||||
private static HighlightingFeature convertFromPreviewFeatureName(@NotNull @NonNls String feature) {
|
||||
@@ -166,6 +192,14 @@ public enum HighlightingFeature {
|
||||
case "TEXT_BLOCKS" -> TEXT_BLOCKS;
|
||||
case "RECORDS" -> RECORDS;
|
||||
case "SEALED_CLASSES" -> SEALED_CLASSES;
|
||||
case "STRING_TEMPLATES" -> STRING_TEMPLATES;
|
||||
case "UNNAMED_CLASSES", "IMPLICIT_CLASSES" -> IMPLICIT_CLASSES;
|
||||
case "SCOPED_VALUES" -> SCOPED_VALUES;
|
||||
case "STRUCTURED_CONCURRENCY" -> STRUCTURED_CONCURRENCY;
|
||||
case "CLASSFILE_API" -> CLASSFILE_API;
|
||||
case "STREAM_GATHERERS" -> STREAM_GATHERERS;
|
||||
case "FOREIGN" -> FOREIGN_FUNCTIONS;
|
||||
case "VIRTUAL_THREADS" -> VIRTUAL_THREADS;
|
||||
default -> null;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user