From 0dc5ed53f8a5ca2711c38f3d05952f04b5ec0e7e Mon Sep 17 00:00:00 2001 From: scaventz Date: Thu, 11 Mar 2021 01:23:18 +0800 Subject: [PATCH] Provide sensible toString for getter/setter in reflection. --- .../box/reflection/methodsFromAny/propertyToString.kt | 6 ++++++ .../src/kotlin/reflect/jvm/internal/KPropertyImpl.kt | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/compiler/testData/codegen/box/reflection/methodsFromAny/propertyToString.kt b/compiler/testData/codegen/box/reflection/methodsFromAny/propertyToString.kt index 7e4d08e9a58..e03096d209e 100644 --- a/compiler/testData/codegen/box/reflection/methodsFromAny/propertyToString.kt +++ b/compiler/testData/codegen/box/reflection/methodsFromAny/propertyToString.kt @@ -29,5 +29,11 @@ fun box(): String { assertToString("var kotlin.ranges.IntRange?.ext2: kotlin.Int", IntRange::ext2) assertToString("val test.A.mem: kotlin.String", A::mem) assertToString("var test.B.mem: kotlin.String", B::mem) + assertToString("getter of val top: kotlin.Int", ::top.getter) + assertToString("getter of var top2: kotlin.Int", ::top2.getter) + assertToString("setter of var top2: kotlin.Int", ::top2.setter) + assertToString("getter of val test.A.mem: kotlin.String", A::mem.getter) + assertToString("getter of var test.B.mem: kotlin.String", B::mem.getter) + assertToString("setter of var test.B.mem: kotlin.String", B::mem.setter) return "OK" } diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt index 9c8590b6685..c5b86e06af6 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/internal/KPropertyImpl.kt @@ -155,6 +155,8 @@ internal abstract class KPropertyImpl private constructor( override val caller: Caller<*> by ReflectProperties.lazy { computeCallerForAccessor(isGetter = true) } + + override fun toString(): String = "getter of $property" } abstract class Setter : Accessor(), KMutableProperty.Setter { @@ -168,6 +170,8 @@ internal abstract class KPropertyImpl private constructor( override val caller: Caller<*> by ReflectProperties.lazy { computeCallerForAccessor(isGetter = false) } + + override fun toString(): String = "setter of $property" } companion object {