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

org.jetbrains.kotlin.config.CommonConfigurationKeys.kt Maven / Gradle / Ivy

There is a newer version: 2.1.0-RC
Show newest version
/*
 * Copyright 2010-2024 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.config

import org.jetbrains.kotlin.cli.common.messages.MessageCollector
import org.jetbrains.kotlin.constant.EvaluatedConstTracker
import org.jetbrains.kotlin.incremental.components.*
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion

object CommonConfigurationKeys {
    @JvmField
    val LANGUAGE_VERSION_SETTINGS = CompilerConfigurationKey("language version settings")

    @JvmField
    val DISABLE_INLINE = CompilerConfigurationKey("disable inline")

    @JvmField
    val MODULE_NAME = CompilerConfigurationKey("module name")

    @JvmField
    val REPORT_OUTPUT_FILES = CompilerConfigurationKey("report output files")

    @JvmField
    val LOOKUP_TRACKER = CompilerConfigurationKey.create("lookup tracker")

    @JvmField
    val EXPECT_ACTUAL_TRACKER = CompilerConfigurationKey.create("expect actual tracker")

    @JvmField
    val INLINE_CONST_TRACKER = CompilerConfigurationKey.create("inline constant tracker")

    @JvmField
    val ENUM_WHEN_TRACKER = CompilerConfigurationKey.create("enum when tracker")

    @JvmField
    val IMPORT_TRACKER = CompilerConfigurationKey.create("import tracker")

    @JvmField
    val METADATA_VERSION = CompilerConfigurationKey.create("metadata version")

    @JvmField
    val USE_FIR = CompilerConfigurationKey.create("front-end IR")

    @JvmField
    val USE_LIGHT_TREE = CompilerConfigurationKey.create("light tree")

    @JvmField
    val HMPP_MODULE_STRUCTURE = CompilerConfigurationKey.create("HMPP module structure")

    @JvmField
    val METADATA_KLIB = CompilerConfigurationKey.create("Produce metadata klib")

    @JvmField
    val USE_FIR_EXTENDED_CHECKERS = CompilerConfigurationKey.create("fir extended checkers")

    @JvmField
    val PARALLEL_BACKEND_THREADS =
        CompilerConfigurationKey.create("When using the IR backend, run lowerings by file in N parallel threads")

    @JvmField
    val INCREMENTAL_COMPILATION =
        CompilerConfigurationKey.create("Enable incremental compilation")

    @JvmField
    val ALLOW_ANY_SCRIPTS_IN_SOURCE_ROOTS =
        CompilerConfigurationKey.create("Allow to compile any scripts along with regular Kotlin sources")

    @JvmField
    val IGNORE_CONST_OPTIMIZATION_ERRORS = CompilerConfigurationKey.create("Ignore errors from IrConstTransformer")

    @JvmField
    val EVALUATED_CONST_TRACKER =
        CompilerConfigurationKey.create("Keeps track of all evaluated by IrInterpreter constants")

    @JvmField
    val MESSAGE_COLLECTOR_KEY = CompilerConfigurationKey.create("message collector")

    @JvmField
    val VERIFY_IR = CompilerConfigurationKey.create("IR verification mode")

    @JvmField
    val ENABLE_IR_VISIBILITY_CHECKS = CompilerConfigurationKey.create("Check pre-lowering IR for visibility violations")

    @JvmField
    val ENABLE_IR_VISIBILITY_CHECKS_AFTER_INLINING =
        CompilerConfigurationKey.create("Check post-inlining IR for visibility violations")
}

var CompilerConfiguration.languageVersionSettings: LanguageVersionSettings
    get() = get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
    set(value) = put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, value)

val LanguageVersionSettings.isLibraryToSourceAnalysisEnabled: Boolean
    get() = getFlag(AnalysisFlags.libraryToSourceAnalysis)

val LanguageVersionSettings.areExpectActualClassesStable: Boolean
    get() {
        return getFlag(AnalysisFlags.muteExpectActualClassesWarning) || supportsFeature(LanguageFeature.ExpectActualClasses)
    }

var CompilerConfiguration.messageCollector: MessageCollector
    get() = get(CommonConfigurationKeys.MESSAGE_COLLECTOR_KEY, MessageCollector.NONE)
    set(value) = put(CommonConfigurationKeys.MESSAGE_COLLECTOR_KEY, value)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy