JS: decomposition of binary operator
#KT-6437 fixed #KT-7359 fixed
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
package foo
|
||||
|
||||
class A(var x: Int) {
|
||||
override fun toString(): String = "A($x)"
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A(10)
|
||||
fizz(a).x = buzz(20)
|
||||
assertEquals(20, a.x)
|
||||
assertEquals("fizz(A(10));buzz(20);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(3, fizz(1) + buzz(2))
|
||||
assertEquals("fizz(1);buzz(2);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(10, (fizz(1) + buzz(2)) + (fizz(3) + buzz(4)))
|
||||
assertEquals("fizz(1);buzz(2);fizz(3);buzz(4);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package foo
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(false, fizz(false) && buzz(false))
|
||||
assertEquals("fizz(false);", pullLog())
|
||||
|
||||
assertEquals(false, fizz(true) && buzz(false))
|
||||
assertEquals("fizz(true);buzz(false);", pullLog())
|
||||
|
||||
assertEquals(true, fizz(true) && buzz(true))
|
||||
assertEquals("fizz(true);buzz(true);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(true, fizz(true) || buzz(true) && (fizz(false) || buzz(true)))
|
||||
assertEquals("fizz(true);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package foo
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(true, fizz(true) || buzz(false))
|
||||
assertEquals("fizz(true);", pullLog())
|
||||
|
||||
assertEquals(true, fizz(false) || buzz(true))
|
||||
assertEquals("fizz(false);buzz(true);", pullLog())
|
||||
|
||||
assertEquals(false, fizz(false) || buzz(false))
|
||||
assertEquals("fizz(false);buzz(false);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package foo
|
||||
|
||||
class A(val x: Int = fizz(1) + 1) {
|
||||
val y = buzz(x) + 1
|
||||
val z: Int
|
||||
|
||||
init {
|
||||
z = fizz(x) + buzz(y)
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A()
|
||||
assertEquals(2, a.x)
|
||||
assertEquals(3, a.y)
|
||||
assertEquals(5, a.z)
|
||||
assertEquals("fizz(1);buzz(2);fizz(2);buzz(3);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package foo
|
||||
|
||||
class A {
|
||||
val x: Int
|
||||
|
||||
init {
|
||||
x = fizz(1) + buzz(2)
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A()
|
||||
assertEquals(3, a.x)
|
||||
assertEquals("fizz(1);buzz(2);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user