Hi,
I have an init script in my .gradle/init.d
folder, that used .toUppercase(Locale)
version.toUpperCase(Locale.getDefault())
But the build is failing with Gradle 8.3
FAILURE: Build failed with an exception.
* Where:
Initialization script '/Users/brice.dutheil/.gradle/init.d/versions.init.gradle.kts' line: 30
* What went wrong:
Script compilation error:
Line 30: .any { version.toUpperCase(Locale.ROOT)
^ 'toUpperCase(Locale): String' is deprecated. Use uppercase() instead.
1 error
But I have projects on Gradle 7.x, which are failing if I update this to .uppercase(Locale)
. I have the reverse issue :
e: /Users/brice.dutheil/.gradle/init.d/versions.init.gradle.kts:31:47: Unresolved reference: uppercase
FAILURE: Build failed with an exception.
* Where:
Initialization script '/Users/brice.dutheil/.gradle/init.d/versions.init.gradle.kts' line: 31
* What went wrong:
Script compilation error:
Line 31: .any { version.uppercase(Locale.getDefault())
^ Unresolved reference: uppercase
1 error
I can use reflection there to invoke String’s toUppercase
as it’s what kotlin’s uppercase
do, but this seems somewhat wrong.
@SinceKotlin("1.5")
@WasExperimental(ExperimentalStdlibApi::class)
@kotlin.internal.InlineOnly
public inline fun String.uppercase(locale: Locale): String = (this as java.lang.String).toUpperCase(locale)
Note even using java String
class is disallowed.
(this as java.lang.String).toUpperCase(locale)
^ This class shouldn't be used in Kotlin. Use kotlin.String instead.