diff --git a/java/java-impl/src/com/intellij/codeInsight/hint/JavaTypeProvider.java b/java/java-impl/src/com/intellij/codeInsight/hint/JavaTypeProvider.java index 1f64a8bdb95a..5f6921dfcdac 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hint/JavaTypeProvider.java +++ b/java/java-impl/src/com/intellij/codeInsight/hint/JavaTypeProvider.java @@ -17,10 +17,7 @@ package com.intellij.codeInsight.hint; import com.intellij.lang.ExpressionTypeProvider; import com.intellij.openapi.util.text.StringUtil; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiExpression; -import com.intellij.psi.PsiType; -import com.intellij.psi.SyntaxTraverser; +import com.intellij.psi.*; import org.jetbrains.annotations.NotNull; import java.util.List; @@ -46,6 +43,15 @@ public class JavaTypeProvider extends ExpressionTypeProvider { @NotNull @Override public List getExpressionsAt(@NotNull PsiElement elementAt) { - return SyntaxTraverser.psiApi().parents(elementAt).filter(PsiExpression.class).toList(); + return SyntaxTraverser.psiApi().parents(elementAt) + .filter(PsiExpression.class) + .filter(JavaTypeProvider::notAMethodReferenceInCall) + .toList(); + } + + private static boolean notAMethodReferenceInCall(PsiExpression expression) { + boolean b = expression instanceof PsiReferenceExpression; + PsiElement p = b ? expression.getParent() : null; + return !(p instanceof PsiMethodCallExpression && ((PsiMethodCallExpression)p).getMethodExpression() == expression); } }