NI: Report incompatible receiver of callable reference

^KT-35535 Fixed
This commit is contained in:
Denis Zharkov
2019-12-18 15:26:00 +03:00
parent dd56c3d918
commit c486fa6189
8 changed files with 72 additions and 7 deletions
@@ -265,8 +265,13 @@ class DiagnosticReporterByTrackingStrategy(
NewConstraintError::class.java -> {
val constraintError = diagnostic as NewConstraintError
val position = constraintError.position.from
val argument = (position as? ArgumentConstraintPosition)?.argument
?: (position as? ReceiverConstraintPosition)?.argument
val argument =
when (position) {
is ArgumentConstraintPosition -> position.argument
is ReceiverConstraintPosition -> position.argument
is LHSArgumentConstraintPosition -> position.argument
else -> null
}
argument?.let {
it.safeAs<LambdaKotlinCallArgument>()?.let lambda@{ lambda ->
val parameterTypes = lambda.parametersTypes?.toList() ?: return@lambda