| inline fun fInt(g: (Int) -> Unit) { |
| g(1) |
| } |
| |
| inline fun fBoolean(g: (Boolean) -> Unit) { |
| g(true) |
| } |
| |
| inline fun fChar(g: (Char) -> Unit) { |
| g('a') |
| } |
| |
| inline fun fByte(g: (Byte) -> Unit) { |
| g(1) |
| } |
| |
| inline fun fShort(g: (Short) -> Unit) { |
| g(1) |
| } |
| |
| inline fun fFloat(g: (Float) -> Unit) { |
| g(1.0f) |
| } |
| |
| inline fun fLong(g: (Long) -> Unit) { |
| g(1L) |
| } |
| |
| inline fun fDouble(g: (Double) -> Unit) { |
| g(1.0) |
| } |
| |
| fun bar() { |
| fInt { } |
| fBoolean { } |
| fChar { } |
| fByte { } |
| fShort { } |
| fFloat { } |
| fLong { } |
| fDouble { } |
| } |
| |
| suspend fun baz() { |
| fInt { } |
| fBoolean { } |
| fChar { } |
| fByte { } |
| fShort { } |
| fFloat { } |
| fLong { } |
| fDouble { } |
| } |
| |
| // The inline functions will contain boxing for the value passed to the lambda. |
| // 8 valueOf |
| |
| // After inlining there will be boxing and unboxing that is not needed. That should be optimized out. |
| // 0 intValue |
| // 0 booleanValue |
| // 0 charValue |
| // 0 byteValue |
| // 0 shortValue |
| // 0 floatValue |
| // 0 longValue |
| // 0 doubleValue |