この質問と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)されます。
何が起きてる?