Introduce SIZE_BYTES and SIZE_BITS constants for all integral types

#KT-8247 Fixed
This commit is contained in:
Ilya Gorbunov
2018-06-28 00:44:05 +03:00
parent 31d7aae98d
commit 0c50014e7a
17 changed files with 288 additions and 16 deletions
+20
View File
@@ -121,6 +121,10 @@ public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte> {
public final fun <get-MAX_VALUE>(): kotlin.Byte public final fun <get-MAX_VALUE>(): kotlin.Byte
public const final val MIN_VALUE: kotlin.Byte public const final val MIN_VALUE: kotlin.Byte
public final fun <get-MIN_VALUE>(): kotlin.Byte public final fun <get-MIN_VALUE>(): kotlin.Byte
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -165,6 +169,10 @@ public final class Char : kotlin.Comparable<kotlin.Char> {
public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char
public const final val MIN_SURROGATE: kotlin.Char public const final val MIN_SURROGATE: kotlin.Char
public final fun <get-MIN_SURROGATE>(): kotlin.Char public final fun <get-MIN_SURROGATE>(): kotlin.Char
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -479,6 +487,10 @@ public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int> {
public final fun <get-MAX_VALUE>(): kotlin.Int public final fun <get-MAX_VALUE>(): kotlin.Int
public const final val MIN_VALUE: kotlin.Int public const final val MIN_VALUE: kotlin.Int
public final fun <get-MIN_VALUE>(): kotlin.Int public final fun <get-MIN_VALUE>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -565,6 +577,10 @@ public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long> {
public final fun <get-MAX_VALUE>(): kotlin.Long public final fun <get-MAX_VALUE>(): kotlin.Long
public const final val MIN_VALUE: kotlin.Long public const final val MIN_VALUE: kotlin.Long
public final fun <get-MIN_VALUE>(): kotlin.Long public final fun <get-MIN_VALUE>(): kotlin.Long
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -677,6 +693,10 @@ public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short> {
public final fun <get-MAX_VALUE>(): kotlin.Short public final fun <get-MAX_VALUE>(): kotlin.Short
public const final val MIN_VALUE: kotlin.Short public const final val MIN_VALUE: kotlin.Short
public final fun <get-MIN_VALUE>(): kotlin.Short public final fun <get-MIN_VALUE>(): kotlin.Short
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
+20
View File
@@ -123,6 +123,10 @@ public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte>, java.io
public final fun <get-MAX_VALUE>(): kotlin.Byte public final fun <get-MAX_VALUE>(): kotlin.Byte
public const final val MIN_VALUE: kotlin.Byte public const final val MIN_VALUE: kotlin.Byte
public final fun <get-MIN_VALUE>(): kotlin.Byte public final fun <get-MIN_VALUE>(): kotlin.Byte
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -168,6 +172,10 @@ public final class Char : kotlin.Comparable<kotlin.Char>, java.io.Serializable {
public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char
public const final val MIN_SURROGATE: kotlin.Char public const final val MIN_SURROGATE: kotlin.Char
public final fun <get-MIN_SURROGATE>(): kotlin.Char public final fun <get-MIN_SURROGATE>(): kotlin.Char
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -493,6 +501,10 @@ public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int>, java.io.S
public final fun <get-MAX_VALUE>(): kotlin.Int public final fun <get-MAX_VALUE>(): kotlin.Int
public const final val MIN_VALUE: kotlin.Int public const final val MIN_VALUE: kotlin.Int
public final fun <get-MIN_VALUE>(): kotlin.Int public final fun <get-MIN_VALUE>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -580,6 +592,10 @@ public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long>, java.io
public final fun <get-MAX_VALUE>(): kotlin.Long public final fun <get-MAX_VALUE>(): kotlin.Long
public const final val MIN_VALUE: kotlin.Long public const final val MIN_VALUE: kotlin.Long
public final fun <get-MIN_VALUE>(): kotlin.Long public final fun <get-MIN_VALUE>(): kotlin.Long
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -693,6 +709,10 @@ public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short>, java.
public final fun <get-MAX_VALUE>(): kotlin.Short public final fun <get-MAX_VALUE>(): kotlin.Short
public const final val MIN_VALUE: kotlin.Short public const final val MIN_VALUE: kotlin.Short
public final fun <get-MIN_VALUE>(): kotlin.Short public final fun <get-MIN_VALUE>(): kotlin.Short
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
+20
View File
@@ -123,6 +123,10 @@ public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte>, java.io
public final fun <get-MAX_VALUE>(): kotlin.Byte public final fun <get-MAX_VALUE>(): kotlin.Byte
public const final val MIN_VALUE: kotlin.Byte public const final val MIN_VALUE: kotlin.Byte
public final fun <get-MIN_VALUE>(): kotlin.Byte public final fun <get-MIN_VALUE>(): kotlin.Byte
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -168,6 +172,10 @@ public final class Char : kotlin.Comparable<kotlin.Char>, java.io.Serializable {
public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char
public const final val MIN_SURROGATE: kotlin.Char public const final val MIN_SURROGATE: kotlin.Char
public final fun <get-MIN_SURROGATE>(): kotlin.Char public final fun <get-MIN_SURROGATE>(): kotlin.Char
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -495,6 +503,10 @@ public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int>, java.io.S
public final fun <get-MAX_VALUE>(): kotlin.Int public final fun <get-MAX_VALUE>(): kotlin.Int
public const final val MIN_VALUE: kotlin.Int public const final val MIN_VALUE: kotlin.Int
public final fun <get-MIN_VALUE>(): kotlin.Int public final fun <get-MIN_VALUE>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -582,6 +594,10 @@ public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long>, java.io
public final fun <get-MAX_VALUE>(): kotlin.Long public final fun <get-MAX_VALUE>(): kotlin.Long
public const final val MIN_VALUE: kotlin.Long public const final val MIN_VALUE: kotlin.Long
public final fun <get-MIN_VALUE>(): kotlin.Long public final fun <get-MIN_VALUE>(): kotlin.Long
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -695,6 +711,10 @@ public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short>, java.
public final fun <get-MAX_VALUE>(): kotlin.Short public final fun <get-MAX_VALUE>(): kotlin.Short
public const final val MIN_VALUE: kotlin.Short public const final val MIN_VALUE: kotlin.Short
public final fun <get-MIN_VALUE>(): kotlin.Short public final fun <get-MIN_VALUE>(): kotlin.Short
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
+20
View File
@@ -123,6 +123,10 @@ public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte>, java.io
public final fun <get-MAX_VALUE>(): kotlin.Byte public final fun <get-MAX_VALUE>(): kotlin.Byte
public const final val MIN_VALUE: kotlin.Byte public const final val MIN_VALUE: kotlin.Byte
public final fun <get-MIN_VALUE>(): kotlin.Byte public final fun <get-MIN_VALUE>(): kotlin.Byte
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -168,6 +172,10 @@ public final class Char : kotlin.Comparable<kotlin.Char>, java.io.Serializable {
public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char public final fun <get-MIN_LOW_SURROGATE>(): kotlin.Char
public const final val MIN_SURROGATE: kotlin.Char public const final val MIN_SURROGATE: kotlin.Char
public final fun <get-MIN_SURROGATE>(): kotlin.Char public final fun <get-MIN_SURROGATE>(): kotlin.Char
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -493,6 +501,10 @@ public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int>, java.io.S
public final fun <get-MAX_VALUE>(): kotlin.Int public final fun <get-MAX_VALUE>(): kotlin.Int
public const final val MIN_VALUE: kotlin.Int public const final val MIN_VALUE: kotlin.Int
public final fun <get-MIN_VALUE>(): kotlin.Int public final fun <get-MIN_VALUE>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -580,6 +592,10 @@ public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long>, java.io
public final fun <get-MAX_VALUE>(): kotlin.Long public final fun <get-MAX_VALUE>(): kotlin.Long
public const final val MIN_VALUE: kotlin.Long public const final val MIN_VALUE: kotlin.Long
public final fun <get-MIN_VALUE>(): kotlin.Long public final fun <get-MIN_VALUE>(): kotlin.Long
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
@@ -693,6 +709,10 @@ public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short>, java.
public final fun <get-MAX_VALUE>(): kotlin.Short public final fun <get-MAX_VALUE>(): kotlin.Short
public const final val MIN_VALUE: kotlin.Short public const final val MIN_VALUE: kotlin.Short
public final fun <get-MIN_VALUE>(): kotlin.Short public final fun <get-MIN_VALUE>(): kotlin.Short
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BITS: kotlin.Int
public final fun <get-SIZE_BITS>(): kotlin.Int
@kotlin.SinceKotlin(version = "1.3") public const final val SIZE_BYTES: kotlin.Int
public final fun <get-SIZE_BYTES>(): kotlin.Int
} }
} }
+12
View File
@@ -89,6 +89,18 @@ public class Char private constructor() : Comparable<Char> {
* The maximum value of a Unicode surrogate code unit. * The maximum value of a Unicode surrogate code unit.
*/ */
public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE
/**
* The number of bytes used to represent a Char in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BYTES: Int = 2
/**
* The number of bits used to represent a Char in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BITS: Int = 16
} }
} }
+48
View File
@@ -22,6 +22,18 @@ public class Byte private constructor() : Number(), Comparable<Byte> {
* A constant holding the maximum value an instance of Byte can have. * A constant holding the maximum value an instance of Byte can have.
*/ */
public const val MAX_VALUE: Byte = 127 public const val MAX_VALUE: Byte = 127
/**
* The number of bytes used to represent an instance of Byte in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BYTES: Int = 1
/**
* The number of bits used to represent an instance of Byte in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BITS: Int = 8
} }
/** /**
@@ -198,6 +210,18 @@ public class Short private constructor() : Number(), Comparable<Short> {
* A constant holding the maximum value an instance of Short can have. * A constant holding the maximum value an instance of Short can have.
*/ */
public const val MAX_VALUE: Short = 32767 public const val MAX_VALUE: Short = 32767
/**
* The number of bytes used to represent an instance of Short in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BYTES: Int = 2
/**
* The number of bits used to represent an instance of Short in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BITS: Int = 16
} }
/** /**
@@ -374,6 +398,18 @@ public class Int private constructor() : Number(), Comparable<Int> {
* A constant holding the maximum value an instance of Int can have. * A constant holding the maximum value an instance of Int can have.
*/ */
public const val MAX_VALUE: Int = 2147483647 public const val MAX_VALUE: Int = 2147483647
/**
* The number of bytes used to represent an instance of Int in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BYTES: Int = 4
/**
* The number of bits used to represent an instance of Int in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BITS: Int = 32
} }
/** /**
@@ -565,6 +601,18 @@ public class Long private constructor() : Number(), Comparable<Long> {
* A constant holding the maximum value an instance of Long can have. * A constant holding the maximum value an instance of Long can have.
*/ */
public const val MAX_VALUE: Long = 9223372036854775807L public const val MAX_VALUE: Long = 9223372036854775807L
/**
* The number of bytes used to represent an instance of Long in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BYTES: Int = 8
/**
* The number of bits used to represent an instance of Long in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BITS: Int = 64
} }
/** /**
+10 -9
View File
@@ -19,17 +19,18 @@ package org.jetbrains.kotlin.generators.builtins
import org.jetbrains.kotlin.generators.builtins.ProgressionKind.* import org.jetbrains.kotlin.generators.builtins.ProgressionKind.*
import kotlin.properties.Delegates import kotlin.properties.Delegates
enum class PrimitiveType { enum class PrimitiveType(val byteSize: Int?) {
BYTE, BYTE(1),
CHAR, CHAR(2),
SHORT, SHORT(2),
INT, INT(4),
LONG, LONG(8),
FLOAT, FLOAT(null),
DOUBLE, DOUBLE(null),
BOOLEAN; BOOLEAN(null);
val capitalized: String get() = name.toLowerCase().capitalize() val capitalized: String get() = name.toLowerCase().capitalize()
companion object { companion object {
val exceptBoolean = PrimitiveType.values().filterNot { it == BOOLEAN } val exceptBoolean = PrimitiveType.values().filterNot { it == BOOLEAN }
val onlyNumeric = PrimitiveType.values().filterNot { it == BOOLEAN || it == CHAR } val onlyNumeric = PrimitiveType.values().filterNot { it == BOOLEAN || it == CHAR }
+20 -7
View File
@@ -59,10 +59,10 @@ class GeneratePrimitives(out: PrintWriter) : BuiltInsSourceGenerator(out) {
generateDoc(kind) generateDoc(kind)
out.println("public class $className private constructor() : Number(), Comparable<$className> {") out.println("public class $className private constructor() : Number(), Comparable<$className> {")
out.print(" companion object ") out.print(" companion object {")
if (kind == PrimitiveType.FLOAT || kind == PrimitiveType.DOUBLE) { if (kind == PrimitiveType.FLOAT || kind == PrimitiveType.DOUBLE) {
//val (minValue, maxValue, posInf, negInf, nan) = primitiveConstants(kind) //val (minValue, maxValue, posInf, negInf, nan) = primitiveConstants(kind)
out.println("""{ out.println("""
/** /**
* A constant holding the smallest *positive* nonzero value of $className. * A constant holding the smallest *positive* nonzero value of $className.
*/ */
@@ -86,12 +86,11 @@ class GeneratePrimitives(out: PrintWriter) : BuiltInsSourceGenerator(out) {
/** /**
* A constant holding the "not a number" value of $className. * A constant holding the "not a number" value of $className.
*/ */
public val NaN: $className public val NaN: $className""")
}""")
} }
if (kind == PrimitiveType.INT || kind == PrimitiveType.LONG || kind == PrimitiveType.SHORT || kind == PrimitiveType.BYTE) { if (kind == PrimitiveType.INT || kind == PrimitiveType.LONG || kind == PrimitiveType.SHORT || kind == PrimitiveType.BYTE) {
val (minValue, maxValue) = primitiveConstants(kind) val (minValue, maxValue) = primitiveConstants(kind)
out.println("""{ out.println("""
/** /**
* A constant holding the minimum value an instance of $className can have. * A constant holding the minimum value an instance of $className can have.
*/ */
@@ -100,9 +99,23 @@ class GeneratePrimitives(out: PrintWriter) : BuiltInsSourceGenerator(out) {
/** /**
* A constant holding the maximum value an instance of $className can have. * A constant holding the maximum value an instance of $className can have.
*/ */
public const val MAX_VALUE: $className = $maxValue public const val MAX_VALUE: $className = $maxValue""")
}""")
} }
if (kind.byteSize != null) {
out.println("""
/**
* The number of bytes used to represent an instance of $className in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BYTES: Int = ${kind.byteSize}
/**
* The number of bits used to represent an instance of $className in a binary form.
*/
@SinceKotlin("1.3")
public const val SIZE_BITS: Int = ${kind.byteSize * 8}""")
}
out.println(""" }""")
generateCompareTo(kind) generateCompareTo(kind)
+10
View File
@@ -56,6 +56,16 @@ class UnsignedTypeGenerator(val type: UnsignedType, out: PrintWriter) : BuiltIns
* A constant holding the maximum value an instance of $className can have. * A constant holding the maximum value an instance of $className can have.
*/ */
public const val MAX_VALUE: $className = $className(-1) public const val MAX_VALUE: $className = $className(-1)
/**
* The number of bytes used to represent an instance of $className in a binary form.
*/
public const val SIZE_BYTES: Int = ${type.byteSize}
/**
* The number of bits used to represent an instance of $className in a binary form.
*/
public const val SIZE_BITS: Int = ${type.byteSize * 8}
}""") }""")
generateCompareTo() generateCompareTo()
@@ -48,6 +48,12 @@ private object IntCompanionObject {
@JsName("MAX_VALUE") @JsName("MAX_VALUE")
val MAX_VALUE: Int = 2147483647 val MAX_VALUE: Int = 2147483647
@JsName("SIZE_BYTES")
const val SIZE_BYTES = 4
@JsName("SIZE_BITS")
const val SIZE_BITS = 32
} }
@JsName("LongCompanionObject") @JsName("LongCompanionObject")
@@ -57,6 +63,12 @@ private object LongCompanionObject {
@JsName("MAX_VALUE") @JsName("MAX_VALUE")
val MAX_VALUE: Long = js("Kotlin.Long.MAX_VALUE") val MAX_VALUE: Long = js("Kotlin.Long.MAX_VALUE")
@JsName("SIZE_BYTES")
const val SIZE_BYTES = 8
@JsName("SIZE_BITS")
const val SIZE_BITS = 64
} }
@JsName("ShortCompanionObject") @JsName("ShortCompanionObject")
@@ -66,6 +78,12 @@ private object ShortCompanionObject {
@JsName("MAX_VALUE") @JsName("MAX_VALUE")
val MAX_VALUE: Short = 32767 val MAX_VALUE: Short = 32767
@JsName("SIZE_BYTES")
const val SIZE_BYTES = 2
@JsName("SIZE_BITS")
const val SIZE_BITS = 16
} }
@JsName("ByteCompanionObject") @JsName("ByteCompanionObject")
@@ -75,6 +93,12 @@ private object ByteCompanionObject {
@JsName("MAX_VALUE") @JsName("MAX_VALUE")
val MAX_VALUE: Byte = 127 val MAX_VALUE: Byte = 127
@JsName("SIZE_BYTES")
const val SIZE_BYTES = 1
@JsName("SIZE_BITS")
const val SIZE_BITS = 8
} }
@JsName("CharCompanionObject") @JsName("CharCompanionObject")
@@ -96,6 +120,12 @@ private object CharCompanionObject {
@JsName("MAX_SURROGATE") @JsName("MAX_SURROGATE")
public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE public const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE
@JsName("SIZE_BYTES")
const val SIZE_BYTES = 2
@JsName("SIZE_BITS")
const val SIZE_BITS = 16
} }
private object StringCompanionObject {} private object StringCompanionObject {}
@@ -24,21 +24,29 @@ internal object FloatCompanionObject {
internal object IntCompanionObject { internal object IntCompanionObject {
const val MIN_VALUE: Int = java.lang.Integer.MIN_VALUE const val MIN_VALUE: Int = java.lang.Integer.MIN_VALUE
const val MAX_VALUE: Int = java.lang.Integer.MAX_VALUE const val MAX_VALUE: Int = java.lang.Integer.MAX_VALUE
const val SIZE_BYTES: Int = 4
const val SIZE_BITS: Int = SIZE_BYTES * 8
} }
internal object LongCompanionObject { internal object LongCompanionObject {
const val MIN_VALUE: Long = java.lang.Long.MIN_VALUE const val MIN_VALUE: Long = java.lang.Long.MIN_VALUE
const val MAX_VALUE: Long = java.lang.Long.MAX_VALUE const val MAX_VALUE: Long = java.lang.Long.MAX_VALUE
const val SIZE_BYTES: Int = 8
const val SIZE_BITS: Int = SIZE_BYTES * 8
} }
internal object ShortCompanionObject { internal object ShortCompanionObject {
const val MIN_VALUE: Short = java.lang.Short.MIN_VALUE const val MIN_VALUE: Short = java.lang.Short.MIN_VALUE
const val MAX_VALUE: Short = java.lang.Short.MAX_VALUE const val MAX_VALUE: Short = java.lang.Short.MAX_VALUE
const val SIZE_BYTES: Int = 2
const val SIZE_BITS: Int = SIZE_BYTES * 8
} }
internal object ByteCompanionObject { internal object ByteCompanionObject {
const val MIN_VALUE: Byte = java.lang.Byte.MIN_VALUE const val MIN_VALUE: Byte = java.lang.Byte.MIN_VALUE
const val MAX_VALUE: Byte = java.lang.Byte.MAX_VALUE const val MAX_VALUE: Byte = java.lang.Byte.MAX_VALUE
const val SIZE_BYTES: Int = 1
const val SIZE_BITS: Int = SIZE_BYTES * 8
} }
@@ -49,6 +57,8 @@ internal object CharCompanionObject {
const val MAX_LOW_SURROGATE: Char = '\uDFFF' const val MAX_LOW_SURROGATE: Char = '\uDFFF'
const val MIN_SURROGATE: Char = MIN_HIGH_SURROGATE const val MIN_SURROGATE: Char = MIN_HIGH_SURROGATE
const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE const val MAX_SURROGATE: Char = MAX_LOW_SURROGATE
const val SIZE_BYTES: Int = 2
const val SIZE_BITS: Int = SIZE_BYTES * 8
} }
internal object StringCompanionObject {} internal object StringCompanionObject {}
@@ -24,6 +24,16 @@ public inline class UByte internal constructor(private val data: Byte) : Compara
* A constant holding the maximum value an instance of UByte can have. * A constant holding the maximum value an instance of UByte can have.
*/ */
public const val MAX_VALUE: UByte = UByte(-1) public const val MAX_VALUE: UByte = UByte(-1)
/**
* The number of bytes used to represent an instance of UByte in a binary form.
*/
public const val SIZE_BYTES: Int = 1
/**
* The number of bits used to represent an instance of UByte in a binary form.
*/
public const val SIZE_BITS: Int = 8
} }
/** /**
@@ -24,6 +24,16 @@ public inline class UInt internal constructor(private val data: Int) : Comparabl
* A constant holding the maximum value an instance of UInt can have. * A constant holding the maximum value an instance of UInt can have.
*/ */
public const val MAX_VALUE: UInt = UInt(-1) public const val MAX_VALUE: UInt = UInt(-1)
/**
* The number of bytes used to represent an instance of UInt in a binary form.
*/
public const val SIZE_BYTES: Int = 4
/**
* The number of bits used to represent an instance of UInt in a binary form.
*/
public const val SIZE_BITS: Int = 32
} }
/** /**
@@ -24,6 +24,16 @@ public inline class ULong internal constructor(private val data: Long) : Compara
* A constant holding the maximum value an instance of ULong can have. * A constant holding the maximum value an instance of ULong can have.
*/ */
public const val MAX_VALUE: ULong = ULong(-1) public const val MAX_VALUE: ULong = ULong(-1)
/**
* The number of bytes used to represent an instance of ULong in a binary form.
*/
public const val SIZE_BYTES: Int = 8
/**
* The number of bits used to represent an instance of ULong in a binary form.
*/
public const val SIZE_BITS: Int = 64
} }
/** /**
@@ -24,6 +24,16 @@ public inline class UShort internal constructor(private val data: Short) : Compa
* A constant holding the maximum value an instance of UShort can have. * A constant holding the maximum value an instance of UShort can have.
*/ */
public const val MAX_VALUE: UShort = UShort(-1) public const val MAX_VALUE: UShort = UShort(-1)
/**
* The number of bytes used to represent an instance of UShort in a binary form.
*/
public const val SIZE_BYTES: Int = 2
/**
* The number of bits used to represent an instance of UShort in a binary form.
*/
public const val SIZE_BITS: Int = 16
} }
/** /**
@@ -380,6 +380,8 @@ public final class kotlin/jvm/internal/ByteCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/ByteCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/ByteCompanionObject;
public static final field MAX_VALUE B public static final field MAX_VALUE B
public static final field MIN_VALUE B public static final field MIN_VALUE B
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/ByteSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/ByteSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -421,6 +423,8 @@ public final class kotlin/jvm/internal/CharCompanionObject {
public static final field MIN_HIGH_SURROGATE C public static final field MIN_HIGH_SURROGATE C
public static final field MIN_LOW_SURROGATE C public static final field MIN_LOW_SURROGATE C
public static final field MIN_SURROGATE C public static final field MIN_SURROGATE C
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/CharSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/CharSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -572,6 +576,8 @@ public final class kotlin/jvm/internal/IntCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/IntCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/IntCompanionObject;
public static final field MAX_VALUE I public static final field MAX_VALUE I
public static final field MIN_VALUE I public static final field MIN_VALUE I
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/IntSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/IntSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -638,6 +644,8 @@ public final class kotlin/jvm/internal/LongCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/LongCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/LongCompanionObject;
public static final field MAX_VALUE J public static final field MAX_VALUE J
public static final field MIN_VALUE J public static final field MIN_VALUE J
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/LongSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/LongSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -921,6 +929,8 @@ public final class kotlin/jvm/internal/ShortCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/ShortCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/ShortCompanionObject;
public static final field MAX_VALUE S public static final field MAX_VALUE S
public static final field MIN_VALUE S public static final field MIN_VALUE S
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/ShortSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/ShortSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -216,6 +216,8 @@ public final class kotlin/UByte : java/lang/Comparable {
public static final field Companion Lkotlin/UByte$Companion; public static final field Companion Lkotlin/UByte$Companion;
public static final field MAX_VALUE B public static final field MAX_VALUE B
public static final field MIN_VALUE B public static final field MIN_VALUE B
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
public final fun and (B)B public final fun and (B)B
public fun compareTo (B)I public fun compareTo (B)I
public final fun compareTo (I)I public final fun compareTo (I)I
@@ -358,6 +360,8 @@ public final class kotlin/UInt : java/lang/Comparable {
public static final field Companion Lkotlin/UInt$Companion; public static final field Companion Lkotlin/UInt$Companion;
public static final field MAX_VALUE I public static final field MAX_VALUE I
public static final field MIN_VALUE I public static final field MIN_VALUE I
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
public final fun and (I)I public final fun and (I)I
public final fun compareTo (B)I public final fun compareTo (B)I
public fun compareTo (I)I public fun compareTo (I)I
@@ -504,6 +508,8 @@ public final class kotlin/ULong : java/lang/Comparable {
public static final field Companion Lkotlin/ULong$Companion; public static final field Companion Lkotlin/ULong$Companion;
public static final field MAX_VALUE J public static final field MAX_VALUE J
public static final field MIN_VALUE J public static final field MIN_VALUE J
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
public final fun and (J)J public final fun and (J)J
public final fun compareTo (B)I public final fun compareTo (B)I
public final fun compareTo (I)I public final fun compareTo (I)I
@@ -650,6 +656,8 @@ public final class kotlin/UShort : java/lang/Comparable {
public static final field Companion Lkotlin/UShort$Companion; public static final field Companion Lkotlin/UShort$Companion;
public static final field MAX_VALUE S public static final field MAX_VALUE S
public static final field MIN_VALUE S public static final field MIN_VALUE S
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
public final fun and (S)S public final fun and (S)S
public final fun compareTo (B)I public final fun compareTo (B)I
public final fun compareTo (I)I public final fun compareTo (I)I
@@ -3194,6 +3202,8 @@ public final class kotlin/jvm/internal/ByteCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/ByteCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/ByteCompanionObject;
public static final field MAX_VALUE B public static final field MAX_VALUE B
public static final field MIN_VALUE B public static final field MIN_VALUE B
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/ByteSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/ByteSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -3235,6 +3245,8 @@ public final class kotlin/jvm/internal/CharCompanionObject {
public static final field MIN_HIGH_SURROGATE C public static final field MIN_HIGH_SURROGATE C
public static final field MIN_LOW_SURROGATE C public static final field MIN_LOW_SURROGATE C
public static final field MIN_SURROGATE C public static final field MIN_SURROGATE C
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/CharSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/CharSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -3386,6 +3398,8 @@ public final class kotlin/jvm/internal/IntCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/IntCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/IntCompanionObject;
public static final field MAX_VALUE I public static final field MAX_VALUE I
public static final field MIN_VALUE I public static final field MIN_VALUE I
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/IntSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/IntSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -3452,6 +3466,8 @@ public final class kotlin/jvm/internal/LongCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/LongCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/LongCompanionObject;
public static final field MAX_VALUE J public static final field MAX_VALUE J
public static final field MIN_VALUE J public static final field MIN_VALUE J
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/LongSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/LongSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {
@@ -3735,6 +3751,8 @@ public final class kotlin/jvm/internal/ShortCompanionObject {
public static final field INSTANCE Lkotlin/jvm/internal/ShortCompanionObject; public static final field INSTANCE Lkotlin/jvm/internal/ShortCompanionObject;
public static final field MAX_VALUE S public static final field MAX_VALUE S
public static final field MIN_VALUE S public static final field MIN_VALUE S
public static final field SIZE_BITS I
public static final field SIZE_BYTES I
} }
public final class kotlin/jvm/internal/ShortSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder { public final class kotlin/jvm/internal/ShortSpreadBuilder : kotlin/jvm/internal/PrimitiveSpreadBuilder {