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:
+4
-4
@@ -95,8 +95,8 @@ private fun mapJavaClassToKotlin(name: String): String {
|
||||
}
|
||||
}
|
||||
if (name[0] == '[') {
|
||||
val element = (name as java.lang.String).substring(1)
|
||||
return when (element[0]) {
|
||||
val element = (name as java.lang.String).substring(1) as java.lang.String
|
||||
return when (element.charAt(0)) {
|
||||
'Z' -> "kotlin.BooleanArray"
|
||||
'C' -> "kotlin.CharArray"
|
||||
'B' -> "kotlin.ByteArray"
|
||||
@@ -105,8 +105,8 @@ private fun mapJavaClassToKotlin(name: String): String {
|
||||
'F' -> "kotlin.FloatArray"
|
||||
'J' -> "kotlin.LongArray"
|
||||
'D' -> "kotlin.DoubleArray"
|
||||
'L' -> "kotlin.Array<${mapJavaClassToKotlin((element as java.lang.String).substring(1, element.length() - 1))}>"
|
||||
else -> "kotlin.Array<${mapJavaClassToKotlin(element)}>"
|
||||
'L' -> "kotlin.Array<${mapJavaClassToKotlin(element.substring(1, element.length() - 1))}>"
|
||||
else -> "kotlin.Array<${mapJavaClassToKotlin(element as kotlin.String)}>"
|
||||
}
|
||||
}
|
||||
return name
|
||||
|
||||
@@ -24,7 +24,7 @@ suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN")
|
||||
private fun String.capitalizeWithJavaBeanConvention(): String {
|
||||
// The code is a bit crooked because otherwise there are overload resolution ambiguities caused by the fact
|
||||
// that we compile it with the built-ins both in source and as a compiled library
|
||||
val l = length
|
||||
val l = length()
|
||||
if (l > 1 && Character.isUpperCase(get(1))) return this
|
||||
val first = get(0)
|
||||
this as java.lang.String
|
||||
|
||||
Reference in New Issue
Block a user