From 22f98d5189b61200aaf11cec7a0a96d5cfa86a5e Mon Sep 17 00:00:00 2001 From: Som Snytt Date: Mon, 19 Sep 2016 00:46:17 -0700 Subject: SI-8040 Warn unused parameters One can `-Ywarn-unused:params` or more narrowly warn only for unused implicit parameters with `-Ywarn-unused:implicits`. Params includes constructor parameters. The settings for privates and locals are not yet distinguished. ``` $ skalac -Ywarn-unused:help Enable or disable specific `unused' warnings imports Warn if an import selector is not referenced. patvars Warn if a variable bound in a pattern is unused. privates Warn if a private member is unused. locals Warn if a local definition is unused. params Warn if a value parameter is unused. implicits Warn if an implicit parameter is unused. ``` --- test/files/neg/warn-unused-implicits.scala | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/files/neg/warn-unused-implicits.scala (limited to 'test/files/neg/warn-unused-implicits.scala') diff --git a/test/files/neg/warn-unused-implicits.scala b/test/files/neg/warn-unused-implicits.scala new file mode 100644 index 0000000000..54f924eac0 --- /dev/null +++ b/test/files/neg/warn-unused-implicits.scala @@ -0,0 +1,32 @@ + +trait InterFace { + /** Call something. */ + def call(a: Int, b: String, c: Double)(implicit s: String): Int +} + +trait BadAPI extends InterFace { + def f(a: Int, + b: String, + c: Double + )(implicit s: String): Int = { // warn + println(b + c) + a + } + @deprecated ("no warn in deprecated API", since="yesterday") + def g(a: Int, + b: String, + c: Double + )(implicit s: String): Int = { // no warn + println(b + c) + a + } + override def call(a: Int, + b: String, + c: Double + )(implicit s: String): Int = { // no warn, required by superclass + println(b + c) + a + } + + def i(implicit s: String, t: Int) = t // yes, warn +} -- cgit v1.2.3