【问题标题】:bad option: '-Yliteral-types' SBT错误选项:'-Yliteral-types' SBT
【发布时间】:2019-01-10 19:11:02
【问题描述】:

我有以下 scala build.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 here 找到。只需要将 scalaVersion 更新为 2.12.8 并注释掉这个 section。

如果我删除scalaVersion := "2.12.8"并添加以下内容,则编译成功。

inThisBuild {
  Seq(
    scalaOrganization := "org.typelevel",
    scalaVersion := "2.12.4-bin-typelevel-4"
  )
}

当我用谷歌搜索时,看起来 -Yliteral-types 选项已根据此 issue 从 scala 中删除。

但是我已经创建了一个带有scala version 2.12.8 的项目,并启用了-Yliteral-types 标志here,它工作正常。

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    是的,您必须使用 Dotty 或 Typelevel 编译器来访问您发现的此功能。虽然 SIP-23 的文档没有明确说明这一点,但您在上面提供的链接与文档相结合。

    【讨论】:

    【解决方案2】:

    带有 Scala 插件的 IntelliJ IDEA 显示消息:

    对于文字类型支持,请使用 Scala 2.13 或 Typelevel Scala -Yliteral-types 编译器标志。

    【讨论】:

      猜你喜欢
      • 2019-07-06
      • 2017-01-02
      • 2014-08-26
      • 2017-12-22
      • 2021-06-08
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 2022-12-15
      相关资源
      最近更新 更多