扩大联合类型已在此处讨论,但我似乎无法找到以下案例的答案
让我们从以下内容开始
val x = List(1, 2, "a")
这个异构列表的推断List[Any]
就像在 Scala 2 中一样
然而以下
val x2 = List(List(1, 2), Vector("a", "b"))
被推断为List[scala.collection.immutable.AbstractSeq[Int | String]]
这是相当令人困惑的行为。为什么在一种情况下推断出两种不相交类型的 LUB,Any
而在另一种情况下推断出联合类型?
如果这只是一个设计决策,是否有任何应该注意的情况?