| // !LANGUAGE: +InlineClasses |
| |
| |
| // FILE: dependency.kt |
| |
| inline class InlinedInt(val internal: Int) |
| inline class InlinedString(val internal: String) |
| |
| inline fun <T> foo(callback: () -> T): T { |
| return callback() |
| } |
| |
| inline fun bar(callback: () -> InlinedInt): InlinedInt { |
| return callback() |
| } |
| |
| inline fun baz(callback: () -> InlinedString): InlinedString { |
| return callback() |
| } |
| |
| // FILE: test.kt |
| |
| fun test(i: InlinedInt, s: InlinedString) { |
| foo { i } |
| bar { i } |
| |
| foo { s } |
| baz { s } |
| } |
| |
| // @TestKt.class: |
| // 0 valueOf |
| // 0 INVOKESTATIC InlinedInt\$Erased.box |
| // 0 INVOKEVIRTUAL InlinedInt.unbox |
| // 0 INVOKESTATIC InlinedString\$Erased.box |
| // 0 INVOKEVIRTUAL InlinedString.unbox |