[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: KtKotlinPropertySymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I.foo callableIdIfNonLocal: /A.foo
contextReceivers: [] contextReceivers: []
getter: null getter: null
hasBackingField: false hasBackingField: false
@@ -1,6 +1,6 @@
KtKotlinPropertySymbol: KtKotlinPropertySymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I.zoo callableIdIfNonLocal: /A.zoo
contextReceivers: [] contextReceivers: []
getter: null getter: null
hasBackingField: false hasBackingField: false
@@ -21,7 +21,7 @@ KtKotlinPropertySymbol:
receiverParameter: KtReceiverParameterSymbol: receiverParameter: KtReceiverParameterSymbol:
annotationsList: [] annotationsList: []
origin: DELEGATED origin: DELEGATED
owningCallableSymbol: KtKotlinPropertySymbol(/I.zoo) owningCallableSymbol: KtKotlinPropertySymbol(/A.zoo)
type: KtUsualClassType: type: KtUsualClassType:
annotationsList: [] annotationsList: []
ownTypeArguments: [] ownTypeArguments: []
@@ -49,7 +49,7 @@ KtKotlinPropertySymbol:
KtFunctionSymbol: KtFunctionSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I.foo callableIdIfNonLocal: /A.foo
contextReceivers: [] contextReceivers: []
contractEffects: [] contractEffects: []
hasStableParameterNames: true hasStableParameterNames: true
@@ -83,7 +83,7 @@ KtFunctionSymbol:
KtKotlinPropertySymbol: KtKotlinPropertySymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I.foo callableIdIfNonLocal: /A.foo
contextReceivers: [] contextReceivers: []
getter: null getter: null
hasBackingField: false hasBackingField: false
@@ -123,7 +123,7 @@ KtKotlinPropertySymbol:
KtFunctionSymbol: KtFunctionSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I.smth callableIdIfNonLocal: /A.smth
contextReceivers: [] contextReceivers: []
contractEffects: [] contractEffects: []
hasStableParameterNames: true hasStableParameterNames: true
@@ -142,7 +142,7 @@ KtFunctionSymbol:
receiverParameter: KtReceiverParameterSymbol: receiverParameter: KtReceiverParameterSymbol:
annotationsList: [] annotationsList: []
origin: DELEGATED origin: DELEGATED
owningCallableSymbol: KtFunctionSymbol(/I.smth) owningCallableSymbol: KtFunctionSymbol(/A.smth)
type: KtUsualClassType: type: KtUsualClassType:
annotationsList: [] annotationsList: []
ownTypeArguments: [] ownTypeArguments: []
@@ -166,7 +166,7 @@ KtFunctionSymbol:
KtKotlinPropertySymbol: KtKotlinPropertySymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I.bar callableIdIfNonLocal: /A.bar
contextReceivers: [] contextReceivers: []
getter: null getter: null
hasBackingField: false hasBackingField: false
@@ -206,7 +206,7 @@ KtKotlinPropertySymbol:
KtKotlinPropertySymbol: KtKotlinPropertySymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I.doo callableIdIfNonLocal: /A.doo
contextReceivers: [] contextReceivers: []
getter: null getter: null
hasBackingField: false hasBackingField: false
@@ -227,7 +227,7 @@ KtKotlinPropertySymbol:
receiverParameter: KtReceiverParameterSymbol: receiverParameter: KtReceiverParameterSymbol:
annotationsList: [] annotationsList: []
origin: DELEGATED origin: DELEGATED
owningCallableSymbol: KtKotlinPropertySymbol(/I.doo) owningCallableSymbol: KtKotlinPropertySymbol(/A.doo)
type: KtUsualClassType: type: KtUsualClassType:
annotationsList: [] annotationsList: []
ownTypeArguments: [] ownTypeArguments: []
@@ -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: KtFunctionSymbol:
annotationsList: [] annotationsList: []
callableIdIfNonLocal: /I2.bar callableIdIfNonLocal: /B.bar
contextReceivers: [] contextReceivers: []
contractEffects: [] contractEffects: []
hasStableParameterNames: true hasStableParameterNames: true
@@ -20,7 +20,7 @@ FILE: superCallWithDelegation.kt
} }
public open override fun foo(): R|kotlin/Unit| { 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 final val platform: R|Platform| = this@R|/AbstractToolConfig|.R|/AbstractToolConfig.platformManager|.R|/PlatformManager.platform|(this@R|/AbstractToolConfig|.R|/AbstractToolConfig.target|)
protected get(): R|Platform| 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 get(): R|kotlin/String|
public abstract fun platformManager(): R|PlatformManager| 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.DelegatedWrapperData
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.declarations.* 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.modality
import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.declarations.utils.visibility
import org.jetbrains.kotlin.fir.delegatedWrapperData 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.ConeFlexibleType
import org.jetbrains.kotlin.fir.types.coneType import org.jetbrains.kotlin.fir.types.coneType
import org.jetbrains.kotlin.fir.types.isMarkedNullable import org.jetbrains.kotlin.fir.types.isMarkedNullable
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.name.StandardClassIds
@@ -88,9 +90,7 @@ class FirDelegatedMemberScope(
val delegatedSymbol = val delegatedSymbol =
FirFakeOverrideGenerator.createCopyForFirFunction( FirFakeOverrideGenerator.createCopyForFirFunction(
FirNamedFunctionSymbol( FirNamedFunctionSymbol(CallableId(containingClass.classId, functionSymbol.name)),
functionSymbol.callableId,
),
original, original,
derivedClassLookupTag = dispatchReceiverType.lookupTag, derivedClassLookupTag = dispatchReceiverType.lookupTag,
session, session,
@@ -158,9 +158,7 @@ class FirDelegatedMemberScope(
val delegatedSymbol = val delegatedSymbol =
FirFakeOverrideGenerator.createCopyForFirProperty( FirFakeOverrideGenerator.createCopyForFirProperty(
FirPropertySymbol( FirPropertySymbol(CallableId(containingClass.classId, propertySymbol.name)),
propertySymbol.callableId
),
original, original,
derivedClassLookupTag = dispatchReceiverType.lookupTag, derivedClassLookupTag = dispatchReceiverType.lookupTag,
session, session,