diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java index 4da08568662b..a570db4cf215 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightUtil.java @@ -3119,7 +3119,8 @@ public class HighlightUtil extends HighlightUtilBase { return useSiteLevel.isAtLeast(LanguageLevel.JDK_13_PREVIEW);//enabled in jdk 14 as standard } }, - TEXT_BLOCKS(LanguageLevel.JDK_13_PREVIEW, "feature.text.blocks"); + TEXT_BLOCKS(LanguageLevel.JDK_13_PREVIEW, "feature.text.blocks"), + RECORDS(LanguageLevel.JDK_14, "feature.records"); private final LanguageLevel level; private final String key; diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java index 14ee08187298..7f8c3c588989 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightVisitorImpl.java @@ -509,6 +509,9 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh if (!myHolder.hasErrorResults() && type == JavaTokenType.TEXT_BLOCK_LITERAL) { myHolder.add(checkFeature(token, Feature.TEXT_BLOCKS)); } + else if (!myHolder.hasErrorResults() && type == JavaTokenType.RECORD_KEYWORD) { + myHolder.add(checkFeature(token, Feature.RECORDS)); + } if (!myHolder.hasErrorResults() && type == JavaTokenType.RBRACE && token.getParent() instanceof PsiCodeBlock) { PsiElement gParent = token.getParent().getParent(); diff --git a/java/java-psi-impl/src/messages/JavaErrorMessages.properties b/java/java-psi-impl/src/messages/JavaErrorMessages.properties index 25a13f913227..93d234db4824 100644 --- a/java/java-psi-impl/src/messages/JavaErrorMessages.properties +++ b/java/java-psi-impl/src/messages/JavaErrorMessages.properties @@ -488,4 +488,5 @@ feature.modules=Modules feature.text.blocks=Text block literals feature.enhanced.switch=Enhanced 'switch' blocks feature.switch.expressions='switch' expressions +feature.records=Records insufficient.language.level={0} are not supported at language level ''{1}'' diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java index b249505ea2ef..910b54a21c05 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java @@ -23,4 +23,8 @@ class UnsupportedFeatures { String raw = """hi there"""; } +} + +record UnsuportedRecord(String s) { + } \ No newline at end of file