Make Double and Float known values constant

#KT-13887
This commit is contained in:
Ilya Gorbunov
2020-01-21 17:02:49 +03:00
parent 435a7e7e26
commit 1c93911279
7 changed files with 79 additions and 65 deletions
+10 -20
View File
@@ -680,32 +680,27 @@ public class Float private constructor() : Number(), Comparable<Float> {
/**
* A constant holding the smallest *positive* nonzero value of Float.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val MIN_VALUE: Float
public const val MIN_VALUE: Float = 1.4E-45F
/**
* A constant holding the largest positive finite value of Float.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val MAX_VALUE: Float
public const val MAX_VALUE: Float = 3.4028235E38F
/**
* A constant holding the positive infinity value of Float.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val POSITIVE_INFINITY: Float
public const val POSITIVE_INFINITY: Float = 1.0F/0.0F
/**
* A constant holding the negative infinity value of Float.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val NEGATIVE_INFINITY: Float
public const val NEGATIVE_INFINITY: Float = -1.0F/0.0F
/**
* A constant holding the "not a number" value of Float.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val NaN: Float
public const val NaN: Float = -(0.0F/0.0F)
}
/**
@@ -890,32 +885,27 @@ public class Double private constructor() : Number(), Comparable<Double> {
/**
* A constant holding the smallest *positive* nonzero value of Double.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val MIN_VALUE: Double
public const val MIN_VALUE: Double = 4.9E-324
/**
* A constant holding the largest positive finite value of Double.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val MAX_VALUE: Double
public const val MAX_VALUE: Double = 1.7976931348623157E308
/**
* A constant holding the positive infinity value of Double.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val POSITIVE_INFINITY: Double
public const val POSITIVE_INFINITY: Double = 1.0/0.0
/**
* A constant holding the negative infinity value of Double.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val NEGATIVE_INFINITY: Double
public const val NEGATIVE_INFINITY: Double = -1.0/0.0
/**
* A constant holding the "not a number" value of Double.
*/
@Suppress("MUST_BE_INITIALIZED_OR_BE_ABSTRACT")
public val NaN: Double
public const val NaN: Double = -(0.0/0.0)
}
/**
@@ -8,37 +8,37 @@ package kotlin.js.internal
@JsName("DoubleCompanionObject")
internal object DoubleCompanionObject {
@JsName("MIN_VALUE")
val MIN_VALUE: Double = js("Number.MIN_VALUE")
const val MIN_VALUE: Double = 4.9E-324
@JsName("MAX_VALUE")
val MAX_VALUE: Double = js("Number.MAX_VALUE")
const val MAX_VALUE: Double = 1.7976931348623157E308
@JsName("POSITIVE_INFINITY")
val POSITIVE_INFINITY: Double = js("Number.POSITIVE_INFINITY")
const val POSITIVE_INFINITY: Double = 1.0/0.0
@JsName("NEGATIVE_INFINITY")
val NEGATIVE_INFINITY: Double = js("Number.NEGATIVE_INFINITY")
const val NEGATIVE_INFINITY: Double = -1.0/0.0
@JsName("NaN")
val NaN: Double = js("Number.NaN")
const val NaN: Double = -(0.0/0.0)
}
@JsName("FloatCompanionObject")
internal object FloatCompanionObject {
@JsName("MIN_VALUE")
val MIN_VALUE: Float = js("Number.MIN_VALUE")
const val MIN_VALUE: Float = 1.4E-45F
@JsName("MAX_VALUE")
val MAX_VALUE: Float = js("Number.MAX_VALUE")
const val MAX_VALUE: Float = 3.4028235E38F
@JsName("POSITIVE_INFINITY")
val POSITIVE_INFINITY: Float = js("Number.POSITIVE_INFINITY")
const val POSITIVE_INFINITY: Float = 1.0F/0.0F
@JsName("NEGATIVE_INFINITY")
val NEGATIVE_INFINITY: Float = js("Number.NEGATIVE_INFINITY")
const val NEGATIVE_INFINITY: Float = -1.0F/0.0F
@JsName("NaN")
val NaN: Float = js("Number.NaN")
const val NaN: Float = -(0.0F/0.0F)
}
@JsName("IntCompanionObject")
@@ -6,19 +6,33 @@
package kotlin.jvm.internal
internal object DoubleCompanionObject {
val MIN_VALUE: Double = java.lang.Double.MIN_VALUE
val MAX_VALUE: Double = java.lang.Double.MAX_VALUE
val POSITIVE_INFINITY: Double = java.lang.Double.POSITIVE_INFINITY
val NEGATIVE_INFINITY: Double = java.lang.Double.NEGATIVE_INFINITY
val NaN: Double = java.lang.Double.NaN
const val MIN_VALUE: Double = java.lang.Double.MIN_VALUE
const val MAX_VALUE: Double = java.lang.Double.MAX_VALUE
const val POSITIVE_INFINITY: Double = java.lang.Double.POSITIVE_INFINITY
const val NEGATIVE_INFINITY: Double = java.lang.Double.NEGATIVE_INFINITY
const val NaN: Double = java.lang.Double.NaN
// for binary compatibility with pre 1.4
fun getMIN_VALUE(): Double = java.lang.Double.MIN_VALUE
fun getMAX_VALUE(): Double = java.lang.Double.MAX_VALUE
fun getPOSITIVE_INFINITY(): Double = java.lang.Double.POSITIVE_INFINITY
fun getNEGATIVE_INFINITY(): Double = java.lang.Double.NEGATIVE_INFINITY
fun getNaN(): Double = java.lang.Double.NaN
}
internal object FloatCompanionObject {
val MIN_VALUE: Float = java.lang.Float.MIN_VALUE
val MAX_VALUE: Float = java.lang.Float.MAX_VALUE
val POSITIVE_INFINITY: Float = java.lang.Float.POSITIVE_INFINITY
val NEGATIVE_INFINITY: Float = java.lang.Float.NEGATIVE_INFINITY
val NaN: Float = java.lang.Float.NaN
const val MIN_VALUE: Float = java.lang.Float.MIN_VALUE
const val MAX_VALUE: Float = java.lang.Float.MAX_VALUE
const val POSITIVE_INFINITY: Float = java.lang.Float.POSITIVE_INFINITY
const val NEGATIVE_INFINITY: Float = java.lang.Float.NEGATIVE_INFINITY
const val NaN: Float = java.lang.Float.NaN
// for binary compatibility with pre 1.4
fun getMIN_VALUE(): Float = java.lang.Float.MIN_VALUE
fun getMAX_VALUE(): Float = java.lang.Float.MAX_VALUE
fun getPOSITIVE_INFINITY(): Float = java.lang.Float.POSITIVE_INFINITY
fun getNEGATIVE_INFINITY(): Float = java.lang.Float.NEGATIVE_INFINITY
fun getNaN(): Float = java.lang.Float.NaN
}
internal object IntCompanionObject {