| // RUN_PIPELINE_TILL: FRONTEND |
| // LANGUAGE: +MultiPlatformProjects |
| // MODULE: m1-common |
| // FILE: common.kt |
| |
| expect open class A<T>() { |
| open fun foo(arg: T) |
| } |
| open class B : A<String>() { |
| // Fake: override fun foo(arg: String) = super.foo(arg) |
| // Fake (JVM only): override fun bar(arg: String): String = super.bar(arg) |
| } |
| open class C : B() { |
| open fun <!VIRTUAL_MEMBER_HIDDEN!>bar<!>(arg: String): String = arg |
| open fun baz(arg: CharSequence): String = arg.toString() |
| } |
| |
| // MODULE: m1-jvm()()(m1-common) |
| // FILE: jvm.kt |
| |
| actual open class A<T> { |
| actual open fun foo(arg: T) {} |
| open fun bar(arg: T): T = arg |
| open fun baz(arg: T): T = arg |
| } |
| class D : C() { |
| fun test() { |
| foo("") |
| bar("") // should be resolved to just C.bar |
| baz("") |
| } |
| } |
| |
| /* GENERATED_FIR_TAGS: actual, classDeclaration, expect, functionDeclaration, nullableType, primaryConstructor, |
| stringLiteral, typeParameter */ |