[FIR] Set proper callable id for delegated members

This commit is contained in:
Dmitriy Novozhilov
2023-02-28 13:11:56 +02:00
committed by Space Team
parent 2fb79bf0b1
commit f44fcc811b
7 changed files with 53 additions and 22 deletions
@@ -1,6 +1,6 @@
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /I.foo
callableIdIfNonLocal: /A.foo
contextReceivers: []
getter: null
hasBackingField: false
@@ -36,4 +36,4 @@ KtKotlinPropertySymbol:
getterDeprecationStatus: null
javaGetterName: getFoo
javaSetterName: null
setterDeprecationStatus: null
setterDeprecationStatus: null
@@ -1,6 +1,6 @@
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /I.zoo
callableIdIfNonLocal: /A.zoo
contextReceivers: []
getter: null
hasBackingField: false
@@ -21,7 +21,7 @@ KtKotlinPropertySymbol:
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: DELEGATED
owningCallableSymbol: KtKotlinPropertySymbol(/I.zoo)
owningCallableSymbol: KtKotlinPropertySymbol(/A.zoo)
type: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
@@ -49,7 +49,7 @@ KtKotlinPropertySymbol:
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /I.foo
callableIdIfNonLocal: /A.foo
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
@@ -83,7 +83,7 @@ KtFunctionSymbol:
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /I.foo
callableIdIfNonLocal: /A.foo
contextReceivers: []
getter: null
hasBackingField: false
@@ -123,7 +123,7 @@ KtKotlinPropertySymbol:
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /I.smth
callableIdIfNonLocal: /A.smth
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
@@ -142,7 +142,7 @@ KtFunctionSymbol:
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: DELEGATED
owningCallableSymbol: KtFunctionSymbol(/I.smth)
owningCallableSymbol: KtFunctionSymbol(/A.smth)
type: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
@@ -166,7 +166,7 @@ KtFunctionSymbol:
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /I.bar
callableIdIfNonLocal: /A.bar
contextReceivers: []
getter: null
hasBackingField: false
@@ -206,7 +206,7 @@ KtKotlinPropertySymbol:
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /I.doo
callableIdIfNonLocal: /A.doo
contextReceivers: []
getter: null
hasBackingField: false
@@ -227,7 +227,7 @@ KtKotlinPropertySymbol:
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: DELEGATED
owningCallableSymbol: KtKotlinPropertySymbol(/I.doo)
owningCallableSymbol: KtKotlinPropertySymbol(/A.doo)
type: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
@@ -251,4 +251,4 @@ KtKotlinPropertySymbol:
getterDeprecationStatus: null
javaGetterName: getDoo
javaSetterName: null
setterDeprecationStatus: null
setterDeprecationStatus: null
@@ -0,0 +1,33 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /I2.bar
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: OPEN
name: bar
origin: DELEGATED
receiverParameter: null
returnType: KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: kotlin/Unit
symbolKind: CLASS_MEMBER
typeParameters: []
valueParameters: []
visibility: Public
getDispatchReceiver(): KtUsualClassType:
annotationsList: []
ownTypeArguments: []
type: B
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -1,6 +1,6 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /I2.bar
callableIdIfNonLocal: /B.bar
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
@@ -30,4 +30,4 @@ KtFunctionSymbol:
ownTypeArguments: []
type: B
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
deprecationStatus: null
@@ -20,7 +20,7 @@ FILE: superCallWithDelegation.kt
}
public open override fun foo(): R|kotlin/Unit| {
this@R|/C|.super<R|B|>.R|/A.foo|()
this@R|/C|.super<R|B|>.R|/B.foo|()
}
}
@@ -16,7 +16,7 @@ FILE: AbstractToolConfig.kt
protected final val platform: R|Platform| = this@R|/AbstractToolConfig|.R|/AbstractToolConfig.platformManager|.R|/PlatformManager.platform|(this@R|/AbstractToolConfig|.R|/AbstractToolConfig.target|)
protected get(): R|Platform|
public final val llvmHome: R|kotlin/String| = this@R|/AbstractToolConfig|.R|/AbstractToolConfig.platform|.R|/Configurables.absoluteLlvmHome|
public final val llvmHome: R|kotlin/String| = this@R|/AbstractToolConfig|.R|/AbstractToolConfig.platform|.R|/Platform.absoluteLlvmHome|
public get(): R|kotlin/String|
public abstract fun platformManager(): R|PlatformManager|
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fir.DelegatedWrapperData
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.classId
import org.jetbrains.kotlin.fir.declarations.utils.modality
import org.jetbrains.kotlin.fir.declarations.utils.visibility
import org.jetbrains.kotlin.fir.delegatedWrapperData
@@ -23,6 +24,7 @@ import org.jetbrains.kotlin.fir.types.ConeClassLikeType
import org.jetbrains.kotlin.fir.types.ConeFlexibleType
import org.jetbrains.kotlin.fir.types.coneType
import org.jetbrains.kotlin.fir.types.isMarkedNullable
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds
@@ -88,9 +90,7 @@ class FirDelegatedMemberScope(
val delegatedSymbol =
FirFakeOverrideGenerator.createCopyForFirFunction(
FirNamedFunctionSymbol(
functionSymbol.callableId,
),
FirNamedFunctionSymbol(CallableId(containingClass.classId, functionSymbol.name)),
original,
derivedClassLookupTag = dispatchReceiverType.lookupTag,
session,
@@ -158,9 +158,7 @@ class FirDelegatedMemberScope(
val delegatedSymbol =
FirFakeOverrideGenerator.createCopyForFirProperty(
FirPropertySymbol(
propertySymbol.callableId
),
FirPropertySymbol(CallableId(containingClass.classId, propertySymbol.name)),
original,
derivedClassLookupTag = dispatchReceiverType.lookupTag,
session,