Report 'nested class accessed via instance reference' error
This commit is contained in:
@@ -23,6 +23,6 @@ class Outer {
|
||||
|
||||
fun Outer.foo() {
|
||||
Outer()
|
||||
<!UNRESOLVED_REFERENCE!>Nested<!>()
|
||||
<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>Nested<!>()
|
||||
Inner()
|
||||
}
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
trait N { fun foo() = 1 }
|
||||
|
||||
class WithClassObject {
|
||||
class object {}
|
||||
|
||||
class Nested()
|
||||
class NestedWithClassObject { class object : N }
|
||||
enum class NestedEnum { A }
|
||||
object NestedObj : N { fun invoke() = 1 }
|
||||
}
|
||||
|
||||
class WithoutClassObject {
|
||||
class Nested()
|
||||
class NestedWithClassObject { class object : N }
|
||||
enum class NestedEnum { A }
|
||||
object NestedObj : N { fun invoke() = 1 }
|
||||
}
|
||||
|
||||
object Obj {
|
||||
class Nested()
|
||||
class NestedWithClassObject { class object : N }
|
||||
enum class NestedEnum { A }
|
||||
object NestedObj : N { fun invoke() = 1 }
|
||||
}
|
||||
|
||||
fun test(with: WithClassObject, without: WithoutClassObject, obj: Obj) {
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>Nested<!>()
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>()
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>.foo()
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedEnum<!>.A
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>()
|
||||
with.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>.foo()
|
||||
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>Nested<!>()
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>()
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>.foo()
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedEnum<!>.A
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>()
|
||||
without.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>.foo()
|
||||
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>Nested<!>()
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>()
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedWithClassObject<!>.foo()
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedEnum<!>.A
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>()
|
||||
obj.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>NestedObj<!>.foo()
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
//no nested class access via instance reference error
|
||||
fun test() {
|
||||
A.f(<!TYPE_MISMATCH!>""<!>)
|
||||
}
|
||||
|
||||
class A() {
|
||||
class object {
|
||||
object f {
|
||||
fun invoke(i: Int) = i
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -6,7 +6,7 @@ class A {
|
||||
}
|
||||
|
||||
fun A.main() {
|
||||
::<!UNRESOLVED_REFERENCE!>Nested<!>
|
||||
::<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>Nested<!>
|
||||
val y = A::Nested
|
||||
|
||||
y : KFunction0<A.Nested>
|
||||
|
||||
Reference in New Issue
Block a user