JS: decomposition of invocation/"new"
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
package foo
|
||||
|
||||
fun sum(x: Int, y: Int): Int {
|
||||
log("sum($x, $y)")
|
||||
return x + y
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(3, sum(fizz(1), buzz(2)))
|
||||
assertEquals("fizz(1);buzz(2);sum(1, 2);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package foo
|
||||
|
||||
fun sum(a: Int, b: Int, c: Int, d: Int): Int {
|
||||
log("sum($a, $b, $c, $d)")
|
||||
return a + b + c + d
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(10, sum(fizz(1), buzz(2), fizz(3), buzz(4)))
|
||||
assertEquals("fizz(1);buzz(2);fizz(3);buzz(4);sum(1, 2, 3, 4);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package foo
|
||||
|
||||
// CHECK_NOT_CALLED: max
|
||||
|
||||
inline fun max(a: Int, b: Int): Int {
|
||||
log("max($a, $b)")
|
||||
|
||||
if (a > b) return a
|
||||
|
||||
return b
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val test = max(fizz(1), max(fizz(2), buzz(3)))
|
||||
assertEquals(3, test)
|
||||
assertEquals("fizz(1);fizz(2);buzz(3);max(2, 3);max(1, 3);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package foo
|
||||
|
||||
class Sum(x: Int, y: Int) {
|
||||
init {
|
||||
log("new Sum($x, $y)")
|
||||
}
|
||||
|
||||
val value = x + y
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(3, Sum(fizz(1), buzz(2)).value)
|
||||
assertEquals("fizz(1);buzz(2);new Sum(1, 2);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package foo
|
||||
|
||||
fun multiplyFun(): (Int, Int)->Int {
|
||||
log("multiplyFun()")
|
||||
return { x, y -> x * y }
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(6, multiplyFun()(fizz(2), buzz(3)))
|
||||
assertEquals("multiplyFun();fizz(2);buzz(3);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package foo
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(3, buzz(fizz(1) + buzz(2)))
|
||||
assertEquals("fizz(1);buzz(2);buzz(3);", pullLog())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user