4

この質問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)されます。

何が起きてる?

4

1 に答える 1