从scala 2.9升级到2.13.2时出现类型不匹配错误

时间:2020-05-31 18:44:30

标签: scala

我最近恢复了用scala 2.9编写的旧库,并使用scala 2.13.2创建了一个新的scala项目。

我收到如下错误:

type mismatch;
found   : scala.collection.mutable.Buffer[Any]
[error]  required: Seq[Any]

在2.9到2.13.2之间是否存在不涉及隐式强制转换序列或可能解决许多此类编译错误的问题的特定更改?

我必须在许多函数返回语句中添加.toSeq,这些语句是Buffer [Any]的val,需要将它们作为争论传递给预期为Sequence的函数。

2 个答案:

答案 0 :(得分:7)

在过去7年多的时间里发生了很多事情(包括对馆藏库的重写)。

如果添加.toSeq解决了您的问题,那就去解决它。

如果您想知道到底发生了什么更改,请尝试逐个版本升级:先升级到scala-2.10。,然后再升级到2.11。,再升级到2.12。*,然后再升级到2.13.2。

在每次升级时,您可能会看到弃用警告。在升级到下一版本之前,请先对其进行修复。

答案 1 :(得分:4)

勇敢,但也许不好的形式来打扰死者。不过,可以将mutable.Buffer作为mutable.Seq而不是默认情况下Seq的{​​{1}}传递。考虑

immutable.Seq