Scala 隐式参数被编译器标记为未使用

kag*_*ag0 8 scala

在 scala 中编译时-Ywarn-unused,隐式参数被标记为从不使用,即使它们在隐式作用域中使用。

例如

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

这在运行时也是有问题的-Xfatal-warnings

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

Lui*_*rez 9

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