From ca035bc8b805a52db3d3cffdba95b34c2a93374d Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 15 Nov 2017 11:39:41 +0300 Subject: [PATCH] [NI] Report error from expected type constraint position --- .../resolve/calls/DiagnosticReporterByTrackingStrategy.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt index 11f217a42d6..96af2921580 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt @@ -201,6 +201,14 @@ class DiagnosticReporterByTrackingStrategy( if (reportConstantTypeMismatch(constraintError, deparenthesized)) return trace.report(Errors.TYPE_MISMATCH.on(deparenthesized, constraintError.upperType, constraintError.lowerType)) } + + (position as? ExpectedTypeConstraintPosition)?.let { + val call = it.topLevelCall.psiKotlinCall.psiCall.callElement.safeAs() + reportIfNonNull(call) { + trace.report(Errors.TYPE_MISMATCH.on(it, constraintError.upperType, constraintError.lowerType)) + } + } + (position as? ExplicitTypeParameterConstraintPosition)?.let { val typeArgumentReference = (it.typeArgument as SimpleTypeArgumentImpl).typeReference trace.report(UPPER_BOUND_VIOLATED.on(typeArgumentReference, constraintError.upperType, constraintError.lowerType))