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