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

8
在Scala中,使用-Ywarn-unused编译时,即使在隐式作用域中使用了隐式参数,它们也被标记为从未被使用。
例如:
class MyClass(implicit: ec: ExecutionContext) {
  def fun = Future.successful("hi").map(_.length)
}

如果使用-Xfatal-warnings参数运行时,这将会成为一个问题。

有没有一种方法可以向编译器暗示这些参数确实被使用了?如果没有,是否有其他方法可以确保不会编译未使用的参数和声明的代码?


2
并非Future中的每个方法都需要ExecutionContext。尝试使用Future.apply替换successful - Krzysztof Atłasik
@LuisMiguelMejíaSuárez 很好,那正是我在寻找的。请继续将其提交为答案! - kag0
1个回答

14

同时使用 -Ywarn-macros:after 标志。它告诉编译器在宏扩展后进行未使用检查,通常可以解决未使用的隐式参数问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接