class A { class B { class C inner class D trait T { trait A class B } companion object {} } inner class I trait T { trait A class B companion object {} } enum class E { X Y companion object {} } companion object {} } trait T { class B { class C inner class D trait T { trait A class B } companion object {} } trait T { trait A class B companion object {} } enum class E { X Y companion object {} } companion object {} } enum class E { X Y class B { class C inner class D trait T { trait A class B } companion object {} } inner class I trait T { trait A class B companion object {} } enum class E { X Y companion object {} } companion object {} }