Unify Deprecation classes from :core:compiler.common and :compiler:frontend modules

This commit is contained in:
Dmitriy Novozhilov
2021-08-27 12:51:16 +03:00
parent be999564b1
commit 762d225bd7
18 changed files with 108 additions and 108 deletions
@@ -1,27 +0,0 @@
/*
* Copyright 2010-2021 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.descriptors
data class Deprecation(
val level: DeprecationLevelValue,
val inheritable: Boolean,
val message: String? = null
) : Comparable<Deprecation> {
override fun compareTo(other: Deprecation): Int {
val lr = level.compareTo(other.level)
//to prefer inheritable deprecation
return if (lr == 0 && !inheritable && other.inheritable) 1
else lr
}
}
/**
* This corresponds to [DeprecationLevel] in Kotlin standard library. A symbol annotated with [java.lang.Deprecated] is considered a
* warning.
*/
enum class DeprecationLevelValue {
WARNING, ERROR, HIDDEN
}
@@ -0,0 +1,33 @@
/*
* Copyright 2010-2021 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.resolve.deprecation
abstract class Deprecation : Comparable<Deprecation> {
abstract val deprecationLevel: DeprecationLevelValue
abstract val propagatesToOverrides: Boolean
abstract val message: String?
override fun compareTo(other: Deprecation): Int {
val lr = deprecationLevel.compareTo(other.deprecationLevel)
//to prefer inheritable deprecation
return if (lr == 0 && !propagatesToOverrides && other.propagatesToOverrides) 1
else lr
}
}
data class SimpleDeprecation(
override val deprecationLevel: DeprecationLevelValue,
override val propagatesToOverrides: Boolean,
override val message: String?
) : Deprecation()
/**
* This corresponds to [DeprecationLevel] in Kotlin standard library. A symbol annotated with [java.lang.Deprecated] is considered a
* warning.
*/
enum class DeprecationLevelValue {
WARNING, ERROR, HIDDEN
}