Generate unsigned integers declarations, mostly without implementations
Generate and/or/xor/inv for UByte/UShort using experimental signed counterparts
This commit is contained in:
@@ -36,6 +36,16 @@ enum class PrimitiveType {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class UnsignedType {
|
||||||
|
UBYTE,
|
||||||
|
USHORT,
|
||||||
|
UINT,
|
||||||
|
ULONG;
|
||||||
|
|
||||||
|
val capitalized: String get() = name.substring(0, 2) + name.substring(2).toLowerCase()
|
||||||
|
val asSigned: PrimitiveType = PrimitiveType.valueOf(name.substring(1))
|
||||||
|
}
|
||||||
|
|
||||||
enum class ProgressionKind {
|
enum class ProgressionKind {
|
||||||
CHAR,
|
CHAR,
|
||||||
INT,
|
INT,
|
||||||
@@ -53,3 +63,4 @@ fun areEqualNumbers(v: String) = "$v == other.$v"
|
|||||||
|
|
||||||
fun hashLong(v: String) = "($v xor ($v ushr 32))"
|
fun hashLong(v: String) = "($v xor ($v ushr 32))"
|
||||||
|
|
||||||
|
fun convert(v: String, from: UnsignedType, to: UnsignedType) = if (from == to) v else "$v.to${to.capitalized}()"
|
||||||
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.generators.builtins.progressionIterators.GeneratePro
|
|||||||
import org.jetbrains.kotlin.generators.builtins.progressions.GenerateProgressions
|
import org.jetbrains.kotlin.generators.builtins.progressions.GenerateProgressions
|
||||||
import org.jetbrains.kotlin.generators.builtins.ranges.GeneratePrimitives
|
import org.jetbrains.kotlin.generators.builtins.ranges.GeneratePrimitives
|
||||||
import org.jetbrains.kotlin.generators.builtins.ranges.GenerateRanges
|
import org.jetbrains.kotlin.generators.builtins.ranges.GenerateRanges
|
||||||
|
import org.jetbrains.kotlin.generators.builtins.unsigned.generateUnsignedTypes
|
||||||
import org.xml.sax.InputSource
|
import org.xml.sax.InputSource
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
@@ -25,6 +26,7 @@ fun assertExists(file: File) {
|
|||||||
val BUILT_INS_NATIVE_DIR = File("core/builtins/native/")
|
val BUILT_INS_NATIVE_DIR = File("core/builtins/native/")
|
||||||
val BUILT_INS_SRC_DIR = File("core/builtins/src/")
|
val BUILT_INS_SRC_DIR = File("core/builtins/src/")
|
||||||
val RUNTIME_JVM_DIR = File("libraries/stdlib/jvm/runtime/")
|
val RUNTIME_JVM_DIR = File("libraries/stdlib/jvm/runtime/")
|
||||||
|
val UNSIGNED_TYPES_DIR = File("libraries/stdlib/unsigned/src")
|
||||||
|
|
||||||
abstract class BuiltInsSourceGenerator(val out: PrintWriter) {
|
abstract class BuiltInsSourceGenerator(val out: PrintWriter) {
|
||||||
protected abstract fun generateBody(): Unit
|
protected abstract fun generateBody(): Unit
|
||||||
@@ -65,6 +67,7 @@ fun generateBuiltIns(generate: (File, (PrintWriter) -> BuiltInsSourceGenerator)
|
|||||||
assertExists(BUILT_INS_NATIVE_DIR)
|
assertExists(BUILT_INS_NATIVE_DIR)
|
||||||
assertExists(BUILT_INS_SRC_DIR)
|
assertExists(BUILT_INS_SRC_DIR)
|
||||||
assertExists(RUNTIME_JVM_DIR)
|
assertExists(RUNTIME_JVM_DIR)
|
||||||
|
assertExists(UNSIGNED_TYPES_DIR)
|
||||||
|
|
||||||
generate(File(RUNTIME_JVM_DIR, "kotlin/jvm/functions/Functions.kt")) { GenerateFunctions(it) }
|
generate(File(RUNTIME_JVM_DIR, "kotlin/jvm/functions/Functions.kt")) { GenerateFunctions(it) }
|
||||||
generate(File(BUILT_INS_NATIVE_DIR, "kotlin/Arrays.kt")) { GenerateArrays(it) }
|
generate(File(BUILT_INS_NATIVE_DIR, "kotlin/Arrays.kt")) { GenerateArrays(it) }
|
||||||
@@ -74,6 +77,8 @@ fun generateBuiltIns(generate: (File, (PrintWriter) -> BuiltInsSourceGenerator)
|
|||||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/ProgressionIterators.kt")) { GenerateProgressionIterators(it) }
|
generate(File(BUILT_INS_SRC_DIR, "kotlin/ProgressionIterators.kt")) { GenerateProgressionIterators(it) }
|
||||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/Progressions.kt")) { GenerateProgressions(it) }
|
generate(File(BUILT_INS_SRC_DIR, "kotlin/Progressions.kt")) { GenerateProgressions(it) }
|
||||||
generate(File(BUILT_INS_SRC_DIR, "kotlin/Ranges.kt")) { GenerateRanges(it) }
|
generate(File(BUILT_INS_SRC_DIR, "kotlin/Ranges.kt")) { GenerateRanges(it) }
|
||||||
|
|
||||||
|
generateUnsignedTypes(UNSIGNED_TYPES_DIR, generate)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun main(args: Array<String>) {
|
fun main(args: Array<String>) {
|
||||||
|
|||||||
@@ -10,27 +10,29 @@ import org.jetbrains.kotlin.generators.builtins.generateBuiltIns.BuiltInsSourceG
|
|||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
|
|
||||||
class GeneratePrimitives(out: PrintWriter) : BuiltInsSourceGenerator(out) {
|
class GeneratePrimitives(out: PrintWriter) : BuiltInsSourceGenerator(out) {
|
||||||
private val binaryOperators: Map<String, String> = mapOf(
|
companion object {
|
||||||
|
internal val binaryOperators: Map<String, String> = mapOf(
|
||||||
"plus" to "Adds the other value to this value.",
|
"plus" to "Adds the other value to this value.",
|
||||||
"minus" to "Subtracts the other value from this value.",
|
"minus" to "Subtracts the other value from this value.",
|
||||||
"times" to "Multiplies this value by the other value.",
|
"times" to "Multiplies this value by the other value.",
|
||||||
"div" to "Divides this value by the other value.",
|
"div" to "Divides this value by the other value.",
|
||||||
"mod" to "Calculates the remainder of dividing this value by the other value.",
|
"mod" to "Calculates the remainder of dividing this value by the other value.",
|
||||||
"rem" to "Calculates the remainder of dividing this value by the other value."
|
"rem" to "Calculates the remainder of dividing this value by the other value."
|
||||||
)
|
)
|
||||||
private val unaryOperators: Map<String, String> = mapOf(
|
internal val unaryOperators: Map<String, String> = mapOf(
|
||||||
"inc" to "Increments this value.",
|
"inc" to "Increments this value.",
|
||||||
"dec" to "Decrements this value.",
|
"dec" to "Decrements this value.",
|
||||||
"unaryPlus" to "Returns this value.",
|
"unaryPlus" to "Returns this value.",
|
||||||
"unaryMinus" to "Returns the negative of this value.")
|
"unaryMinus" to "Returns the negative of this value.")
|
||||||
private val shiftOperators: Map<String, String> = mapOf(
|
internal val shiftOperators: Map<String, String> = mapOf(
|
||||||
"shl" to "Shifts this value left by the [bitCount] number of bits.",
|
"shl" to "Shifts this value left by the [bitCount] number of bits.",
|
||||||
"shr" to "Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with copies of the sign bit.",
|
"shr" to "Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with copies of the sign bit.",
|
||||||
"ushr" to "Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros.")
|
"ushr" to "Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros.")
|
||||||
private val bitwiseOperators: Map<String, String> = mapOf(
|
internal val bitwiseOperators: Map<String, String> = mapOf(
|
||||||
"and" to "Performs a bitwise AND operation between the two values.",
|
"and" to "Performs a bitwise AND operation between the two values.",
|
||||||
"or" to "Performs a bitwise OR operation between the two values.",
|
"or" to "Performs a bitwise OR operation between the two values.",
|
||||||
"xor" to "Performs a bitwise XOR operation between the two values.")
|
"xor" to "Performs a bitwise XOR operation between the two values.")
|
||||||
|
}
|
||||||
private val typeDescriptions: Map<PrimitiveType, String> = mapOf(
|
private val typeDescriptions: Map<PrimitiveType, String> = mapOf(
|
||||||
PrimitiveType.DOUBLE to "double-precision 64-bit IEEE 754 floating point number",
|
PrimitiveType.DOUBLE to "double-precision 64-bit IEEE 754 floating point number",
|
||||||
PrimitiveType.FLOAT to "single-precision 32-bit IEEE 754 floating point number",
|
PrimitiveType.FLOAT to "single-precision 32-bit IEEE 754 floating point number",
|
||||||
|
|||||||
@@ -0,0 +1,173 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. 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.generators.builtins.unsigned
|
||||||
|
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.generators.builtins.UnsignedType
|
||||||
|
import org.jetbrains.kotlin.generators.builtins.generateBuiltIns.BuiltInsSourceGenerator
|
||||||
|
import org.jetbrains.kotlin.generators.builtins.ranges.GeneratePrimitives
|
||||||
|
import java.io.File
|
||||||
|
import java.io.PrintWriter
|
||||||
|
|
||||||
|
|
||||||
|
fun generateUnsignedTypes(
|
||||||
|
targetDir: File,
|
||||||
|
generate: (File, (PrintWriter) -> BuiltInsSourceGenerator) -> Unit
|
||||||
|
) {
|
||||||
|
for (type in UnsignedType.values()) {
|
||||||
|
generate(File(targetDir, "kotlin/${type.capitalized}.kt")) { UnsignedTypeGenerator(type, it) }
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class UnsignedTypeGenerator(val type: UnsignedType, out: PrintWriter) : BuiltInsSourceGenerator(out) {
|
||||||
|
val className = type.capitalized
|
||||||
|
val storageType = type.asSigned.capitalized
|
||||||
|
|
||||||
|
override fun generateBody() {
|
||||||
|
|
||||||
|
out.println("import kotlin.experimental.*")
|
||||||
|
out.println()
|
||||||
|
|
||||||
|
out.println("public inline class $className internal constructor(private val data: $storageType) : Comparable<$className> {")
|
||||||
|
out.println()
|
||||||
|
out.println(""" companion object {
|
||||||
|
/**
|
||||||
|
* A constant holding the minimum value an instance of $className can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MIN_VALUE: $className = $className(0)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A constant holding the maximum value an instance of $className can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MAX_VALUE: $className = $className(-1)
|
||||||
|
}""")
|
||||||
|
|
||||||
|
generateCompareTo()
|
||||||
|
|
||||||
|
generateBinaryOperators()
|
||||||
|
generateUnaryOperators()
|
||||||
|
generateRangeTo()
|
||||||
|
|
||||||
|
if (type == UnsignedType.UINT || type == UnsignedType.ULONG) {
|
||||||
|
generateBitShiftOperators()
|
||||||
|
}
|
||||||
|
|
||||||
|
generateBitwiseOperators()
|
||||||
|
|
||||||
|
generateMemberConversions()
|
||||||
|
|
||||||
|
out.println("}")
|
||||||
|
out.println()
|
||||||
|
|
||||||
|
|
||||||
|
generateExtensionConversions()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun generateCompareTo() {
|
||||||
|
for (otherType in UnsignedType.values()) {
|
||||||
|
out.println("""
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/""")
|
||||||
|
out.print(" public ")
|
||||||
|
if (otherType == type) out.print("override ")
|
||||||
|
out.println("operator fun compareTo(other: ${otherType.capitalized}): Int = TODO()")
|
||||||
|
}
|
||||||
|
out.println()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun generateBinaryOperators() {
|
||||||
|
for ((name, doc) in GeneratePrimitives.binaryOperators) {
|
||||||
|
if (name != "mod") {
|
||||||
|
generateOperator(name, doc)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun generateOperator(name: String, doc: String) {
|
||||||
|
for (otherType in UnsignedType.values()) {
|
||||||
|
val returnType = getOperatorReturnType(type, otherType)
|
||||||
|
|
||||||
|
out.println(" /** $doc */")
|
||||||
|
out.println(" public operator fun $name(other: ${otherType.capitalized}): ${returnType.capitalized} = TODO()")
|
||||||
|
}
|
||||||
|
out.println()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun generateUnaryOperators() {
|
||||||
|
for ((name, doc) in GeneratePrimitives.unaryOperators) {
|
||||||
|
if (name in listOf("unaryPlus", "unaryMinus")) continue // TODO: Decide if unaryPlus and unaryMinus are needed
|
||||||
|
out.println(" /** $doc */")
|
||||||
|
out.println(" public operator fun $name(): $className = TODO()")
|
||||||
|
}
|
||||||
|
out.println()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun generateRangeTo() {
|
||||||
|
// TODO("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun generateBitShiftOperators() {
|
||||||
|
|
||||||
|
fun generateShiftOperator(name: String, implementation: String = name) {
|
||||||
|
val doc = GeneratePrimitives.shiftOperators[implementation]!!
|
||||||
|
out.println(" /** $doc */")
|
||||||
|
out.println(" public infix fun $name(bitCount: Int): $className = $className(data $implementation bitCount)")
|
||||||
|
}
|
||||||
|
|
||||||
|
generateShiftOperator("shl")
|
||||||
|
generateShiftOperator("shr", "ushr")
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun generateBitwiseOperators() {
|
||||||
|
for ((name, doc) in GeneratePrimitives.bitwiseOperators) {
|
||||||
|
out.println(" /** $doc */")
|
||||||
|
out.println(" public infix fun $name(other: $className): $className = $className(this.data $name other.data)")
|
||||||
|
}
|
||||||
|
out.println(" /** Inverts the bits in this value. */")
|
||||||
|
out.println(" public fun inv(): $className = $className(data.inv())")
|
||||||
|
out.println()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun generateMemberConversions() {
|
||||||
|
for (otherType in UnsignedType.values()) {
|
||||||
|
val signed = otherType.asSigned.capitalized
|
||||||
|
out.println(" public fun to$signed(): $signed = TODO()")
|
||||||
|
}
|
||||||
|
out.println()
|
||||||
|
|
||||||
|
for (otherType in UnsignedType.values()) {
|
||||||
|
val name = otherType.capitalized
|
||||||
|
out.println(" public fun to$name(): $name = TODO()")
|
||||||
|
}
|
||||||
|
out.println()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun generateExtensionConversions() {
|
||||||
|
for (otherType in UnsignedType.values()) {
|
||||||
|
val otherSigned = otherType.asSigned.capitalized
|
||||||
|
val thisSigned = type.asSigned.capitalized
|
||||||
|
out.println("public fun $otherSigned.to$className(): $className = $className(this.to$thisSigned())")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun maxByDomainCapacity(type1: UnsignedType, type2: UnsignedType): UnsignedType =
|
||||||
|
if (type1.ordinal > type2.ordinal) type1 else type2
|
||||||
|
|
||||||
|
|
||||||
|
private fun getOperatorReturnType(type1: UnsignedType, type2: UnsignedType): UnsignedType {
|
||||||
|
return maxByDomainCapacity(maxByDomainCapacity(type1, type2), UnsignedType.UINT)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Auto-generated file. DO NOT EDIT!
|
||||||
|
|
||||||
|
package kotlin
|
||||||
|
|
||||||
|
import kotlin.experimental.*
|
||||||
|
|
||||||
|
public inline class UByte internal constructor(private val data: Byte) : Comparable<UByte> {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
/**
|
||||||
|
* A constant holding the minimum value an instance of UByte can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MIN_VALUE: UByte = UByte(0)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A constant holding the maximum value an instance of UByte can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MAX_VALUE: UByte = UByte(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public override operator fun compareTo(other: UByte): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UShort): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UInt): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: ULong): Int = TODO()
|
||||||
|
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UByte): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UShort): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UInt): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UByte): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UShort): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UInt): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UByte): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UShort): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UInt): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UByte): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UShort): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UInt): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UByte): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UShort): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UInt): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Increments this value. */
|
||||||
|
public operator fun inc(): UByte = TODO()
|
||||||
|
/** Decrements this value. */
|
||||||
|
public operator fun dec(): UByte = TODO()
|
||||||
|
|
||||||
|
/** Performs a bitwise AND operation between the two values. */
|
||||||
|
public infix fun and(other: UByte): UByte = UByte(this.data and other.data)
|
||||||
|
/** Performs a bitwise OR operation between the two values. */
|
||||||
|
public infix fun or(other: UByte): UByte = UByte(this.data or other.data)
|
||||||
|
/** Performs a bitwise XOR operation between the two values. */
|
||||||
|
public infix fun xor(other: UByte): UByte = UByte(this.data xor other.data)
|
||||||
|
/** Inverts the bits in this value. */
|
||||||
|
public fun inv(): UByte = UByte(data.inv())
|
||||||
|
|
||||||
|
public fun toByte(): Byte = TODO()
|
||||||
|
public fun toShort(): Short = TODO()
|
||||||
|
public fun toInt(): Int = TODO()
|
||||||
|
public fun toLong(): Long = TODO()
|
||||||
|
|
||||||
|
public fun toUByte(): UByte = TODO()
|
||||||
|
public fun toUShort(): UShort = TODO()
|
||||||
|
public fun toUInt(): UInt = TODO()
|
||||||
|
public fun toULong(): ULong = TODO()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun Byte.toUByte(): UByte = UByte(this.toByte())
|
||||||
|
public fun Short.toUByte(): UByte = UByte(this.toByte())
|
||||||
|
public fun Int.toUByte(): UByte = UByte(this.toByte())
|
||||||
|
public fun Long.toUByte(): UByte = UByte(this.toByte())
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Auto-generated file. DO NOT EDIT!
|
||||||
|
|
||||||
|
package kotlin
|
||||||
|
|
||||||
|
import kotlin.experimental.*
|
||||||
|
|
||||||
|
public inline class UInt internal constructor(private val data: Int) : Comparable<UInt> {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
/**
|
||||||
|
* A constant holding the minimum value an instance of UInt can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MIN_VALUE: UInt = UInt(0)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A constant holding the maximum value an instance of UInt can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MAX_VALUE: UInt = UInt(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UByte): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UShort): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public override operator fun compareTo(other: UInt): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: ULong): Int = TODO()
|
||||||
|
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UByte): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UShort): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UInt): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UByte): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UShort): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UInt): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UByte): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UShort): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UInt): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UByte): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UShort): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UInt): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UByte): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UShort): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UInt): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Increments this value. */
|
||||||
|
public operator fun inc(): UInt = TODO()
|
||||||
|
/** Decrements this value. */
|
||||||
|
public operator fun dec(): UInt = TODO()
|
||||||
|
|
||||||
|
/** Shifts this value left by the [bitCount] number of bits. */
|
||||||
|
public infix fun shl(bitCount: Int): UInt = UInt(data shl bitCount)
|
||||||
|
/** Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros. */
|
||||||
|
public infix fun shr(bitCount: Int): UInt = UInt(data ushr bitCount)
|
||||||
|
/** Performs a bitwise AND operation between the two values. */
|
||||||
|
public infix fun and(other: UInt): UInt = UInt(this.data and other.data)
|
||||||
|
/** Performs a bitwise OR operation between the two values. */
|
||||||
|
public infix fun or(other: UInt): UInt = UInt(this.data or other.data)
|
||||||
|
/** Performs a bitwise XOR operation between the two values. */
|
||||||
|
public infix fun xor(other: UInt): UInt = UInt(this.data xor other.data)
|
||||||
|
/** Inverts the bits in this value. */
|
||||||
|
public fun inv(): UInt = UInt(data.inv())
|
||||||
|
|
||||||
|
public fun toByte(): Byte = TODO()
|
||||||
|
public fun toShort(): Short = TODO()
|
||||||
|
public fun toInt(): Int = TODO()
|
||||||
|
public fun toLong(): Long = TODO()
|
||||||
|
|
||||||
|
public fun toUByte(): UByte = TODO()
|
||||||
|
public fun toUShort(): UShort = TODO()
|
||||||
|
public fun toUInt(): UInt = TODO()
|
||||||
|
public fun toULong(): ULong = TODO()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun Byte.toUInt(): UInt = UInt(this.toInt())
|
||||||
|
public fun Short.toUInt(): UInt = UInt(this.toInt())
|
||||||
|
public fun Int.toUInt(): UInt = UInt(this.toInt())
|
||||||
|
public fun Long.toUInt(): UInt = UInt(this.toInt())
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Auto-generated file. DO NOT EDIT!
|
||||||
|
|
||||||
|
package kotlin
|
||||||
|
|
||||||
|
import kotlin.experimental.*
|
||||||
|
|
||||||
|
public inline class ULong internal constructor(private val data: Long) : Comparable<ULong> {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
/**
|
||||||
|
* A constant holding the minimum value an instance of ULong can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MIN_VALUE: ULong = ULong(0)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A constant holding the maximum value an instance of ULong can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MAX_VALUE: ULong = ULong(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UByte): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UShort): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UInt): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public override operator fun compareTo(other: ULong): Int = TODO()
|
||||||
|
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UByte): ULong = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UShort): ULong = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UInt): ULong = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UByte): ULong = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UShort): ULong = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UInt): ULong = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UByte): ULong = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UShort): ULong = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UInt): ULong = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UByte): ULong = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UShort): ULong = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UInt): ULong = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UByte): ULong = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UShort): ULong = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UInt): ULong = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Increments this value. */
|
||||||
|
public operator fun inc(): ULong = TODO()
|
||||||
|
/** Decrements this value. */
|
||||||
|
public operator fun dec(): ULong = TODO()
|
||||||
|
|
||||||
|
/** Shifts this value left by the [bitCount] number of bits. */
|
||||||
|
public infix fun shl(bitCount: Int): ULong = ULong(data shl bitCount)
|
||||||
|
/** Shifts this value right by the [bitCount] number of bits, filling the leftmost bits with zeros. */
|
||||||
|
public infix fun shr(bitCount: Int): ULong = ULong(data ushr bitCount)
|
||||||
|
/** Performs a bitwise AND operation between the two values. */
|
||||||
|
public infix fun and(other: ULong): ULong = ULong(this.data and other.data)
|
||||||
|
/** Performs a bitwise OR operation between the two values. */
|
||||||
|
public infix fun or(other: ULong): ULong = ULong(this.data or other.data)
|
||||||
|
/** Performs a bitwise XOR operation between the two values. */
|
||||||
|
public infix fun xor(other: ULong): ULong = ULong(this.data xor other.data)
|
||||||
|
/** Inverts the bits in this value. */
|
||||||
|
public fun inv(): ULong = ULong(data.inv())
|
||||||
|
|
||||||
|
public fun toByte(): Byte = TODO()
|
||||||
|
public fun toShort(): Short = TODO()
|
||||||
|
public fun toInt(): Int = TODO()
|
||||||
|
public fun toLong(): Long = TODO()
|
||||||
|
|
||||||
|
public fun toUByte(): UByte = TODO()
|
||||||
|
public fun toUShort(): UShort = TODO()
|
||||||
|
public fun toUInt(): UInt = TODO()
|
||||||
|
public fun toULong(): ULong = TODO()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun Byte.toULong(): ULong = ULong(this.toLong())
|
||||||
|
public fun Short.toULong(): ULong = ULong(this.toLong())
|
||||||
|
public fun Int.toULong(): ULong = ULong(this.toLong())
|
||||||
|
public fun Long.toULong(): ULong = ULong(this.toLong())
|
||||||
@@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||||
|
* that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Auto-generated file. DO NOT EDIT!
|
||||||
|
|
||||||
|
package kotlin
|
||||||
|
|
||||||
|
import kotlin.experimental.*
|
||||||
|
|
||||||
|
public inline class UShort internal constructor(private val data: Short) : Comparable<UShort> {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
/**
|
||||||
|
* A constant holding the minimum value an instance of UShort can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MIN_VALUE: UShort = UShort(0)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A constant holding the maximum value an instance of UShort can have.
|
||||||
|
*/
|
||||||
|
public /*const*/ val MAX_VALUE: UShort = UShort(-1)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UByte): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public override operator fun compareTo(other: UShort): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: UInt): Int = TODO()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares this value with the specified value for order.
|
||||||
|
* Returns zero if this value is equal to the specified other value, a negative number if it's less than other,
|
||||||
|
* or a positive number if it's greater than other.
|
||||||
|
*/
|
||||||
|
public operator fun compareTo(other: ULong): Int = TODO()
|
||||||
|
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UByte): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UShort): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: UInt): UInt = TODO()
|
||||||
|
/** Adds the other value to this value. */
|
||||||
|
public operator fun plus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UByte): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UShort): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: UInt): UInt = TODO()
|
||||||
|
/** Subtracts the other value from this value. */
|
||||||
|
public operator fun minus(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UByte): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UShort): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: UInt): UInt = TODO()
|
||||||
|
/** Multiplies this value by the other value. */
|
||||||
|
public operator fun times(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UByte): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UShort): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: UInt): UInt = TODO()
|
||||||
|
/** Divides this value by the other value. */
|
||||||
|
public operator fun div(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UByte): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UShort): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: UInt): UInt = TODO()
|
||||||
|
/** Calculates the remainder of dividing this value by the other value. */
|
||||||
|
public operator fun rem(other: ULong): ULong = TODO()
|
||||||
|
|
||||||
|
/** Increments this value. */
|
||||||
|
public operator fun inc(): UShort = TODO()
|
||||||
|
/** Decrements this value. */
|
||||||
|
public operator fun dec(): UShort = TODO()
|
||||||
|
|
||||||
|
/** Performs a bitwise AND operation between the two values. */
|
||||||
|
public infix fun and(other: UShort): UShort = UShort(this.data and other.data)
|
||||||
|
/** Performs a bitwise OR operation between the two values. */
|
||||||
|
public infix fun or(other: UShort): UShort = UShort(this.data or other.data)
|
||||||
|
/** Performs a bitwise XOR operation between the two values. */
|
||||||
|
public infix fun xor(other: UShort): UShort = UShort(this.data xor other.data)
|
||||||
|
/** Inverts the bits in this value. */
|
||||||
|
public fun inv(): UShort = UShort(data.inv())
|
||||||
|
|
||||||
|
public fun toByte(): Byte = TODO()
|
||||||
|
public fun toShort(): Short = TODO()
|
||||||
|
public fun toInt(): Int = TODO()
|
||||||
|
public fun toLong(): Long = TODO()
|
||||||
|
|
||||||
|
public fun toUByte(): UByte = TODO()
|
||||||
|
public fun toUShort(): UShort = TODO()
|
||||||
|
public fun toUInt(): UInt = TODO()
|
||||||
|
public fun toULong(): ULong = TODO()
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public fun Byte.toUShort(): UShort = UShort(this.toShort())
|
||||||
|
public fun Short.toUShort(): UShort = UShort(this.toShort())
|
||||||
|
public fun Int.toUShort(): UShort = UShort(this.toShort())
|
||||||
|
public fun Long.toUShort(): UShort = UShort(this.toShort())
|
||||||
Reference in New Issue
Block a user