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