// libA fun fooA() = 5 // libB: implementation depends on libA inline fun fooB() = fooA() // libC: implementation depends on libB, but not libA fun fooC() = fooB()
There is a problem, while inlining fooB to fooC.
It contains call to fooA, but fooA doesn't exist for fooC compilation.
For jvm it is not a problem, as it would inline invokestatic libAKt.foo as is, without trying to understand what does it mean.
For current non-jvm it is not a problem, as it has all transitive dependencies at inlining time.
Unfortunately, if trying to inline on compile time over IR it would be the same problem as in klibs. And even worse, as jvm compilation doesn‘t (and can’t) have IrLinker to fix this symbols later.