Files
kotlin-fork/kotlin-native/backend.native/tests/codegen/interfaceCallsNCasts/finalMethod.kt
T
Igor Chevdar e67a78abaf [K/N][codegen] Fix for https://youtrack.jetbrains.com/issue/KT-48543
Sometimes an interface contains final methods, they shouldn't be in its itable
cause they can't be called virtually
2021-09-07 12:04:26 +05:00

28 lines
487 B
Kotlin

/*
* Copyright 2010-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the LICENSE file.
*/
package codegen.interfaceCallsNCasts.finalMethod
import kotlin.test.*
interface I1<T> {
fun defaultX(): T
fun foo(x: T = defaultX()): T
}
interface I2 : I1<Int> {
}
class C : I2 {
override fun defaultX() = 42
override fun foo(x: Int) = x
}
@Test
fun runTest() {
val c: I2 = C()
assertEquals(42, c.foo())
}