Files
kotlin-fork/compiler/testData/diagnostics/tests/inner/nestedClassAccessedViaInstanceReference.fir.kt
T
Denis Zharkov a5545b96cb FIR: Fix ambiguity between current Companion and one from supertypes
Companion as qualifier should be found at static scope not a member one
2020-11-10 14:26:54 +03:00

54 lines
2.2 KiB
Kotlin
Vendored

interface N { fun foo() = 1 }
class WithClassObject {
companion object {}
class Nested()
class NestedWithClassObject { companion object : N }
enum class NestedEnum { A }
object NestedObj : N { operator fun invoke() = 1 }
}
class WithoutClassObject {
class Nested()
class NestedWithClassObject { companion object : N }
enum class NestedEnum { A }
object NestedObj : N { operator fun invoke() = 1 }
}
object Obj {
class Nested()
class NestedWithClassObject { companion object : N }
enum class NestedEnum { A }
object NestedObj : N { operator fun invoke() = 1 }
}
fun test(with: WithClassObject, without: WithoutClassObject, obj: Obj) {
with.<!UNRESOLVED_REFERENCE!>Nested<!>()
with.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>
with.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>()
with.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
with.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.<!UNRESOLVED_REFERENCE!>A<!>
with.<!UNRESOLVED_REFERENCE!>NestedObj<!>
with.<!UNRESOLVED_REFERENCE!>NestedObj<!>()
with.<!UNRESOLVED_REFERENCE!>NestedObj<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
without.<!UNRESOLVED_REFERENCE!>Nested<!>()
without.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>
without.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>()
without.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
without.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.<!UNRESOLVED_REFERENCE!>A<!>
without.<!UNRESOLVED_REFERENCE!>NestedObj<!>
without.<!UNRESOLVED_REFERENCE!>NestedObj<!>()
without.<!UNRESOLVED_REFERENCE!>NestedObj<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
obj.<!UNRESOLVED_REFERENCE!>Nested<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>
obj.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedWithClassObject<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedEnum<!>.<!UNRESOLVED_REFERENCE!>A<!>
obj.<!UNRESOLVED_REFERENCE!>NestedObj<!>
obj.<!UNRESOLVED_REFERENCE!>NestedObj<!>()
obj.<!UNRESOLVED_REFERENCE!>NestedObj<!>.<!UNRESOLVED_REFERENCE!>foo<!>()
}