Mark all declarations that will be evaluated with ir interpreter

This commit is contained in:
Ivan Kylchik
2021-10-28 16:42:23 +03:00
parent 1ccd5d1a3a
commit 1564f2c549
21 changed files with 905 additions and 41 deletions
File diff suppressed because it is too large Load Diff
@@ -1182,8 +1182,10 @@ public inline fun kotlin.String.trimEnd(predicate: (kotlin.Char) -> kotlin.Boole
public fun kotlin.String.trimEnd(vararg chars: kotlin.Char): kotlin.String
@kotlin.internal.IntrinsicConstEvaluation
public fun kotlin.String.trimIndent(): kotlin.String
@kotlin.internal.IntrinsicConstEvaluation
public fun kotlin.String.trimMargin(marginPrefix: kotlin.String = ...): kotlin.String
public fun kotlin.CharSequence.trimStart(): kotlin.CharSequence
+73 -36
View File
@@ -1,6 +1,7 @@
@kotlin.SinceKotlin(version = "1.5")
@kotlin.WasExperimental(markerClass = {kotlin.ExperimentalStdlibApi::class})
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public val kotlin.Char.code: kotlin.Int { get; }
@kotlin.SinceKotlin(version = "1.2")
@@ -277,66 +278,82 @@ public inline fun kotlin.UShort.countTrailingZeroBits(): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.floorDiv(other: kotlin.Byte): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.floorDiv(other: kotlin.Int): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.floorDiv(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.floorDiv(other: kotlin.Short): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.floorDiv(other: kotlin.Byte): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.floorDiv(other: kotlin.Int): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.floorDiv(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.floorDiv(other: kotlin.Short): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.floorDiv(other: kotlin.Byte): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.floorDiv(other: kotlin.Int): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.floorDiv(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.floorDiv(other: kotlin.Short): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.floorDiv(other: kotlin.Byte): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.floorDiv(other: kotlin.Int): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.floorDiv(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.floorDiv(other: kotlin.Short): kotlin.Int
@kotlin.internal.InlineOnly
@@ -407,82 +424,102 @@ public inline fun <R, T> kotlin.Result<T>.mapCatching(transform: (value: T) -> R
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.mod(other: kotlin.Byte): kotlin.Byte
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.mod(other: kotlin.Int): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.mod(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Byte.mod(other: kotlin.Short): kotlin.Short
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Double.mod(other: kotlin.Double): kotlin.Double
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Double.mod(other: kotlin.Float): kotlin.Double
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Float.mod(other: kotlin.Double): kotlin.Double
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Float.mod(other: kotlin.Float): kotlin.Float
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.mod(other: kotlin.Byte): kotlin.Byte
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.mod(other: kotlin.Int): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.mod(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Int.mod(other: kotlin.Short): kotlin.Short
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.mod(other: kotlin.Byte): kotlin.Byte
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.mod(other: kotlin.Int): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.mod(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Long.mod(other: kotlin.Short): kotlin.Short
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.mod(other: kotlin.Byte): kotlin.Byte
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.mod(other: kotlin.Int): kotlin.Int
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.mod(other: kotlin.Long): kotlin.Long
@kotlin.SinceKotlin(version = "1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun kotlin.Short.mod(other: kotlin.Short): kotlin.Short
@kotlin.internal.InlineOnly
@@ -849,16 +886,16 @@ public final class Boolean : kotlin.Comparable<kotlin.Boolean> {
public open override operator fun compareTo(other: kotlin.Boolean): kotlin.Int
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun not(): kotlin.Boolean
public final infix fun or(other: kotlin.Boolean): kotlin.Boolean
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public final infix fun xor(other: kotlin.Boolean): kotlin.Boolean
@kotlin.SinceKotlin(version = "1.3")
@@ -915,8 +952,8 @@ public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte> {
public final operator fun div(other: kotlin.Short): kotlin.Int
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun inc(): kotlin.Byte
@@ -999,8 +1036,8 @@ public final class Byte : kotlin.Number, kotlin.Comparable<kotlin.Byte> {
public open override fun toShort(): kotlin.Short
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
@@ -1041,8 +1078,8 @@ public final class Char : kotlin.Comparable<kotlin.Char> {
public final operator fun dec(): kotlin.Char
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun inc(): kotlin.Char
@@ -1082,8 +1119,8 @@ public final class Char : kotlin.Comparable<kotlin.Char> {
public final fun toShort(): kotlin.Short
/*∆*/ @kotlin.js.JsName(name = "toString")
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public companion object of Char {
public const final val MAX_HIGH_SURROGATE: kotlin.Char = \uDBFF ('?') { get; }
@@ -1246,8 +1283,8 @@ public final class Double : kotlin.Number, kotlin.Comparable<kotlin.Double> {
public final operator fun div(other: kotlin.Short): kotlin.Double
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun inc(): kotlin.Double
@@ -1326,8 +1363,8 @@ public final class Double : kotlin.Number, kotlin.Comparable<kotlin.Double> {
@kotlin.DeprecatedSinceKotlin(errorSince = "1.5", warningSince = "1.3")
public open override fun toShort(): kotlin.Short
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public final operator fun unaryMinus(): kotlin.Double
public final operator fun unaryPlus(): kotlin.Double
@@ -1487,8 +1524,8 @@ public final class Float : kotlin.Number, kotlin.Comparable<kotlin.Float> {
public final operator fun div(other: kotlin.Short): kotlin.Float
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun inc(): kotlin.Float
@@ -1567,8 +1604,8 @@ public final class Float : kotlin.Number, kotlin.Comparable<kotlin.Float> {
@kotlin.DeprecatedSinceKotlin(errorSince = "1.5", warningSince = "1.3")
public open override fun toShort(): kotlin.Short
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public final operator fun unaryMinus(): kotlin.Float
public final operator fun unaryPlus(): kotlin.Float
@@ -1664,8 +1701,8 @@ public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int> {
public final operator fun div(other: kotlin.Short): kotlin.Int
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun inc(): kotlin.Int
@@ -1754,8 +1791,8 @@ public final class Int : kotlin.Number, kotlin.Comparable<kotlin.Int> {
public open override fun toShort(): kotlin.Short
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
@@ -1865,8 +1902,8 @@ public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long> {
/*∆*/ public final inline operator fun div(other: kotlin.Short): kotlin.Long
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun inc(): kotlin.Long
@@ -1957,8 +1994,8 @@ public final class Long : kotlin.Number, kotlin.Comparable<kotlin.Long> {
public open override fun toShort(): kotlin.Short
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public final operator fun unaryMinus(): kotlin.Long
/*∆*/ public final inline operator fun unaryPlus(): kotlin.Long
@@ -2202,8 +2239,8 @@ public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short> {
public final operator fun div(other: kotlin.Short): kotlin.Int
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/ public open override fun hashCode(): kotlin.Int
/*∆*/
public final operator fun inc(): kotlin.Short
@@ -2285,8 +2322,8 @@ public final class Short : kotlin.Number, kotlin.Comparable<kotlin.Short> {
public open override fun toShort(): kotlin.Short
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public final operator fun unaryMinus(): kotlin.Int
public final operator fun unaryPlus(): kotlin.Int
@@ -2334,8 +2371,8 @@ public final class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequenc
public open override operator fun compareTo(other: kotlin.String): kotlin.Int
/*∆*/ public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
/*∆*/
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
public open override operator fun get(index: kotlin.Int): kotlin.Char
/*∆*/ public open override fun hashCode(): kotlin.Int
@@ -2344,8 +2381,8 @@ public final class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequenc
public open override fun subSequence(startIndex: kotlin.Int, endIndex: kotlin.Int): kotlin.CharSequence
/*∆*/ public open override fun toString(): kotlin.String
/*∆*/
public open override fun toString(): kotlin.String
public companion object of String {
}
}
+2
View File
@@ -1182,8 +1182,10 @@ public inline fun kotlin.String.trimEnd(predicate: (kotlin.Char) -> kotlin.Boole
public fun kotlin.String.trimEnd(vararg chars: kotlin.Char): kotlin.String
@kotlin.internal.IntrinsicConstEvaluation
public fun kotlin.String.trimIndent(): kotlin.String
@kotlin.internal.IntrinsicConstEvaluation
public fun kotlin.String.trimMargin(marginPrefix: kotlin.String = ...): kotlin.String
public fun kotlin.CharSequence.trimStart(): kotlin.CharSequence
@@ -19,6 +19,7 @@ public actual interface KCallable<out R> : KAnnotatedElement {
* - property accessors: the getter for a property named "foo" will have the name "<get-foo>",
* the setter, similarly, will have the name "<set-foo>".
*/
@kotlin.internal.IntrinsicConstEvaluation
public actual val name: String
/**
+1
View File
@@ -46,4 +46,5 @@ public expect fun Char(code: UShort): Char
@WasExperimental(ExperimentalStdlibApi::class)
@kotlin.internal.InlineOnly
@Suppress("DEPRECATION")
@kotlin.internal.IntrinsicConstEvaluation
public inline val Char.code: Int get() = this.toInt()
@@ -19,5 +19,6 @@ public expect interface KCallable<out R> {
* - property accessors: the getter for a property named "foo" will have the name "<get-foo>",
* the setter, similarly, will have the name "<set-foo>".
*/
@kotlin.internal.IntrinsicConstEvaluation
public val name: String
}
@@ -22,6 +22,7 @@ package kotlin.text
* @see trimIndent
* @see kotlin.text.isWhitespace
*/
@kotlin.internal.IntrinsicConstEvaluation
public fun String.trimMargin(marginPrefix: String = "|"): String =
replaceIndentByMargin("", marginPrefix)
@@ -60,6 +61,7 @@ public fun String.replaceIndentByMargin(newIndent: String = "", marginPrefix: St
* @see trimMargin
* @see kotlin.text.isBlank
*/
@kotlin.internal.IntrinsicConstEvaluation
public fun String.trimIndent(): String = replaceIndent("")
/**
@@ -14,6 +14,7 @@ import kotlin.math.sign
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.floorDiv(other: Byte): Int =
this.toInt().floorDiv(other.toInt())
@@ -24,12 +25,14 @@ public inline fun Byte.floorDiv(other: Byte): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.mod(other: Byte): Byte =
this.toInt().mod(other.toInt()).toByte()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.floorDiv(other: Short): Int =
this.toInt().floorDiv(other.toInt())
@@ -40,12 +43,14 @@ public inline fun Byte.floorDiv(other: Short): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.mod(other: Short): Short =
this.toInt().mod(other.toInt()).toShort()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.floorDiv(other: Int): Int =
this.toInt().floorDiv(other)
@@ -56,12 +61,14 @@ public inline fun Byte.floorDiv(other: Int): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.mod(other: Int): Int =
this.toInt().mod(other)
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.floorDiv(other: Long): Long =
this.toLong().floorDiv(other)
@@ -72,12 +79,14 @@ public inline fun Byte.floorDiv(other: Long): Long =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Byte.mod(other: Long): Long =
this.toLong().mod(other)
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.floorDiv(other: Byte): Int =
this.toInt().floorDiv(other.toInt())
@@ -88,12 +97,14 @@ public inline fun Short.floorDiv(other: Byte): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.mod(other: Byte): Byte =
this.toInt().mod(other.toInt()).toByte()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.floorDiv(other: Short): Int =
this.toInt().floorDiv(other.toInt())
@@ -104,12 +115,14 @@ public inline fun Short.floorDiv(other: Short): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.mod(other: Short): Short =
this.toInt().mod(other.toInt()).toShort()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.floorDiv(other: Int): Int =
this.toInt().floorDiv(other)
@@ -120,12 +133,14 @@ public inline fun Short.floorDiv(other: Int): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.mod(other: Int): Int =
this.toInt().mod(other)
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.floorDiv(other: Long): Long =
this.toLong().floorDiv(other)
@@ -136,12 +151,14 @@ public inline fun Short.floorDiv(other: Long): Long =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Short.mod(other: Long): Long =
this.toLong().mod(other)
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.floorDiv(other: Byte): Int =
this.floorDiv(other.toInt())
@@ -152,12 +169,14 @@ public inline fun Int.floorDiv(other: Byte): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.mod(other: Byte): Byte =
this.mod(other.toInt()).toByte()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.floorDiv(other: Short): Int =
this.floorDiv(other.toInt())
@@ -168,12 +187,14 @@ public inline fun Int.floorDiv(other: Short): Int =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.mod(other: Short): Short =
this.mod(other.toInt()).toShort()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.floorDiv(other: Int): Int {
var q = this / other
if (this xor other < 0 && q * other != this) q--
@@ -187,6 +208,7 @@ public inline fun Int.floorDiv(other: Int): Int {
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.mod(other: Int): Int {
val r = this % other
return r + (other and (((r xor other) and (r or -r)) shr 31))
@@ -195,6 +217,7 @@ public inline fun Int.mod(other: Int): Int {
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.floorDiv(other: Long): Long =
this.toLong().floorDiv(other)
@@ -205,12 +228,14 @@ public inline fun Int.floorDiv(other: Long): Long =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Int.mod(other: Long): Long =
this.toLong().mod(other)
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.floorDiv(other: Byte): Long =
this.floorDiv(other.toLong())
@@ -221,12 +246,14 @@ public inline fun Long.floorDiv(other: Byte): Long =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.mod(other: Byte): Byte =
this.mod(other.toLong()).toByte()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.floorDiv(other: Short): Long =
this.floorDiv(other.toLong())
@@ -237,12 +264,14 @@ public inline fun Long.floorDiv(other: Short): Long =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.mod(other: Short): Short =
this.mod(other.toLong()).toShort()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.floorDiv(other: Int): Long =
this.floorDiv(other.toLong())
@@ -253,12 +282,14 @@ public inline fun Long.floorDiv(other: Int): Long =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.mod(other: Int): Int =
this.mod(other.toLong()).toInt()
/** Divides this value by the other value, flooring the result to an integer that is closer to negative infinity. */
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.floorDiv(other: Long): Long {
var q = this / other
if (this xor other < 0 && q * other != this) q--
@@ -272,6 +303,7 @@ public inline fun Long.floorDiv(other: Long): Long {
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Long.mod(other: Long): Long {
val r = this % other
return r + (other and (((r xor other) and (r or -r)) shr 63))
@@ -286,6 +318,7 @@ public inline fun Long.mod(other: Long): Long {
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Float.mod(other: Float): Float {
val r = this % other
return if (r != 0.0.toFloat() && r.sign != other.sign) r + other else r
@@ -300,6 +333,7 @@ public inline fun Float.mod(other: Float): Float {
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Float.mod(other: Double): Double =
this.toDouble().mod(other)
@@ -312,6 +346,7 @@ public inline fun Float.mod(other: Double): Double =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Double.mod(other: Float): Double =
this.mod(other.toDouble())
@@ -324,6 +359,7 @@ public inline fun Double.mod(other: Float): Double =
*/
@SinceKotlin("1.5")
@kotlin.internal.InlineOnly
@kotlin.internal.IntrinsicConstEvaluation
public inline fun Double.mod(other: Double): Double {
val r = this % other
return if (r != 0.0 && r.sign != other.sign) r + other else r
@@ -13,7 +13,7 @@ import kotlin.jvm.*
@SinceKotlin("1.5")
@WasExperimental(ExperimentalUnsignedTypes::class)
@JvmInline
public value class UByte @PublishedApi internal constructor(@PublishedApi internal val data: Byte) : Comparable<UByte> {
public value class UByte @kotlin.internal.IntrinsicConstEvaluation @PublishedApi internal constructor(@PublishedApi internal val data: Byte) : Comparable<UByte> {
companion object {
/**
+1 -1
View File
@@ -13,7 +13,7 @@ import kotlin.jvm.*
@SinceKotlin("1.5")
@WasExperimental(ExperimentalUnsignedTypes::class)
@JvmInline
public value class UInt @PublishedApi internal constructor(@PublishedApi internal val data: Int) : Comparable<UInt> {
public value class UInt @kotlin.internal.IntrinsicConstEvaluation @PublishedApi internal constructor(@PublishedApi internal val data: Int) : Comparable<UInt> {
companion object {
/**
@@ -13,7 +13,7 @@ import kotlin.jvm.*
@SinceKotlin("1.5")
@WasExperimental(ExperimentalUnsignedTypes::class)
@JvmInline
public value class ULong @PublishedApi internal constructor(@PublishedApi internal val data: Long) : Comparable<ULong> {
public value class ULong @kotlin.internal.IntrinsicConstEvaluation @PublishedApi internal constructor(@PublishedApi internal val data: Long) : Comparable<ULong> {
companion object {
/**
@@ -13,7 +13,7 @@ import kotlin.jvm.*
@SinceKotlin("1.5")
@WasExperimental(ExperimentalUnsignedTypes::class)
@JvmInline
public value class UShort @PublishedApi internal constructor(@PublishedApi internal val data: Short) : Comparable<UShort> {
public value class UShort @kotlin.internal.IntrinsicConstEvaluation @PublishedApi internal constructor(@PublishedApi internal val data: Short) : Comparable<UShort> {
companion object {
/**