// See Test.scala for comments trait T { def f = 1 } class A { // member class class B // member trait trait C // member object object D { class B trait C object D new T { } (() => "-1") def f = { class KB } } // anonymous class, not a member new T { } // anonymous function, not a member (() => "1") def f = { class E trait F object G new T { } (() => "2") if (new Object().hashCode == 1) { class H trait I object J new T { } (() => "3") } else { () } } { class K trait L object M new T { } (() => "4") } val x = { class N trait O object P new T { } (() => "5") } def this(x: Int) { this() class Q trait R object S new T { } (() => () => "5") } } object AO { class B trait C object D new T { } (() => "1") } trait AT { class B trait C object D new T { } (() => "1") }