Files
kotlin/compiler/testData/diagnostics/tests/objects/localObjects.kt
Svetlana Isakova 9d366cb896 Prohibit local objects and enum classes
#KT-5402 Fixed
  #KT-4838 Fixed

Resolve type of object inside local object as special, not supertype('Any').
Changed visibility of constructor of anonymous object to 'internal' to be able to resolve the following:
fun box(): String {
    var foo = object {
        val bar = object {
            val baz = "ok"
        }
    }
    return foo.bar.baz
}
The containing declaration of property initializers is constructor, so 'baz' was invisible inside private constructor.
2014-09-01 12:32:52 +04:00

15 lines
374 B
Kotlin

// !DIAGNOSTICS: -UNUSED_VARIABLE
fun foo() {
<!LOCAL_OBJECT_NOT_ALLOWED!>object a<!> {}
val b = object {
<!LOCAL_OBJECT_NOT_ALLOWED!>object c<!> {}
}
b.<!NESTED_CLASS_ACCESSED_VIA_INSTANCE_REFERENCE!>c<!>
class A {
<!LOCAL_OBJECT_NOT_ALLOWED!>object d<!> {}
}
val f = {
<!LOCAL_OBJECT_NOT_ALLOWED!>object e<!> {}
}
}