From 7f9092e16caace71c6fffd98750fe7a7f2cc5066 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Mon, 12 Dec 2016 19:22:47 +0100 Subject: [PATCH] if argument is poly expression (the type depends on expression's context), don't calculate type as it would be cashed according to the first candidate and reused everywhere else // fixed blinking tests --- .../src/com/intellij/codeInsight/hints/JavaHintUtils.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt b/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt index b4638b9ba8b6..8a45d5764b31 100644 --- a/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt +++ b/java/java-impl/src/com/intellij/codeInsight/hints/JavaHintUtils.kt @@ -17,6 +17,7 @@ package com.intellij.codeInsight.hints import com.intellij.codeInsight.hints.settings.ParameterNameHintsSettings import com.intellij.psi.* +import com.intellij.psi.impl.source.resolve.graphInference.PsiPolyExpressionUtil import com.intellij.psi.impl.source.tree.java.PsiMethodCallExpressionImpl import com.intellij.psi.impl.source.tree.java.PsiNewExpressionImpl import com.intellij.psi.util.TypeConversionUtil @@ -192,6 +193,7 @@ private class CallArgumentInfo(val parameter: PsiParameter, val argument: PsiExp private fun CallArgumentInfo.isAssignable(substitutor: PsiSubstitutor): Boolean { val substitutedType = substitutor.substitute(parameter.type) + if (PsiPolyExpressionUtil.isPolyExpression(argument)) return true return argument.type?.isAssignableTo(substitutedType) ?: false }