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 55ba359c6c84..02004e79246f 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
@@ -1092,8 +1092,20 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
if (!myHolder.hasErrorResults()) visitExpression(expression);
- if (!myHolder.hasErrorResults())
- myHolder.add(HighlightUtil.checkPreviewFeatureElement(expression, expression.resolveMethod(), myLanguageLevel));
+ if (!myHolder.hasErrorResults()) {
+ final PsiModifierListOwner owner = getTargetOfNewExpression(expression);
+ myHolder.add(HighlightUtil.checkPreviewFeatureElement(expression, owner, myLanguageLevel));
+ }
+ }
+
+ @Nullable
+ private static PsiModifierListOwner getTargetOfNewExpression(@NotNull final PsiNewExpression expression) {
+ final PsiMethod method = expression.resolveMethod();
+ if (method != null) return method;
+
+ final PsiJavaCodeReferenceElement reference = expression.getClassOrAnonymousClassReference();
+ if (reference == null) return null;
+ return ObjectUtils.tryCast(reference.resolve(), PsiModifierListOwner.class);
}
@Override
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/previewfeature/CallConstructorWithPreviewFeature.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/previewfeature/CallConstructorWithPreviewFeature.java
index 7ba06c254231..b6d0c16ab3b5 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/previewfeature/CallConstructorWithPreviewFeature.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/previewfeature/CallConstructorWithPreviewFeature.java
@@ -15,6 +15,9 @@ class Main {
new Main(42l);
new Main("42");
new Main(42);
+ new org.myorg.preview.FromPreview() {
+ public void g(){}
+ };
}
}