Search code examples
kotlinjava-17

Kotlin lowercase Function


I am new to kotlin, so I am sorry in advance, if this is a simple misstake.

I am trying at the moment to rewrite an api (written in Kotlin) to java 17. Everything worked so far. But now I am getting following deprecated message:

'toLowerCase(): String' is deprecated. Use lowercase() instead.

Of course I know what it means, so I tried doing it like in the following Picture: https://i.sstatic.net/vT8k5.png

But why doesnt it find the lowercase Function?

This is in my build.gradle:

plugins {
    id 'org.jetbrains.kotlin.jvm'
    id "org.jetbrains.kotlin.kapt"
    id "org.jetbrains.dokka"

    id "java-library"
    id "maven-publish"

    id "jacoco"
    id "io.gitlab.arturbosch.detekt"
    id "org.jlleitschuh.gradle.ktlint"

    id "com.github.gmazzo.buildconfig"
}

apply from: "${rootDir}/gradle/dependencies.gradle"

tasks.withType(org.jetbrains.dokka.gradle.DokkaTask).configureEach {
    dokkaSourceSets {
        configureEach {
            sourceLink {
                localDirectory.set(file("src/main/kotlin"))
                remoteUrl.set(uri("").toURL())
            }

            externalDocumentationLink { url.set(new URL("https://square.github.io/retrofit/2.x/retrofit/")) }
            externalDocumentationLink { url.set(new URL("https://square.github.io/okhttp/3.x/okhttp/")) }
            externalDocumentationLink { url.set(new URL("https://square.github.io/moshi/1.x/moshi/")) }
        }
    }
}

tasks.dokkaJavadoc.configure {
    outputDirectory.set(javadoc.destinationDir)
}

task sourceJar(type: Jar) {
    archiveClassifier = "sources"

    from sourceSets.main.allSource
}

task javadocJar(type: Jar, dependsOn: dokkaJavadoc) {
    archiveClassifier = "javadoc"

    from javadoc.destinationDir
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
    kotlinOptions {
        jvmTarget = "17"
        allWarningsAsErrors = true
        freeCompilerArgs = ["-Xjsr305=strict", "-progressive"]
    }
}

kapt {
    useBuildCache = true
}

test {
    finalizedBy jacocoTestReport

    useJUnitPlatform()
}

buildConfig {
    packageName("my.package")  // forces the package. Defaults to '${project.group}'

    useKotlinOutput()   // adds `internal` modifier to all declarations
    buildConfigField("String", "packageName", "\"my.package\"")
    buildConfigField("String", "version", provider { "\"${project.version}\"" })
}

jacoco {
    setToolVersion(jacocoVersion)
}

jacocoTestReport {
    reports {
        xml.required = true
        html.required = false
    }
}

ktlint {
    disabledRules = ["import-ordering"]
    version = ktlintVersion

    reporters {
        reporter "checkstyle"
    }
}

detekt {
    version = detektVersion
    buildUponDefaultConfig = true

    config = files("$rootDir/config/detekt.yml")
}

repositories {
    mavenCentral()
}
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
}
compileKotlin {
    kotlinOptions {
        jvmTarget = "17"
    }
}
compileTestKotlin {
    kotlinOptions {
        jvmTarget = "17"
    }
}


Solution

  • Ensure your kotlin-stdlib version is 1.5 or above. Check this out