Slide 40
Slide 40 text
inline fun computeValues(
number: Int, doubleValue: (number: Int) ->
Unit,
noinline tripleValue: (number: Int) -> Unit
) {
doubleValue.invoke(number)
tripleValue.invoke(number)
}
fun main() {
val number = 7;
computeValues(number,
{ println(doubleOfNumber(number)) },
{ println(tripleOfNumber(number)) })
}
fun doubleOfNumber(number: Int) = 2 * number
fun tripleOfNumber(number: Int) = 3 * number
public static final void computeValues(int number, @NotNull Function1 doubleValue, @NotNull Function1 tripleValue) {
int $i$f$computeValues = 0;
Intrinsics.checkNotNullParameter(doubleValue, "doubleValue");
Intrinsics.checkNotNullParameter(tripleValue, "tripleValue");
doubleValue.invoke(number);
tripleValue.invoke(number);
}
public static final void main() {
final int number = 7;
Function1 tripleValue$iv = (Function1)(new Function1() {
// $FF: synthetic method
// $FF: bridge method
public Object invoke(Object var1) {
this.invoke(((Number)var1).intValue());
return Unit.INSTANCE;
}
public final void invoke(int it) {
int var2 = NoinlineSamplesKt.tripleOfNumber(number);
boolean var3 = false;
System.out.println(var2);
}
});
int $i$f$computeValues = false;
int var4 = false;
int var5 = doubleOfNumber(number);
boolean var6 = false;
System.out.println(var5);
tripleValue$iv.invoke(Integer.valueOf(number));
}
// $FF: synthetic method
public static void main(String[] var0) {
main();
}
public static final int doubleOfNumber(int number) {
return 2 * number;
}
public static final int tripleOfNumber(int number) {
return 3 * number;
}