[NI] Use specialized type of integer value type for delegate receiver
This commit is contained in:
@@ -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.smartcasts.DataFlowValueFactory
|
||||||
import org.jetbrains.kotlin.resolve.calls.tower.PSICallResolver
|
import org.jetbrains.kotlin.resolve.calls.tower.PSICallResolver
|
||||||
import org.jetbrains.kotlin.resolve.calls.tower.ResolutionResultCallInfo
|
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.LexicalScope
|
||||||
import org.jetbrains.kotlin.resolve.scopes.ScopeUtils
|
import org.jetbrains.kotlin.resolve.scopes.ScopeUtils
|
||||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
|
import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
|
||||||
@@ -508,6 +509,10 @@ class DelegatedPropertyResolver(
|
|||||||
var delegateType = delegateTypeInfo.type ?: return null
|
var delegateType = delegateTypeInfo.type ?: return null
|
||||||
var delegateDataFlow = delegateTypeInfo.dataFlowInfo
|
var delegateDataFlow = delegateTypeInfo.dataFlowInfo
|
||||||
|
|
||||||
|
val delegateTypeConstructor = delegateType.constructor
|
||||||
|
if (delegateTypeConstructor is IntegerValueTypeConstructor)
|
||||||
|
delegateType = TypeUtils.getDefaultPrimitiveNumberType(delegateTypeConstructor)
|
||||||
|
|
||||||
if (languageVersionSettings.supportsFeature(LanguageFeature.OperatorProvideDelegate)) {
|
if (languageVersionSettings.supportsFeature(LanguageFeature.OperatorProvideDelegate)) {
|
||||||
val contextForProvideDelegate = createContextForProvideDelegateMethod(
|
val contextForProvideDelegate = createContextForProvideDelegateMethod(
|
||||||
scopeForDelegate, delegateDataFlow, traceToResolveDelegatedProperty, InferenceSessionForExistingCandidates
|
scopeForDelegate, delegateDataFlow, traceToResolveDelegatedProperty, InferenceSessionForExistingCandidates
|
||||||
|
|||||||
Reference in New Issue
Block a user