Skip to content

Commit 34e465d

Browse files
committed
RemoveUnused.params on Scala 3 Next
scala/scala3#20894
1 parent 9303d7d commit 34e465d

File tree

6 files changed

+27
-7
lines changed

6 files changed

+27
-7
lines changed

docs/rules/RemoveUnused.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ On Scala 2.13.15+, canonical patterns (vars with the same names as the
9090
attributes) do not trigger unused warnings, so the input above will not
9191
be rewritten. See https://github.com/scala/bug/issues/13035.
9292

93-
### Remove unused function parameters (Scala 2 only)
93+
### Remove unused function parameters
9494

9595
```scala
9696
// before

scalafix-rules/src/main/scala/scalafix/internal/rule/RemoveUnused.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,10 @@ class RemoveUnused(config: RemoveUnusedConfig)
9696
isUnusedPattern += diagnostic.position
9797
} else if (
9898
config.params &&
99-
(msg.startsWith("parameter") && msg.endsWith("is never used"))
99+
(
100+
msg.startsWith("parameter") && msg.endsWith("is never used") ||
101+
msg == "unused explicit parameter"
102+
)
100103
) {
101104
isUnusedParam += diagnostic.position
102105
}
@@ -189,7 +192,7 @@ class RemoveUnused(config: RemoveUnusedConfig)
189192
case Term.Function(params, _) =>
190193
params.collect {
191194
case param @ Term.Param(_, name, _, _)
192-
if isUnusedParam(param.pos) =>
195+
if isUnusedParam(param.pos) || isUnusedParam(name.pos) =>
193196
Patch.replaceTree(name, "_")
194197
}.asPatch
195198
}.asPatch

scalafix-tests/input/src/main/scala-2/test/removeUnused/RemoveUnusedParams.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ rule = RemoveUnused
33
*/
44
package test.removeUnused
55

6-
// Not available as of Scala 3.4.1
7-
// https://github.com/scalacenter/scalafix/issues/1937
86
object UnusedParams {
97
val f: String => Unit = unused => println("f")
108
val ff = (unused: String) => println("f")
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
/*
2+
rule = RemoveUnused
3+
*/
4+
package test.removeUnused
5+
6+
object UnusedParams {
7+
val f: String => Unit = unused => println("f")
8+
val ff = (unused: String) => println("f")
9+
val fs = (used: String, unused: Long) => println(used)
10+
def g(x: String => Unit): Unit = ???
11+
g{implicit string => println("g")}
12+
}

scalafix-tests/output/src/main/scala-2/test/removeUnused/RemoveUnusedParams.scala

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package test.removeUnused
22

3-
// Not available as of Scala 3.4.1
4-
// https://github.com/scalacenter/scalafix/issues/1937
53
object UnusedParams {
64
val f: String => Unit = _ => println("f")
75
val ff = (_: String) => println("f")
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package test.removeUnused
2+
3+
object UnusedParams {
4+
val f: String => Unit = _ => println("f")
5+
val ff = (_: String) => println("f")
6+
val fs = (used: String, _: Long) => println(used)
7+
def g(x: String => Unit): Unit = ???
8+
g{implicit string => println("g")}
9+
}

0 commit comments

Comments
 (0)