Files
kotlin-fork/compiler/testData/diagnostics/testsWithStdLib/CallCompanionProtectedNonStatic.fir.kt
T
Dmitriy Novozhilov f283f2db43 [FIR] Improve diagnostic reporting & don't use error symbol for candidate if possible
Also introduce few new diagnostics:
- NONE_APPLICABLE more many inapplicable candidates
- HIDDEN for visible candidates
2020-07-28 20:46:56 +03:00

94 lines
1.8 KiB
Kotlin
Vendored

open class VeryBase {
protected fun baz() {}
}
open class Base {
protected fun foo() {
bar() // Ok
baz() // Ok
}
inner class Inner {
fun fromInner() {
foo() // Ok
bar() // Ok
gav() // Ok
baz() // Ok
}
}
class NestedDerived : Base() {
fun fromNestedDerived() {
foo() // Ok
bar() // Ok
gav() // Ok
baz() // Ok
}
}
companion object : VeryBase() {
var prop = 42
protected set
protected fun bar() {}
@JvmStatic protected fun gav() {}
class Nested {
fun fromNested() {
bar() // Ok
gav() // Ok
}
}
}
}
class Derived : Base() {
fun test() {
foo() // Ok
gav() // Ok
bar()
baz()
prop = 0
}
inner class DerivedInner {
fun fromDerivedInner() {
foo() // Ok
gav() // Ok
bar()
baz()
prop = 0
}
}
companion object {
fun test2() {
gav() // Ok
bar()
baz()
prop = 0
}
}
}
class Other {
fun test(base: Base, derived: Derived) {
base.<!HIDDEN!>foo<!>()
base.<!UNRESOLVED_REFERENCE!>gav<!>()
base.<!UNRESOLVED_REFERENCE!>bar<!>()
derived.<!HIDDEN!>foo<!>()
derived.<!UNRESOLVED_REFERENCE!>gav<!>()
derived.<!UNRESOLVED_REFERENCE!>bar<!>()
}
}
fun top(base: Base, derived: Derived) {
base.<!HIDDEN!>foo<!>()
base.<!UNRESOLVED_REFERENCE!>bar<!>()
base.<!UNRESOLVED_REFERENCE!>gav<!>()
derived.<!HIDDEN!>foo<!>()
derived.<!UNRESOLVED_REFERENCE!>bar<!>()
derived.<!UNRESOLVED_REFERENCE!>gav<!>()
}