[Common IR] Do not add internal methods to overrides
[JS IR] Use a module name in JsFunctionSignature for internal methods ^KT-60635 Fixed
This commit is contained in:
committed by
Space Team
parent
788fa5d545
commit
7a31167e0b
@@ -0,0 +1,106 @@
|
||||
// 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"
|
||||
}
|
||||
Reference in New Issue
Block a user