Make CharSequence.length a function instead of property
And String.length as well. This is done for JVM interoperability: java.lang.CharSequence is an open class and has a function 'length()' which should be implemented in subclasses somehow. A minor unexpected effect of this is that String.length() is now a compile-time constant (it wasn't such as a property because properties are not supported in compile-time constant evaluation) #KT-3571 Fixed
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
class Thing(delegate: CharSequence) : CharSequence by delegate
|
||||
|
||||
fun box(): String {
|
||||
val l = Thing("hello there").length()
|
||||
return if (l == 11) "OK" else "Fail $l"
|
||||
}
|
||||
@@ -14,7 +14,7 @@ fun box() : String {
|
||||
|
||||
val test5 =
|
||||
"""
|
||||
${s.length}
|
||||
${s.length()}
|
||||
"""
|
||||
if (test5 != "\n 3\n") return "Fail 5: $test5"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user