blob: 79c87a81eaa5409614fcf2b08b3c1db79ecffc7b [file] [log] [blame]
// Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package lambdas_kstyle_captures
fun consume(l: () -> String) = l()
fun main(args: Array<String>) {
test()
}
private fun test() {
test1(1, 2, 3, "A", "B", "C", D("x"), D("y"), D("z"), 7, 8, 9)
test2(true, 10, '*', 20, 30, 40, 50.0f, 60.0, D("D"), "S", null, 70)
}
data class D(val d: String)
private fun test1(
i1: Int,
i2: Int,
i3: Int,
s1: String,
s2: String,
s3: String,
d1: D,
d2: D,
d3: D,
o1: Int?,
o2: Int?,
o3: Int?,
) {
println(consume { "a: $i1 $i2 $i3" })
println(consume { "b: $i2 $i3 $i1" })
println(consume { "c: $i3 $i1 $i2" })
println(consume { "d: $i1 $s1 $d1" })
println(consume { "e: $i2 $d2 $s2" })
println(consume { "f: $i3 $d3 $d1" })
println(consume { "g: $o1 $d3 $i3" })
println(consume { "h: $o2 $o3 $i1" })
println(consume { "i: $s1 $s2 $s3" })
println(consume { "j: $d1 $d2 $d3" })
println(consume { "k: $o1 $o2 $o3" })
println(consume { "l: $s1 $d2 $o3" })
println(consume { "n: $o1 $s2 $d3" })
println(consume { "o: $d1 $o2 $s3" })
println(consume { "p: $i1 $i2 $s3" })
}
private fun test2(
z: Boolean,
b: Byte,
c: Char,
s: Short,
i: Int,
l: Long,
f: Float,
d: Double,
o1: D,
o2: String,
o3: Any?,
o4: Byte?,
) {
println(consume { "a: $z $b $c $s $i $l $f $d $o1 $o2 $o3 $o4" })
println(consume { "a: $z $b $o1 $o2 $c $s $i $l $f $d $o3 $o4" })
println(consume { "a: $z $c $s $l $f $d $o2 $o3 $o4 $b $i $o1" })
println(consume { "a: $o1 $o2 $o3 $o4 $z $b $c $s $i $l $f $d" })
println(consume { "a: $z $b $c $s $i $l $f $d $o1 $o2 \$o3 \$o4" })
println(consume { "a: $z $b $c $s $i $l $f $d $o1 \$o2 \$o3 $o4" })
println(consume { "a: $z $b $c $s $i $l $f $d \$o1 \$o2 $o3 $o4" })
println(consume { "a: $z $b $c $s $i $l $f $d \$o1 $o2 $o3 \$o4" })
println(consume { "x: $z $b $c $s $i $l $f $d $o1 $o2 \$o3 $o4" })
println(consume { "y: $z $b $c $s $i $l \$f $d $o1 $o2 $o3 $o4" })
println(consume { "z: $z $b $c \$s $i $l $f $d $o1 $o2 $o3 $o4" })
}