Refactor BinaryVersion and subclasses, get rid of static factories

This commit is contained in:
Alexander Udalov
2016-01-18 00:13:55 +03:00
parent e37bd4eba6
commit d4c4515944
11 changed files with 31 additions and 78 deletions
@@ -26,19 +26,15 @@ class KotlinJavascriptMetadata(val abiVersion: Int, val moduleName: String, val
}
// TODO: move to JS modules
class JsBinaryVersion protected constructor(
major: Int, minor: Int, patch: Int, rest: List<Int>
) : BinaryVersion(major, minor, patch, rest) {
class JsBinaryVersion(vararg numbers: Int) : BinaryVersion(*numbers) {
override fun isCompatible() = this.isCompatibleTo(INSTANCE)
companion object {
@JvmField val INSTANCE = create(0, 3, 0)
@JvmField
val INSTANCE = JsBinaryVersion(0, 3, 0)
@JvmField val INVALID_VERSION = JsBinaryVersion.create(IntArray(0))
@JvmStatic fun create(version: IntArray) = create(version, ::JsBinaryVersion)
@JvmStatic fun create(major: Int, minor: Int, patch: Int) = create(major, minor, patch, ::JsBinaryVersion)
@JvmField
val INVALID_VERSION = JsBinaryVersion()
}
}