scala - 错误选项:'-Yliteral-types' SBT
问题描述
我有以下 scalabuild.sbt
文件。
scalaVersion := "2.12.8"
val ccompileOptions = Seq(
"-unchecked",
"-deprecation",
"-language:_",
"-encoding", "UTF-8",
"-Ypartial-unification",
"-Xfatal-warnings",
"-Yliteral-types",
"-language:higherKinds"
)
scalacOptions ++= ccompileOptions
enablePlugins(TutPlugin)
tutTargetDirectory := baseDirectory.value
resolvers += Resolver.bintrayRepo("ovotech", "maven")
libraryDependencies ++= Seq(
"is.cir" %% "ciris-cats",
"is.cir" %% "ciris-cats-effect",
"is.cir" %% "ciris-core",
"is.cir" %% "ciris-enumeratum",
"is.cir" %% "ciris-refined"
).map(_ % "0.12.1")
libraryDependencies ++= Seq(
"org.http4s" %% "http4s-dsl",
"org.http4s" %% "http4s-blaze-server"
).map(_ % "0.19.0")
libraryDependencies ++= Seq(
"com.ovoenergy" %% "ciris-kubernetes" % "0.5" ,
"org.typelevel" %% "kittens" % "1.2.0",
"eu.timepit" %% "refined-cats" % "0.9.3"
)
该项目可以在 github 上找到。只需要更新 scalaVersion2.12.8
并注释掉这部分。
如果我删除scalaVersion := "2.12.8"
并添加以下内容,则编译成功。
inThisBuild {
Seq(
scalaOrganization := "org.typelevel",
scalaVersion := "2.12.4-bin-typelevel-4"
)
}
当我用谷歌搜索时,似乎-Yliteral-types
根据这个问题从 scala 中删除了选项。
但是我创建了一个带有scala 版本 2.12.8的项目,并在此处启用了该-Yliteral-types
标志,并且工作正常。
解决方案
是的,您必须使用 Dotty 或 Typelevel 编译器来访问您发现的此功能。虽然SIP-23的文档没有明确说明这一点,但您在上面提供的链接与文档相结合可以做到。
推荐阅读
- python - 我得到了烧瓶 sqlalchemyerror sqlalchemy.exc.InvalidRequestError: Multiple classes found for path
- php - 如何在 laravel 8 中禁用自动登录并重定向到带有成功消息的简单页面(注册后)
- python - 如何将函数应用于数据框列中的某些值
- django - Django "Join" 和 "count" - 在 psql 中很简单,在 Django 中不是那么简单
- javascript - 在 JavaScript 中用 Twitter 表情符号替换系统默认表情符号
- c# - OSX DOTNET 附加到进程
- android - 有没有办法在Android中将连拍照片分组
- java - 如何在 Java 中静音 Snackbar 的 Android 应用程序通知?
- python - 如何查找目录中的文件是否被其他用户使用
- flutter - 将变量从有状态小部件传递到状态