From 4a74ca568cf5e8ca10e6e992905b59007cf577f2 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 9 Aug 2017 12:26:57 +0300 Subject: [PATCH] [NI] Don't forget to deparenthesize expression before type checking --- .../resolve/calls/DiagnosticReporterByTrackingStrategy.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 529fb502708..f53c215c21f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt @@ -159,8 +159,9 @@ class DiagnosticReporterByTrackingStrategy( ?: (position as? ReceiverConstraintPosition)?.argument argument?.let { val expression = it.psiExpression ?: return - if (reportConstantTypeMismatch(constraintError, expression)) return - trace.report(Errors.TYPE_MISMATCH.on(expression, constraintError.upperType, constraintError.lowerType)) + val deparenthesized = KtPsiUtil.safeDeparenthesize(expression) + if (reportConstantTypeMismatch(constraintError, deparenthesized)) return + trace.report(Errors.TYPE_MISMATCH.on(deparenthesized, constraintError.upperType, constraintError.lowerType)) } (position as? ExplicitTypeParameterConstraintPosition)?.let { val typeArgumentReference = (it.typeArgument as SimpleTypeArgumentImpl).typeReference