| // 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" }) |
| } |