Use type from compile time value for prefix expression

This commit is contained in:
Natalia Ukhorskaya
2013-12-02 15:01:32 +04:00
parent 9c176ddaa8
commit 2a023c16a9
49 changed files with 805 additions and 140 deletions
@@ -0,0 +1,19 @@
package test
// val prop1: false
val prop1 = 1 > 2
// val prop2: true
val prop2 = 1 < 2
// val prop3: true
val prop3 = 1 <= 2
// val prop4: false
val prop4 = 1 >= 2
// val prop5: -1.toInt()
val prop5 = 1.compareTo(2)
// val prop6: false
val prop6 = 1.compareTo(2) > 0
@@ -0,0 +1,16 @@
package test
// val prop1: null
val prop1 = 1 / 0
// val prop2: null
val prop2 = 1 / 0.0
// val prop3: null
val prop3 = 1.0 / 0
// val prop4: 10.0.toDouble()
val prop4 = 1 / 0.1
// val prop5: null
val prop5 = 1 / 0.toLong()
@@ -0,0 +1,4 @@
package test
// val prop4: true
val prop4 = !1.equals(2)
@@ -0,0 +1,28 @@
package test
// val prop1: 3.4028235E38.toFloat()
val prop1: Float = java.lang.Float.MAX_VALUE + 1
// val prop2: 3.4028234663852886E38.toDouble()
val prop2: Double = java.lang.Float.MAX_VALUE + 1.0
// val prop3: 3.4028235E38.toFloat()
val prop3 = java.lang.Float.MAX_VALUE + 1
// val prop4: 3.4028235E38.toFloat()
val prop4 = java.lang.Float.MAX_VALUE - 1
// val prop5: 3.4028235E38.toFloat()
val prop5: Int = java.lang.Float.MAX_VALUE + 1
// val prop6: 2.0.toFloat()
val prop6: Float = 1.0.toFloat() + 1
// val prop7: 2.0.toDouble()
val prop7: Double = 1.0 + 1.0
// val prop8: 2.0.toDouble()
val prop8: Float = 1.0.toDouble() + 1.0
// val prop9: -2.0.toDouble()
val prop9: Double = -2.0
@@ -0,0 +1,10 @@
package test
// val prop1: 513105426295.toLong()
val prop1: Int = 0x7777777777
// val prop2: 513105426295.toLong()
val prop2: Long = 0x7777777777
// val prop3: IntegerValueType(513105426295)
val prop3 = 0x7777777777
@@ -0,0 +1,32 @@
package test
enum class MyEnum {
A
}
// val prop1: "2"
val prop1 = "${1 + 1}"
// val prop2: null
val prop2 = "myEnum=${MyEnum.A}"
// val prop3: "1"
val prop3 = "${1}"
// val prop4: null
val prop4 = "${null}"
// val prop5: "1.0"
val prop5 = "${1.toFloat()}"
// val prop6: "1.0"
val prop6 = "${1.0}"
// val prop7: null
val prop7 = "${javaClass<Int>()}"
// val prop8: "a1.0"
val prop8 = "a${1.toDouble()}"
// val prop9: "ab"
val prop9 = "a" + "b"
@@ -0,0 +1,16 @@
package test
// val p1: IntegerValueType(-1)
val p1 = -1
// val p2: -1.toLong()
val p2 = -1.toLong()
// val p3: -1.toByte()
val p3 = -1.toByte()
// val p4: -1.toInt()
val p4 = -1.toInt()
// val p5: -1.toShort()
val p5 = -1.toShort()
@@ -0,0 +1,63 @@
package test
// val p1: -1.toInt()
val p1: Int = -1
// val p2: -1.toLong()
val p2: Long = -1
// val p3: -1.toByte()
val p3: Byte = -1
// val p4: -1.toShort()
val p4: Short = -1
// val l1: -1.toLong()
val l1: Long = -1.toLong()
// val l2: -1.toLong()
val l2: Byte = -1.toLong()
// val l3: -1.toLong()
val l3: Int = -1.toLong()
// val l4: -1.toLong()
val l4: Short = -1.toLong()
// val b1: -1.toByte()
val b1: Byte = -1.toByte()
// val b2: -1.toByte()
val b2: Int = -1.toByte()
// val b3: -1.toByte()
val b3: Long = -1.toByte()
// val b4: -1.toByte()
val b4: Short = -1.toByte()
// val i1: -1.toInt()
val i1: Byte = -1.toInt()
// val i2: -1.toInt()
val i2: Int = -1.toInt()
// val i3: -1.toInt()
val i3: Long = -1.toInt()
// val i4: -1.toInt()
val i4: Short = -1.toInt()
// val s1: -1.toShort()
val s1: Byte = -1.toShort()
// val s2: -1.toShort()
val s2: Int = -1.toShort()
// val s3: -1.toShort()
val s3: Long = -1.toShort()
// val s4: -1.toShort()
val s4: Short = -1.toShort()