Move JVM-specific analysis flags to 'config.jvm'

This commit is contained in:
Alexander Udalov
2020-03-15 18:04:36 +01:00
committed by Alexander Udalov
parent 7bb77e5672
commit db9347cb56
3 changed files with 18 additions and 12 deletions
@@ -5,15 +5,18 @@
package org.jetbrains.kotlin.config
import org.jetbrains.kotlin.utils.Jsr305State
import kotlin.reflect.KProperty
object JvmAnalysisFlags {
@JvmStatic
val strictMetadataVersionSemantics by AnalysisFlag.Delegates.Boolean
@JvmStatic
val jsr305 by AnalysisFlag.Delegates.Jsr305StateWarnByDefault
val jsr305 by Delegates.Jsr305StateWarnByDefault
@JvmStatic
val jvmDefaultMode by AnalysisFlag.Delegates.JvmDefaultModeDisabledByDefault
val jvmDefaultMode by Delegates.JvmDefaultModeDisabledByDefault
@JvmStatic
val inheritMultifileParts by AnalysisFlag.Delegates.Boolean
@@ -26,4 +29,16 @@ object JvmAnalysisFlags {
@JvmStatic
val irCheckLocalNames by AnalysisFlag.Delegates.Boolean
private object Delegates {
object Jsr305StateWarnByDefault {
operator fun provideDelegate(instance: Any?, property: KProperty<*>): AnalysisFlag.Delegate<Jsr305State> =
AnalysisFlag.Delegate(property.name, Jsr305State.DEFAULT)
}
object JvmDefaultModeDisabledByDefault {
operator fun provideDelegate(instance: Any?, property: KProperty<*>): AnalysisFlag.Delegate<JvmDefaultMode> =
AnalysisFlag.Delegate(property.name, JvmDefaultMode.DISABLE)
}
}
}
@@ -0,0 +1,26 @@
/*
* Copyright 2010-2018 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
enum class JvmDefaultMode(val description: String) {
DISABLE("disable"),
ENABLE("enable"),
ENABLE_WITH_DEFAULT_IMPLS("compatibility");
val isEnabled
get() = this != DISABLE
val isCompatibility
get() = this == ENABLE_WITH_DEFAULT_IMPLS
companion object {
@JvmField
val DEFAULT = DISABLE
@JvmStatic
fun fromStringOrNull(string: String?) = values().find { it.description == string }
}
}