scala better monadic for无法去除元组的糖

4uqofj5v  于 2023-02-08  发布在  Scala
关注(0)|答案(1)|浏览(173)

我正尝试将better monadic for合并到一个项目中,因为它可爱的元组去糖功能目前似乎不起作用。我有:

  • 添加插件在我的plugins.sbtaddCompilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1").
  • 我已经将scala版本从2.13.2降级到2.13.1
  • 我已经更新了我的代码,如下所示,以利用如下所示的去糖

我有一个带有以下签名的helper方法:
def helper(shifts: List[Shift], taskMap: Map[String, Double]): F[(Int, Int)]
其名称如下:(offProd, prod) <- helper(shifts, taskMap)
没有脱糖,它编译得很好。
我使用的是1.5.8版本的sbt,我已经在metals中重新编译并重新加载了这个项目,以确保编译器插件被包含在内,此时我唯一能想到的是,也许这个插件在我的build. sbt中没有被自动拾取,因为我还没有更新它以使用plugins.sbt,因为我假设sbt会为你做这件事。

5anewei6

5anewei61#

事实证明我并没有通过plugins.sbt将插件导入到我的项目中,正如luis(即G.O.A.T.)在评论中指出的那样,better-monadic-for是一个编译器插件,而不是sbt插件,必须添加到您的build.sbt中。
我在build.sbt中将插件添加到我的库依赖项中,而不是工作:
compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1")
(例如)

libraryDependencies ++= Seq(
  "io.circe" %% "circe-core" % "0.14.1",
  //... more typelevel libraries here
  compilerPlugin("com.olegpy" %% "better-monadic-for" % "0.3.1"),
)

相关问题