diff options
-rw-r--r-- | src/compiler/scala/tools/nsc/Reporting.scala | 9 | ||||
-rw-r--r-- | test/files/pos/t8410.flags | 1 | ||||
-rw-r--r-- | test/files/pos/t8410.scala | 15 |
3 files changed, 22 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/Reporting.scala b/src/compiler/scala/tools/nsc/Reporting.scala index b164f395fe..6ae5ec3c1d 100644 --- a/src/compiler/scala/tools/nsc/Reporting.scala +++ b/src/compiler/scala/tools/nsc/Reporting.scala @@ -32,14 +32,17 @@ trait Reporting extends scala.reflect.internal.Reporting { self: ast.Positions w def warn(pos: Position, msg: String) = if (option) reporter.warning(pos, msg) else if (!(warnings contains pos)) warnings += ((pos, msg)) - def summarize() = - if (warnings.nonEmpty && (option.isDefault || settings.fatalWarnings)) { + def summarize() = { + def turnedOff = option.isSetByUser && !option + def moreInfos = option.isDefault || settings.fatalWarnings + if (warnings.nonEmpty && !turnedOff && moreInfos) { val numWarnings = warnings.size val warningVerb = if (numWarnings == 1) "was" else "were" val warningCount = countElementsAsString(numWarnings, s"$what warning") reporter.warning(NoPosition, s"there $warningVerb $warningCount; re-run with ${option.name} for details") } + } } // This change broke sbt; I gave it the thrilling name of uncheckedWarnings0 so @@ -105,4 +108,4 @@ trait Reporting extends scala.reflect.internal.Reporting { self: ast.Positions w reporter.error(NoPosition, "No warnings can be incurred under -Xfatal-warnings.") } } -}
\ No newline at end of file +} diff --git a/test/files/pos/t8410.flags b/test/files/pos/t8410.flags new file mode 100644 index 0000000000..dcd5943c2f --- /dev/null +++ b/test/files/pos/t8410.flags @@ -0,0 +1 @@ +-optimise -Xfatal-warnings -deprecation:false -Yinline-warnings:false diff --git a/test/files/pos/t8410.scala b/test/files/pos/t8410.scala new file mode 100644 index 0000000000..4d862311fa --- /dev/null +++ b/test/files/pos/t8410.scala @@ -0,0 +1,15 @@ + +object Test extends App { + @deprecated("","") def f = 42 + @deprecated("","") def z = f + def g = { @deprecated("","") def _f = f ; _f } // warns in 2.11.0-M8 + def x = { @deprecated("","") class X { def x = f } ; new X().x } // warns in 2.11.0-M8 + Console println g + Console println f // warns + + @deprecated("","") trait T + object T extends T { def t = f } + Console println T.t + + def k = List(0).dropWhile(_ < 1) // inlining warns doubly +} |