All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.gradle.utils.experimentalConifguration.kt Maven / Gradle / Ivy

There is a newer version: 2.1.0-RC
Show newest version
/*
 * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

package org.jetbrains.kotlin.gradle.utils

import org.gradle.api.Project
import org.gradle.api.provider.ProviderFactory
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.kotlinPropertiesProvider

internal fun  T.configureExperimentalTryNext(
    project: Project,
    kotlinProperties: PropertiesProvider = project.kotlinPropertiesProvider
): T = configureExperimentalTryNext(kotlinProperties, project.providers)

internal val KotlinVersion.Companion.nextKotlinLanguageVersion get() = KotlinVersion.values().first { it > KotlinVersion.DEFAULT }

internal fun  T.configureExperimentalTryNext(
    kotlinProperties: PropertiesProvider,
    providerFactory: ProviderFactory,
): T = apply {
    languageVersion.convention(
        kotlinProperties.kotlinExperimentalTryNext.mapOrNull(providerFactory) { enabled ->
            @Suppress("TYPE_MISMATCH")
            if (enabled) KotlinVersion.nextKotlinLanguageVersion else null
        }
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy