【问题标题】:Scala implicit parameters are marked as unused by the compilerScala 隐式参数被编译器标记为未使用
【发布时间】:2019-05-30 03:13:52
【问题描述】:

在使用-Ywarn-unused 编译的scala 中,隐式参数被标记为从未使用过,即使它们在隐式范围内使用也是如此。

例如

class MyClass(implicit: ec: ExecutionContext) {
  def fun = Future.successful("hi").map(_.length)
}

这在使用-Xfatal-warnings 运行时也会出现问题。

有没有办法向编译器提示这些参数实际上已被使用?如果没有,是否有其他方法可以确保代码不会使用未使用的参数和声明进行编译?

【问题讨论】:

  • 并非Future 的每个方法都需要ExecutionContext。尝试将successful 替换为Future.apply
  • @LuisMiguelMejíaSuárez 完美,这正是我想要的。继续提交作为答案!

标签: scala


【解决方案1】:

也使用-Ywarn-macros:after 标志。它基本上告诉编译器在宏扩展之后进行未使用的检查,这通常可以解决未使用的隐式问题。

【讨论】:

    猜你喜欢
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多