According to this it is possible to suppress any warnings of unused parameters.
However, I think suppressing all the cases can actually hide bugs, so I want a more granular way for suppressing those.
There is a definite use case, where this warning in most cases is meaningless, I will explain it via an example.
For example the following hypothetical piece of code of a proxy:
trait HeadersGenerator {
def generateHeaders(request: Request): Seq[(String, String)]
}
class HeaderMutator extends HeadersGenerator {
override def generateHeaders(request: Request): Seq[(String, String)] = {
val oldValue = request.getHeader("SomeHeader")
Seq("SomeHeader" -> s"$oldValue - new")
}
}
class ConstantHeaderGenerator extends HeadersGenerator {
// here the 'request' parameter is not in use, and needed to be suppressed -
// it is not interesting that we do not use it here, since we
// don't have anything to do with that because it is inherited
override def generateHeaders(request: Request): Seq[(String, String)] = {
Seq("GeneratedHeader" -> "something")
}
// here the 'unused' parameter is interesting, and I would like to see a warning
private def shouldWarn(unused: String) {
// the parameter is not un use here
}
}
// somewhere in code
val headers = Seq(
new HeadersMutator,
new ConstantHeaderGenerator
).flatMap(_.generateHeaders(request))