scala - 如何在scala项目中使用dotty?

标签 scala sbt dotty

我正在开发一个使用 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 ErrorAmbiguous 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/

相关文章:

scala - 编译 Play 应用程序时出现的问题

Scala - 使用匿名函数简写进行连续的 map() 调用

scala - Scala中的派生订单?

scala - Sbt:为什么它需要 Scala-lang 2.10.3?

scala - 如何在 dotty 中解压元组中的元素类型?

scala - 如何从 Visual Studio Code UI 执行 dotty 代码

Scala 3 - 在一阶类型上提取包装器元组和 InverseMap

scala - 如何让代码更通用

Scala 从 DSL 到函数的自然转换

scala - 线程 "main"中的异常 java.lang.NoSuchMethodError : scala. Product.$init$(Lscala/Product;)