EA-211010: Fix receiver parameter name for lambdas passed as value arguments

This commit is contained in:
Yan Zhulanow
2020-01-15 18:15:20 +09:00
parent b1414fa477
commit dc71ab5bb3
4 changed files with 72 additions and 3 deletions
@@ -461,10 +461,18 @@ fun getCallLabelForLambdaArgument(declaration: KtFunctionLiteral, bindingContext
lambdaExpressionParent.name?.let { return it }
}
val lambdaArgument = lambdaExpression.parent as? KtLambdaArgument ?: return null
val callExpression = lambdaArgument.parent as? KtCallExpression ?: return null
val call = callExpression.getResolvedCall(bindingContext) ?: return null
val callExpression = when (val argument = lambdaExpression.parent) {
is KtLambdaArgument -> {
argument.parent as? KtCallExpression ?: return null
}
is KtValueArgument -> {
val valueArgumentList = argument.parent as? KtValueArgumentList ?: return null
valueArgumentList.parent as? KtCallExpression ?: return null
}
else -> return null
}
val call = callExpression.getResolvedCall(bindingContext) ?: return null
return call.resultingDescriptor.name.asString()
}