我正在开发一个使用 sbt
运行的 Scala 项目。我想使用 dotty
提供的联合类型。我在项目中使用 dotty
时遇到问题。
我这样做了:
- 添加了
./projects/plugins.sbt
和./projects/build.properties
,内容如 sbt-dotty 中所述. - 添加了
./projects/scalafix.sbt
和一个配置文件./.scalafix.conf
包含内容scalafixEnabled in ThisBuild := true
。这在 sbt-scalafix 中提供
现在,如果我编译该项目,我会得到一个巨大的列表,其中包含迁移警告
和诸如Member Not Found Error
、Ambiguous overload
之类的错误,并以 java.lang.AssertionError: no TypeBounds allowed
结尾。纠正每一个错误是避免这些错误的唯一方法吗?
在进行这些更改之前,项目运行良好(scalaVersion := 2.12.1)。谁能帮我让它发挥作用?
编辑: sbtVersion = 0.13.13
最佳答案
Dotty 目前处于试验阶段(pre-alpha,在撰写本文时尚未公开发布)。出现编译错误意味着:
- 您使用 sbt & dotty 编译项目的设置可能是正确的(这回答了问题?)
- 您的代码库可能会在 dotty 中引发新的错误
StackOverflow 不是讨论未发布软件中的错误的正确场所。如果您设法将问题最小化,请在 dotty issue tacker 上报告(或来聊天 gitter )。如果您有兴趣破解编译器,在这些早期阶段也有很多机会,我们总是非常欢迎外部贡献者!
即使这不是您问题的一部分,我也觉得有必要解决@JörgWMittag 评论。 Dotty 不是一种新的编程语言。长期目标是能够使用这两种编译器交叉编译 Scala 生态系统的大部分,就像 Scala 2.10/2.11/2.12 目前的情况一样。 Dotty 本身就是此类项目的一个示例,每个测试都使用 scalac
(当前默认)编译的编译器版本运行,并使用编译器的引导版本(dotty
使用 dotty
编译)。
此外,一个community-build目前正在设置基础设施。它是一个存储库,用于收集(分支)开源 Scala 项目,这些项目可以与 scalac
/dotty
交叉编译,用作编译器的附加测试基础设施。
关于scala - 如何在scala项目中使用dotty?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43312115/