Introduce SinceKotlinInfo, load from serialized metadata

This is a way for future compilers to cause previous compilers to report
diagnostics on usages of some declarations. Diagnostic can have a message
(and/or error code), level (error, warning, or completely hide the declaration
from the resolution), and Kotlin version, since which the diagnostic should no
longer be reported
This commit is contained in:
Alexander Udalov
2016-12-14 11:54:55 +03:00
parent 212240a008
commit feeed98323
17 changed files with 5337 additions and 99 deletions
@@ -16,6 +16,8 @@
package org.jetbrains.kotlin.config
import org.jetbrains.kotlin.serialization.deserialization.descriptors.SinceKotlinInfo
class ApiVersion private constructor(
private val version: MavenComparableVersion,
val versionString: String
@@ -38,6 +40,10 @@ class ApiVersion private constructor(
@JvmStatic
fun createByLanguageVersion(version: LanguageVersion): ApiVersion = parse(version.versionString)!!
@JvmStatic
fun createBySinceKotlinInfo(sinceKotlinInfo: SinceKotlinInfo): ApiVersion =
sinceKotlinInfo.version.let { version -> parse(version.asString()) ?: error("Could not parse version: $version") }
fun parse(versionString: String): ApiVersion? = try {
ApiVersion(MavenComparableVersion(versionString), versionString)
}