JVM_IR: unwrap fake overrides when computing property signatures
This commit is contained in:
+4
-1
@@ -56,9 +56,12 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : Class
|
|||||||
private val IrMemberAccessExpression.field: IrFieldSymbol?
|
private val IrMemberAccessExpression.field: IrFieldSymbol?
|
||||||
get() = (this as? IrPropertyReference)?.field
|
get() = (this as? IrPropertyReference)?.field
|
||||||
|
|
||||||
|
private val IrSimpleFunction.signature: String
|
||||||
|
get() = context.state.typeMapper.mapSignatureSkipGeneric(collectRealOverrides().first().descriptor).toString()
|
||||||
|
|
||||||
private val IrMemberAccessExpression.signature: String
|
private val IrMemberAccessExpression.signature: String
|
||||||
get() = localPropertyIndices[getter]?.let { "<v#$it>" }
|
get() = localPropertyIndices[getter]?.let { "<v#$it>" }
|
||||||
?: getter?.owner?.let { context.state.typeMapper.mapSignatureSkipGeneric(it.descriptor).toString() }
|
?: (getter?.owner as? IrSimpleFunction)?.signature
|
||||||
// Plain Java fields do not have a getter, but can be referenced nonetheless. The signature should be
|
// Plain Java fields do not have a getter, but can be referenced nonetheless. The signature should be
|
||||||
// the one that a getter would have, if it existed.
|
// the one that a getter would have, if it existed.
|
||||||
?: TODO("plain Java field signature")
|
?: TODO("plain Java field signature")
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND: JS_IR, JS, NATIVE
|
// IGNORE_BACKEND: JS_IR, JS, NATIVE
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
|
|
||||||
|
|||||||
-1
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
// IGNORE_BACKEND: JS_IR
|
// IGNORE_BACKEND: JS_IR
|
||||||
// TODO: muted automatically, investigate should it be ran for JS or not
|
// TODO: muted automatically, investigate should it be ran for JS or not
|
||||||
// IGNORE_BACKEND: JS, NATIVE
|
// IGNORE_BACKEND: JS, NATIVE
|
||||||
|
|||||||
Reference in New Issue
Block a user