| FILE: kt56283.fir.kt | |
| public open class Base : R|kotlin/Any| { | |
| public constructor(): R|Base| { | |
| super<R|kotlin/Any|>() | |
| } | |
| } | |
| public final class Derived : R|Base| { | |
| public constructor(): R|Derived| { | |
| super<R|Base|>() | |
| } | |
| } | |
| public open class A : R|kotlin/Any| { | |
| public constructor(foo: R|Base|): R|A| { | |
| super<R|kotlin/Any|>() | |
| } | |
| protected open val foo: R|Base| = R|<local>/foo| | |
| protected get(): R|Base| | |
| protected open fun bar(): R|Base| { | |
| ^bar R|/Base.Base|() | |
| } | |
| public final fun f(other: R|A|): R|kotlin/Unit| { | |
| R|<local>/other|.R|/A.foo| | |
| R|<local>/other|.R|/A.bar|() | |
| when (R|<local>/other|) { | |
| ($subj$ is R|B|) -> { | |
| R|<local>/other|.R|/A.foo| | |
| R|<local>/other|.R|/A.bar|() | |
| } | |
| } | |
| } | |
| } | |
| public final class B : R|A| { | |
| public constructor(foo: R|Derived|): R|B| { | |
| super<R|A|>(R|<local>/foo|) | |
| } | |
| protected open override val foo: R|Derived| = R|<local>/foo| | |
| protected get(): R|Derived| | |
| protected open override fun bar(): R|Derived| { | |
| ^bar R|/Derived.Derived|() | |
| } | |
| } |