Include property type to KProperty.toString

This commit is contained in:
Alexander Udalov
2015-08-24 17:43:27 +03:00
parent d36ef90dd6
commit ea8fe56704
5 changed files with 16 additions and 10 deletions
@@ -8,6 +8,9 @@ fun check(expected: String, p: KProperty1<*, *>) {
assert(s.startsWith("val ") || s.startsWith("var ")) { "Fail val/var: $s" }
s = s.substring(4)
// Strip property type
s = s.substringBeforeLast(':')
// Strip property name, leave only receiver class
s = s.substringBeforeLast('.')
@@ -10,7 +10,7 @@ class A {
fun box(): String {
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()
if ("$q" != "fun A.(kotlin.Int.)foo(): kotlin.Double") return "Fail q $q"
@@ -16,11 +16,11 @@ fun assertToString(s: String, x: Any) {
}
fun box(): String {
assertToString("val top", ::top)
assertToString("var top2", ::top2)
assertToString("val kotlin.String.ext", String::ext)
assertToString("var kotlin.IntRange?.ext2", IntRange::ext2)
assertToString("val test.A.mem", A::mem)
assertToString("var test.B.mem", B::mem)
assertToString("val top: kotlin.Int", ::top)
assertToString("var top2: kotlin.Int", ::top2)
assertToString("val kotlin.String.ext: kotlin.Int", String::ext)
assertToString("var kotlin.IntRange?.ext2: kotlin.Int", IntRange::ext2)
assertToString("val test.A.mem: kotlin.String", A::mem)
assertToString("var test.B.mem: kotlin.String", B::mem)
return "OK"
}