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 a9b12c09a8b3..260f66f063b7 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 @@ -2897,7 +2897,8 @@ public class HighlightUtil extends HighlightUtilBase { INTERSECTION_CASTS(LanguageLevel.JDK_1_8, "feature.intersections.in.casts"), STATIC_INTERFACE_CALLS(LanguageLevel.JDK_1_8, "feature.static.interface.calls"), REFS_AS_RESOURCE(LanguageLevel.JDK_1_9, "feature.try.with.resources.refs"), - MODULES(LanguageLevel.JDK_1_9, "feature.modules"); + MODULES(LanguageLevel.JDK_1_9, "feature.modules"), + RAW_LITERALS(LanguageLevel.JDK_11_PREVIEW, "feature.raw.literals"); 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 758d69c0efc7..111b3b491f5a 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 @@ -459,6 +459,9 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh @Override public void visitJavaToken(PsiJavaToken token) { super.visitJavaToken(token); + if (!myHolder.hasErrorResults() && token.getTokenType() == JavaTokenType.RAW_STRING_LITERAL) { + myHolder.add(checkFeature(token, Feature.RAW_LITERALS)); + } if (!myHolder.hasErrorResults() && token.getTokenType() == JavaTokenType.RBRACE && token.getParent() instanceof PsiCodeBlock) { PsiElement gParent = token.getParent().getParent(); PsiCodeBlock codeBlock; diff --git a/java/java-psi-impl/src/messages/JavaErrorMessages.properties b/java/java-psi-impl/src/messages/JavaErrorMessages.properties index 756e619f59f1..865e095e643a 100644 --- a/java/java-psi-impl/src/messages/JavaErrorMessages.properties +++ b/java/java-psi-impl/src/messages/JavaErrorMessages.properties @@ -463,4 +463,5 @@ feature.intersections.in.casts=Intersection types in casts feature.static.interface.calls=Static interface method calls feature.try.with.resources.refs=Resource references feature.modules=Modules +feature.raw.literals=Raw string literals 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 847f87baf682..b3da9ab73ec2 100644 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting/UnsupportedFeatures.java @@ -20,5 +20,7 @@ class UnsupportedFeatures { java.lang.annotation.ElementType t = null; switch (t) { } + + String raw = `hi there`; } } \ No newline at end of file