From 3ea0b9975f77f9ac4cdde91aba1c9675ec820366 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Fri, 23 Mar 2018 17:03:08 +0300 Subject: [PATCH] [NI] Use specialized type of integer value type for delegate receiver --- .../jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt index 19de807f7bd..d8b7b486a4f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DelegatedPropertyResolver.kt @@ -37,6 +37,7 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory import org.jetbrains.kotlin.resolve.calls.tower.PSICallResolver import org.jetbrains.kotlin.resolve.calls.tower.ResolutionResultCallInfo +import org.jetbrains.kotlin.resolve.constants.IntegerValueTypeConstructor import org.jetbrains.kotlin.resolve.scopes.LexicalScope import org.jetbrains.kotlin.resolve.scopes.ScopeUtils import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver @@ -508,6 +509,10 @@ class DelegatedPropertyResolver( var delegateType = delegateTypeInfo.type ?: return null var delegateDataFlow = delegateTypeInfo.dataFlowInfo + val delegateTypeConstructor = delegateType.constructor + if (delegateTypeConstructor is IntegerValueTypeConstructor) + delegateType = TypeUtils.getDefaultPrimitiveNumberType(delegateTypeConstructor) + if (languageVersionSettings.supportsFeature(LanguageFeature.OperatorProvideDelegate)) { val contextForProvideDelegate = createContextForProvideDelegateMethod( scopeForDelegate, delegateDataFlow, traceToResolveDelegatedProperty, InferenceSessionForExistingCandidates