Skip to content

Commit

Permalink
Mention type of unused value and mitigation
Browse files Browse the repository at this point in the history
  • Loading branch information
som-snytt committed Jul 27, 2022
1 parent 68080c2 commit 2918434
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
Expand Up @@ -1788,7 +1788,6 @@ abstract class RefChecks extends Transform {
)
// begin checkInterestingResultInStatement
settings.warnNonUnitStatement.value && checkInterestingShapes(t) && {
val msg = "unused value"
val where = t match {
case Block(_, res) => res
case If(_, thenpart, Literal(Constant(()))) =>
Expand All @@ -1798,6 +1797,7 @@ abstract class RefChecks extends Transform {
}
case _ => t
}
def msg = s"unused value of type ${where.tpe} (add `: Unit` to discard silently)"
refchecksWarning(where.pos, msg, WarningCategory.OtherPureStatement)
true
}
Expand Down
22 changes: 11 additions & 11 deletions test/files/neg/nonunit-statement.check
@@ -1,37 +1,37 @@
nonunit-statement.scala:13: warning: unused value
nonunit-statement.scala:13: warning: unused value of type scala.concurrent.Future[Int] (add `: Unit` to discard silently)
improved // warn
^
nonunit-statement.scala:20: warning: unused value
nonunit-statement.scala:20: warning: unused value of type String (add `: Unit` to discard silently)
new E().toString // warn
^
nonunit-statement.scala:26: warning: unused value
nonunit-statement.scala:26: warning: unused value of type scala.concurrent.Future[Int] (add `: Unit` to discard silently)
Future(42) // warn
^
nonunit-statement.scala:30: warning: unused value
nonunit-statement.scala:30: warning: unused value of type K (add `: Unit` to discard silently)
copy() // warn
^
nonunit-statement.scala:37: warning: unused value
nonunit-statement.scala:37: warning: unused value of type List[Int] (add `: Unit` to discard silently)
27 +: xs // warn
^
nonunit-statement.scala:44: warning: a pure expression does nothing in statement position; multiline expressions may require enclosing parentheses
null // warn for purity
^
nonunit-statement.scala:79: warning: unused value
nonunit-statement.scala:79: warning: unused value of type Int (add `: Unit` to discard silently)
g // warn block statement
^
nonunit-statement.scala:86: warning: unused value
nonunit-statement.scala:86: warning: unused value of type Int (add `: Unit` to discard silently)
g // warn
^
nonunit-statement.scala:84: warning: unused value
nonunit-statement.scala:84: warning: unused value of type Int (add `: Unit` to discard silently)
g // warn
^
nonunit-statement.scala:96: warning: unused value
nonunit-statement.scala:96: warning: unused value of type Int (add `: Unit` to discard silently)
if (b) { // warn, at least one branch looks interesting
^
nonunit-statement.scala:116: warning: unused value
nonunit-statement.scala:116: warning: unused value of type scala.collection.mutable.LinkedHashSet[A] (add `: Unit` to discard silently)
set += a // warn because cannot know whether the `set` was supposed to be consumed or assigned
^
nonunit-statement.scala:146: warning: unused value
nonunit-statement.scala:146: warning: unused value of type String (add `: Unit` to discard silently)
while (it.hasNext) it.next() // warn
^
error: No warnings can be incurred under -Werror.
Expand Down

0 comments on commit 2918434

Please sign in to comment.