diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java
index d81315273b8d..f219982bdba6 100644
--- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java
+++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiMethodCallExpressionImpl.java
@@ -202,7 +202,9 @@ public class PsiMethodCallExpressionImpl extends ExpressionPsiElement implements
PsiSubstitutor substitutor = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory().createSubstitutor(map);
final PsiClassType classType = JavaPsiFacade.getInstance(manager.getProject()).getElementFactory()
.createType(javaLangClass, substitutor, languageLevel);
- return PsiUtil.captureToplevelWildcards(classType, methodExpression);
+ final PsiElement parent = call.getParent();
+ return parent instanceof PsiReferenceExpression && parent.getParent() instanceof PsiMethodCallExpression
+ ? PsiUtil.captureToplevelWildcards(classType, methodExpression) : classType;
}
}
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ClassLiteral.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ClassLiteral.java
index 6dc9fd8734f3..97673a5f25ee 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ClassLiteral.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/ClassLiteral.java
@@ -5,4 +5,9 @@ class Example {
TypeVariable>[] typeParameters = getClass().getTypeParameters();
Object typeParameters1 = (TypeVariable>[]) getClass().getTypeParameters();
}
+
+ @Override
+ public boolean equals(Object obj) {
+ return getClass() == obj.getClass();
+ }
}
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/MultiCatch.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/MultiCatch.java
index 861fb4d5da27..84798f6d3a43 100644
--- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/MultiCatch.java
+++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/advHighlighting7/MultiCatch.java
@@ -60,8 +60,8 @@ abstract class C {
try { g(); }
catch (IE1 | IE2 e) {
Class extends E> clazz1 = e.getClass();
- Class extends IE1> clazz2 = e.getClass();
- Class extends I> clazz3 = e.getClass();
+ Class extends IE1> clazz2 = e.getClass();
+ Class extends I> clazz3 = e.getClass();
}
}
}