Add module name as a prefix to declaration keys in JS translator
This is necessary due to different modules can have same package declarations. When importing declarations from these packages, we should distinguish from which module we are importing it. See KT-18652
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
// EXPECTED_REACHABLE_NODES: 511
|
||||
// MODULE: lib1
|
||||
// FILE: lib1.kt
|
||||
package pkg
|
||||
|
||||
object O {
|
||||
fun f() = "O.f"
|
||||
}
|
||||
|
||||
fun foo() = "foo"
|
||||
|
||||
class A {
|
||||
fun f() = "A.f"
|
||||
}
|
||||
|
||||
// MODULE: lib2
|
||||
// FILE: lib2.kt
|
||||
package pkg
|
||||
|
||||
object P {
|
||||
fun f() = "P.f"
|
||||
}
|
||||
|
||||
fun bar() = "bar"
|
||||
|
||||
class B {
|
||||
fun f() = "B.f"
|
||||
}
|
||||
|
||||
// MODULE: main(lib1, lib2)
|
||||
// FILE: main.kt
|
||||
import pkg.*
|
||||
|
||||
fun box(): String {
|
||||
var r = O.f()
|
||||
if (r != "O.f") return "fail1: $r"
|
||||
|
||||
r = foo()
|
||||
if (r != "foo") return "fail2: $r"
|
||||
|
||||
r = A().f()
|
||||
if (r != "A.f") return "fail3: $r"
|
||||
|
||||
r = P.f()
|
||||
if (r != "P.f") return "fail4: $r"
|
||||
|
||||
r = bar()
|
||||
if (r != "bar") return "fail5: $r"
|
||||
|
||||
r = B().f()
|
||||
if (r != "B.f") return "fail6: $r"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user