[IR] Fix mangling generic properties from IR-based descriptors

For type parameters of generic properties,
`DeclarationDescriptor#getContainingDeclaration` must return
the property descriptor instead of the accessor function descriptor.

^KT-57436 Fixed
This commit is contained in:
Sergej Jaskiewicz
2023-04-18 14:12:11 +02:00
committed by Space Team
parent 5f1976c450
commit 5d3fe7547a
14 changed files with 23 additions and 26 deletions
@@ -1146,6 +1146,9 @@ fun IrErrorDeclaration.toIrBasedDescriptor() = IrBasedErrorDescriptor(this)
@OptIn(ObsoleteDescriptorBasedAPI::class)
private fun getContainingDeclaration(declaration: IrDeclaration): DeclarationDescriptor {
val parent = declaration.parent
if (declaration is IrTypeParameter && parent is IrSimpleFunction) {
parent.correspondingPropertySymbol?.owner?.let { return it.toIrBasedDescriptor() }
}
val parentDescriptor = (parent as IrSymbolOwner).let {
if (it is IrDeclaration) it.toIrBasedDescriptor() else it.symbol.descriptor
}