1

次のコードを最新の dotty (0.9.0-RC1) でコンパイルすることはできません。

object UnionMapping {

  private def parse(string: String): Int | Double = {
    if(string.contains("."))
      string.toDouble
    else
      string.toInt
  }

  def test_number = {
    val strings: Seq[String] = Seq("123", "2.0", "42")
    // Works
    val asdf: Seq[AnyVal] = strings.map(parse(_))
    // Fails to compile
    val union: Seq[Int | Double] = strings.map(parse(_))
  }

}

なぜそれが失敗したのか、そしてそれがうまくいくと期待されているのかどうかについて、誰かが洞察を持っていますか?

4

1 に答える 1