7056ad5325
Even though SO may not be correct overrides sometimes, it feels more natural to treat fake overrides as... well, "overrides". And without it we'd need to make the code in `FirOverrideChecker` less intuitive.
44 lines
946 B
Plaintext
Vendored
44 lines
946 B
Plaintext
Vendored
FILE: simple.kt
|
|
public open class A : R|kotlin/Any| {
|
|
public constructor(): R|A| {
|
|
super<R|kotlin/Any|>()
|
|
}
|
|
|
|
public open fun foo(): R|A| {
|
|
^foo this@R|/A|
|
|
}
|
|
|
|
public open fun bar(): R|A| {
|
|
^bar this@R|/A|
|
|
}
|
|
|
|
public open fun buz(p: R|A|): R|A| {
|
|
^buz this@R|/A|
|
|
}
|
|
|
|
}
|
|
public final class B : R|A| {
|
|
public constructor(): R|B| {
|
|
super<R|A|>()
|
|
}
|
|
|
|
public open override fun foo(): R|B| {
|
|
^foo this@R|/B|
|
|
}
|
|
|
|
public final override fun bar(): R|B| {
|
|
^bar this@R|/B|
|
|
}
|
|
|
|
public open override fun buz(p: R|B|): R|B| {
|
|
^buz this@R|/B|
|
|
}
|
|
|
|
public final fun test(): R|kotlin/Unit| {
|
|
this@R|/B|.R|/B.foo|()
|
|
this@R|/B|.R|/B.bar|()
|
|
<Ambiguity: buz, [/B.buz, /A.buz]>#()
|
|
}
|
|
|
|
}
|