| // TARGET_BACKEND: JVM | |
| // WITH_STDLIB | |
| // MODULE: base | |
| // FILE: base.kt | |
| interface PsiClass { | |
| fun foo(): String? | |
| } | |
| interface UClass : PsiClass { | |
| override fun foo(): String? | |
| } | |
| abstract class BaseKotlinUClass( | |
| psi: PsiClass, | |
| val w: String, | |
| ) : UClass, PsiClass by psi | |
| // MODULE: main(base) | |
| // FILE: main.kt | |
| class A(psi: PsiClass) : BaseKotlinUClass(psi, "K") | |
| fun bar(uClass: UClass): String = uClass.foo()!! + (uClass as BaseKotlinUClass).w | |
| fun box(): String = bar(A(object : PsiClass { | |
| override fun foo(): String? = "O" | |
| })) |