Skip to content

Commit 4a5ee8c

Browse files
authored
Merge pull request scala#8380 from martijnhoekstra/morebetter
give better suggestion for unused pattern
2 parents 1200fe4 + 6269185 commit 4a5ee8c

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

src/compiler/scala/tools/nsc/typechecker/TypeDiagnostics.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -709,7 +709,7 @@ trait TypeDiagnostics {
709709
}
710710
if (settings.warnUnusedPatVars) {
711711
for (v <- unusedPrivates.unusedPatVars)
712-
typer.context.warning(v.pos, s"pattern var ${v.name} in ${v.owner} is never used; `${v.name}@_` suppresses this warning")
712+
typer.context.warning(v.pos, s"pattern var ${v.name} in ${v.owner} is never used: use a wildcard `_` or suppress this warning with `${v.name}@_`")
713713
}
714714
if (settings.warnUnusedParams) {
715715
def isImplementation(m: Symbol): Boolean = {

test/files/neg/unused.check

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
unused.scala:7: warning: pattern var a in value patvars is never used: use a wildcard `_` or suppress this warning with `a@_`
2+
case C(a, _, _, _) => 1
3+
^
4+
unused.scala:8: warning: pattern var b in value patvars is never used: use a wildcard `_` or suppress this warning with `b@_`
5+
case C(_, b, c@_, _) => 2
6+
^
7+
unused.scala:9: warning: pattern var a in value patvars is never used: use a wildcard `_` or suppress this warning with `a@_`
8+
case C(a, b@_, c, d@_) => 3
9+
^
10+
unused.scala:9: warning: pattern var c in value patvars is never used: use a wildcard `_` or suppress this warning with `c@_`
11+
case C(a, b@_, c, d@_) => 3
12+
^
13+
unused.scala:10: warning: pattern var e in value patvars is never used: use a wildcard `_` or suppress this warning with `e@_`
14+
case e => 4
15+
^
16+
unused.scala:8: warning: unreachable code
17+
case C(_, b, c@_, _) => 2
18+
^
19+
error: No warnings can be incurred under -Werror.
20+
6 warnings found
21+
one error found

test/files/neg/unused.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// scalac: -Wunused:patvars -Werror
2+
3+
case class C(a: Int, b: Int, c: Int, d: Int)
4+
5+
object Test {
6+
val patvars = C(1, 2, 3, 4) match {
7+
case C(a, _, _, _) => 1
8+
case C(_, b, c@_, _) => 2
9+
case C(a, b@_, c, d@_) => 3
10+
case e => 4
11+
}
12+
}

0 commit comments

Comments
 (0)