Extract building JSR-305 settings to separate function

This commit is contained in:
Victor Petukhov
2021-06-02 17:19:05 +03:00
parent f92ab691f8
commit 61c2f1b203
3 changed files with 15 additions and 10 deletions
@@ -46,8 +46,9 @@ open class JvmForeignAnnotationsConfigurator(testServices: TestServices) : Envir
get() = listOf(ForeignAnnotationsDirectives)
override fun provideAdditionalAnalysisFlags(directives: RegisteredDirectives): Map<AnalysisFlag<*>, Any?> {
val globalState = directives.singleOrZeroValue(JSR305_GLOBAL_REPORT) ?: ReportLevel.WARN
val migrationState = directives.singleOrZeroValue(JSR305_MIGRATION_REPORT)
val defaultJsr305Settings = Jsr305Settings.DEFAULT
val globalState = directives.singleOrZeroValue(JSR305_GLOBAL_REPORT) ?: defaultJsr305Settings.globalLevel
val migrationState = directives.singleOrZeroValue(JSR305_MIGRATION_REPORT) ?: defaultJsr305Settings.migrationLevel
val userAnnotationsState = directives[JSR305_SPECIAL_REPORT].mapNotNull {
val (name, stateDescription) = it.split(":").takeIf { it.size == 2 } ?: return@mapNotNull null
val state = ReportLevel.findByDescription(stateDescription) ?: return@mapNotNull null
@@ -39,11 +39,21 @@ val nullabilityAnnotationSettings = mapOf(
),
)
val jsr305Settings = JavaNullabilityAnnotationsStatus(
private val jsr305Settings = JavaNullabilityAnnotationsStatus(
reportLevelBefore = ReportLevel.WARN,
sinceVersion = null
)
fun getDefaultJsr305Settings(): Jsr305Settings {
val globalReportLevel = if (jsr305Settings.sinceVersion != null && jsr305Settings.sinceVersion <= KotlinVersion.CURRENT) {
jsr305Settings.reportLevelAfter
} else {
jsr305Settings.reportLevelBefore
}
val migrationLevel = if (globalReportLevel == ReportLevel.WARN) null else globalReportLevel
return Jsr305Settings(globalReportLevel, migrationLevel)
}
fun getDefaultReportLevelForAnnotation(annotationFqName: FqName) = getReportLevelForAnnotation(annotationFqName, emptyMap())
fun getReportLevelForAnnotation(annotation: FqName, configuredReportLevels: Map<FqName, ReportLevel>): ReportLevel {
@@ -13,13 +13,7 @@ data class Jsr305Settings(
val userDefinedLevelForSpecificAnnotation: Map<FqName, ReportLevel> = emptyMap()
) {
companion object {
val DEFAULT by lazy {
val reportLevelBefore = if (jsr305Settings.sinceVersion != null && jsr305Settings.sinceVersion <= KotlinVersion.CURRENT) {
jsr305Settings.reportLevelBefore
} else jsr305Settings.reportLevelAfter
Jsr305Settings(reportLevelBefore, if (reportLevelBefore == ReportLevel.WARN) null else reportLevelBefore)
}
val DEFAULT = getDefaultJsr305Settings()
}
@OptIn(ExperimentalStdlibApi::class)