Support Infinity and NaN in constant evaluator

This allows to store infinities and NaNs inside const vals
This commit is contained in:
Mikhail Zarechenskiy
2016-12-01 11:19:25 +03:00
parent 57964845ad
commit 25c3b43858
4 changed files with 67 additions and 11 deletions
+33 -9
View File
@@ -3,10 +3,10 @@ package test
// val prop1: null
val prop1 = 1 / 0
// val prop2: null
// val prop2: Infinity.toDouble()
val prop2 = 1 / 0.0
// val prop3: null
// val prop3: Infinity.toDouble()
val prop3 = 1.0 / 0
// val prop4: 10.0.toDouble()
@@ -15,20 +15,44 @@ val prop4 = 1 / 0.1
// val prop5: null
val prop5 = 1 / 0.toLong()
// val prop6: null
// val prop6: Infinity.toDouble()
val prop6 = 1.0 / 0.toInt()
// val prop7: null
// val prop7: Infinity.toDouble()
val prop7 = 1.0 / 0.toLong()
// val prop8: null
// val prop8: Infinity.toDouble()
val prop8 = 1.0 / 0.toByte()
// val prop9: null
// val prop9: Infinity.toDouble()
val prop9 = 1.0 / 0.toShort()
// val prop10: null
// val prop10: Infinity.toDouble()
val prop10 = 1.0 / 0.toFloat()
// val prop11: null
val prop11 = 1.0 / 0.toDouble()
// val prop11: Infinity.toDouble()
val prop11 = 1.0 / 0.toDouble()
// val prop12: -Infinity.toDouble()
val prop12 = -1.0 / 0
// val prop13: Infinity.toFloat()
val prop13 = 1f / 0
// val prop14: -Infinity.toFloat()
val prop14 = -1f / 0
// val prop15: NaN.toDouble()
val prop15 = 0.0 / 0
// val prop16: NaN.toFloat()
val prop16 = 0f / 0
// val prop17: NaN.toDouble()
val prop17 = -0.0 / 0
// val prop18: NaN.toDouble()
val prop18 = 1.0 / 0 - 1.0 / 0
// val prop19: NaN.toFloat()
val prop19 = 1f / 0 - 1f / 0