Include property type to KProperty.toString
This commit is contained in:
+2
-2
@@ -4,8 +4,8 @@ import kotlin.test.*
|
|||||||
import test.equalsHashCodeToString as J
|
import test.equalsHashCodeToString as J
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
assertEquals("val test.equalsHashCodeToString.b", (J::b).toString())
|
assertEquals("val test.equalsHashCodeToString.b: kotlin.Boolean", (J::b).toString())
|
||||||
assertEquals("var test.equalsHashCodeToString.c", (J::c).toString())
|
assertEquals("var test.equalsHashCodeToString.c: kotlin.Char", (J::c).toString())
|
||||||
|
|
||||||
assertTrue(J::b == J::b)
|
assertTrue(J::b == J::b)
|
||||||
assertFalse(J::c == J::b)
|
assertFalse(J::c == J::b)
|
||||||
|
|||||||
+3
@@ -8,6 +8,9 @@ fun check(expected: String, p: KProperty1<*, *>) {
|
|||||||
assert(s.startsWith("val ") || s.startsWith("var ")) { "Fail val/var: $s" }
|
assert(s.startsWith("val ") || s.startsWith("var ")) { "Fail val/var: $s" }
|
||||||
s = s.substring(4)
|
s = s.substring(4)
|
||||||
|
|
||||||
|
// Strip property type
|
||||||
|
s = s.substringBeforeLast(':')
|
||||||
|
|
||||||
// Strip property name, leave only receiver class
|
// Strip property name, leave only receiver class
|
||||||
s = s.substringBeforeLast('.')
|
s = s.substringBeforeLast('.')
|
||||||
|
|
||||||
|
|||||||
Vendored
+1
-1
@@ -10,7 +10,7 @@ class A {
|
|||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
val p = javaClass<A>().kotlin.memberExtensionProperties.single()
|
val p = javaClass<A>().kotlin.memberExtensionProperties.single()
|
||||||
return if ("$p" == "var A.(kotlin.String.)id") "OK" else "Fail $p"
|
return if ("$p" == "var A.(kotlin.String.)id: kotlin.String") "OK" else "Fail $p"
|
||||||
|
|
||||||
val q = javaClass<A>().kotlin.declaredFunctions.single()
|
val q = javaClass<A>().kotlin.declaredFunctions.single()
|
||||||
if ("$q" != "fun A.(kotlin.Int.)foo(): kotlin.Double") return "Fail q $q"
|
if ("$q" != "fun A.(kotlin.Int.)foo(): kotlin.Double") return "Fail q $q"
|
||||||
|
|||||||
+6
-6
@@ -16,11 +16,11 @@ fun assertToString(s: String, x: Any) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun box(): String {
|
fun box(): String {
|
||||||
assertToString("val top", ::top)
|
assertToString("val top: kotlin.Int", ::top)
|
||||||
assertToString("var top2", ::top2)
|
assertToString("var top2: kotlin.Int", ::top2)
|
||||||
assertToString("val kotlin.String.ext", String::ext)
|
assertToString("val kotlin.String.ext: kotlin.Int", String::ext)
|
||||||
assertToString("var kotlin.IntRange?.ext2", IntRange::ext2)
|
assertToString("var kotlin.IntRange?.ext2: kotlin.Int", IntRange::ext2)
|
||||||
assertToString("val test.A.mem", A::mem)
|
assertToString("val test.A.mem: kotlin.String", A::mem)
|
||||||
assertToString("var test.B.mem", B::mem)
|
assertToString("var test.B.mem: kotlin.String", B::mem)
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,11 +56,14 @@ object ReflectionObjectRenderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: include visibility, return type
|
// TODO: include visibility
|
||||||
fun renderProperty(descriptor: PropertyDescriptor): String {
|
fun renderProperty(descriptor: PropertyDescriptor): String {
|
||||||
return StringBuilder {
|
return StringBuilder {
|
||||||
append(if (descriptor.isVar) "var " else "val ")
|
append(if (descriptor.isVar) "var " else "val ")
|
||||||
appendReceiversAndName(descriptor)
|
appendReceiversAndName(descriptor)
|
||||||
|
|
||||||
|
append(": ")
|
||||||
|
append(renderType(descriptor.type))
|
||||||
}.toString()
|
}.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user