Support inline functions inside inline classes

This commit is contained in:
Mikhail Zarechenskiy
2018-05-07 04:09:06 +03:00
parent 5c57c799fc
commit b25a1d9522
13 changed files with 161 additions and 5 deletions

View File

@@ -0,0 +1,18 @@
// !LANGUAGE: +InlineClasses
inline class Foo(val x: Int) {
inline fun inlineInc(): Foo = Foo(x + 1) // one actual call inside wrapper class Foo
fun notInlineInc(): Foo = Foo(x + 1)
fun foo() {
inlineInc()
}
}
fun test(f: Foo) {
f.inlineInc().inlineInc().inlineInc()
f.notInlineInc() // one here, one inside wrapper class Foo
}
// 1 INVOKESTATIC Foo\$Erased.inlineInc
// 2 INVOKESTATIC Foo\$Erased.notInlineInc