JS BE: expose imported modules via $$importsForInline$$ property
... and use it as prefix to FQN in inline functions. This allows to properly inline function declared in module A to module B, when this function calls another function in module C. See KT-18201
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
// EXPECTED_REACHABLE_NODES: 491
|
||||
// MODULE: lib1
|
||||
// FILE: lib1.kt
|
||||
|
||||
fun foo() = "O"
|
||||
|
||||
fun bar() = "K"
|
||||
|
||||
// MODULE: lib2(lib1)
|
||||
// FILE: lib2a.kt
|
||||
// PROPERTY_WRITE_COUNT: name=lib1 count=1
|
||||
// PROPERTY_WRITE_COUNT: name=$$imports$$ count=1
|
||||
|
||||
inline fun o() = foo()
|
||||
|
||||
// FILE: lib2b.kt
|
||||
|
||||
inline fun k() = bar()
|
||||
|
||||
// MODULE: main(lib2)
|
||||
// FILE: main.kt
|
||||
// RECOMPILE
|
||||
|
||||
fun box() = o() + k()
|
||||
Reference in New Issue
Block a user