7a31167e0b
[JS IR] Use a module name in JsFunctionSignature for internal methods ^KT-60635 Fixed
107 lines
2.0 KiB
Kotlin
Vendored
107 lines
2.0 KiB
Kotlin
Vendored
// WITH_STDLIB
|
|
|
|
// MODULE: lib1
|
|
|
|
// FILE: DemoClassInternal1.kt
|
|
abstract class DemoClassInternal {
|
|
@PublishedApi
|
|
internal open fun demo(): Int = 1
|
|
}
|
|
|
|
// FILE: TestDemo1.kt
|
|
inline fun testDemoInline(d: DemoClassInternal): Int = d.demo()
|
|
fun testDemo(d: DemoClassInternal): Int = d.demo()
|
|
|
|
// MODULE: main(lib1)
|
|
|
|
// FILE: MyDemo.kt
|
|
open class MyDemo1 : DemoClassInternal()
|
|
|
|
class MyDemo2 : DemoClassInternal() {
|
|
fun demo(): Int = 2
|
|
}
|
|
|
|
open class MyDemo3 : DemoClassInternal() {
|
|
open fun demo(): Int = 3
|
|
}
|
|
|
|
class MyDemo4: MyDemo1()
|
|
|
|
class MyDemo5: MyDemo1() {
|
|
fun demo(): Int = 5
|
|
}
|
|
|
|
class MyDemo6: MyDemo3()
|
|
|
|
class MyDemo7: MyDemo3() {
|
|
override fun demo(): Int = 7
|
|
}
|
|
|
|
// FILE: Box.kt
|
|
import kotlin.test.assertEquals
|
|
|
|
fun testMyDemo1() {
|
|
val myDemo = MyDemo1()
|
|
|
|
assertEquals(testDemoInline(myDemo), 1)
|
|
assertEquals(testDemo(myDemo), 1)
|
|
}
|
|
|
|
fun testMyDemo2() {
|
|
val myDemo = MyDemo2()
|
|
|
|
assertEquals(testDemoInline(myDemo), 2)
|
|
assertEquals(testDemo(myDemo), 2)
|
|
assertEquals(myDemo.demo(), 2)
|
|
}
|
|
|
|
fun testMyDemo3() {
|
|
val myDemo = MyDemo3()
|
|
|
|
assertEquals(testDemoInline(myDemo), 3)
|
|
assertEquals(testDemo(myDemo), 3)
|
|
assertEquals(myDemo.demo(), 3)
|
|
}
|
|
|
|
fun testMyDemo4() {
|
|
val myDemo = MyDemo4()
|
|
|
|
assertEquals(testDemoInline(myDemo), 1)
|
|
assertEquals(testDemo(myDemo), 1)
|
|
}
|
|
|
|
fun testMyDemo5() {
|
|
val myDemo = MyDemo5()
|
|
|
|
assertEquals(testDemoInline(myDemo), 5)
|
|
assertEquals(testDemo(myDemo), 5)
|
|
assertEquals(myDemo.demo(), 5)
|
|
}
|
|
|
|
fun testMyDemo6() {
|
|
val myDemo = MyDemo6()
|
|
|
|
assertEquals(testDemoInline(myDemo), 3)
|
|
assertEquals(testDemo(myDemo), 3)
|
|
assertEquals(myDemo.demo(), 3)
|
|
}
|
|
|
|
fun testMyDemo7() {
|
|
val myDemo = MyDemo7()
|
|
|
|
assertEquals(testDemoInline(myDemo), 7)
|
|
assertEquals(testDemo(myDemo), 7)
|
|
assertEquals(myDemo.demo(), 7)
|
|
}
|
|
|
|
fun box(): String {
|
|
testMyDemo1()
|
|
testMyDemo2()
|
|
testMyDemo3()
|
|
testMyDemo4()
|
|
testMyDemo5()
|
|
testMyDemo6()
|
|
testMyDemo7()
|
|
return "OK"
|
|
}
|