diff --git a/jvm/jvm-analysis-api/src/com/intellij/codeInspection/AnalysisUastUtil.java b/jvm/jvm-analysis-api/src/com/intellij/codeInspection/AnalysisUastUtil.java index 8d9b76d90841..1d495f98d35d 100644 --- a/jvm/jvm-analysis-api/src/com/intellij/codeInspection/AnalysisUastUtil.java +++ b/jvm/jvm-analysis-api/src/com/intellij/codeInspection/AnalysisUastUtil.java @@ -39,6 +39,7 @@ public final class AnalysisUastUtil { @Nullable public static PsiClass getTypePsiClass(@Nullable PsiType type) { + type = GenericsUtil.eliminateWildcards(type); if (!(type instanceof PsiClassType)) return null; return ((PsiClassType)type).rawType().resolve(); } diff --git a/uast/uast-common/src/org/jetbrains/uast/UastUtils.kt b/uast/uast-common/src/org/jetbrains/uast/UastUtils.kt index 8c6983e07abd..1199a9b082a7 100644 --- a/uast/uast-common/src/org/jetbrains/uast/UastUtils.kt +++ b/uast/uast-common/src/org/jetbrains/uast/UastUtils.kt @@ -196,6 +196,7 @@ fun UCallExpression.getParameterForArgument(arg: UExpression): PsiParameter? { return parameters.withIndex().find { (i, p) -> val argumentForParameter = getArgumentForParameter(i) ?: return@find false if (argumentForParameter == arg) return@find true + if (arg is ULambdaExpression && arg.sourcePsi?.parent == argumentForParameter.sourcePsi) return@find true // workaround for KT-25297 if (p.isVarArgs && argumentForParameter is UExpressionList) return@find argumentForParameter.expressions.contains(arg) return@find false }?.value