この質問とSI-7046を考える と、これは私が期待したものではありません。
scalac test.scala && scala Test
次の Scala 2.11.6 では、空が出力されますSet()
。
trait Foo
case class Bar() extends Foo
case class Baz() extends Foo
object Test {
def main(args: Array[String]) {
import scala.reflect.runtime.universe._
println( typeOf[Foo].typeSymbol.asClass.knownDirectSubclasses )
}
}
ただし、に変更trait Foo
するとsealed trait Foo
、期待どおりに印刷Set(class Bar, class Baz)
されます。
何が起きてる?