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 clazz1 = e.getClass(); - Class clazz2 = e.getClass(); - Class clazz3 = e.getClass(); + Class clazz2 = e.getClass(); + Class clazz3 = e.getClass(); } } }