summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan@lightbend.com>2016-08-11 11:33:44 -0700
committerGitHub <noreply@github.com>2016-08-11 11:33:44 -0700
commit43d22678c251c183ca47e1bf99b41a55d74914b4 (patch)
treed1f62184b82d30db113913e3e68c701dc19359ff /src
parent04d4b634d816e19d8430175eb33d02d97261dd10 (diff)
parent7548d2265361ec605b67aaae50ef6504937da68c (diff)
downloadscala-43d22678c251c183ca47e1bf99b41a55d74914b4.tar.gz
scala-43d22678c251c183ca47e1bf99b41a55d74914b4.tar.bz2
scala-43d22678c251c183ca47e1bf99b41a55d74914b4.zip
Merge pull request #5272 from som-snytt/issue/8829
SI-8829 Defaultly scala -feature -deprecation
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/Reporting.scala10
-rw-r--r--src/reflect/scala/reflect/internal/Reporting.scala9
-rw-r--r--src/repl/scala/tools/nsc/MainGenericRunner.scala5
-rw-r--r--src/repl/scala/tools/nsc/interpreter/ReplReporter.scala3
4 files changed, 22 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/Reporting.scala b/src/compiler/scala/tools/nsc/Reporting.scala
index 01c583bea3..5635e678de 100644
--- a/src/compiler/scala/tools/nsc/Reporting.scala
+++ b/src/compiler/scala/tools/nsc/Reporting.scala
@@ -43,19 +43,19 @@ trait Reporting extends scala.reflect.internal.Reporting { self: ast.Positions w
else sinceAndAmount += ((since, 1))
}
val deprecationSummary = sinceAndAmount.size > 1
- sinceAndAmount.foreach { case (since, amount) =>
- val numWarnings = amount
+ sinceAndAmount.foreach { case (since, numWarnings) =>
val warningsSince = if (since.nonEmpty) s" (since $since)" else ""
val warningVerb = if (numWarnings == 1) "was" else "were"
val warningCount = countElementsAsString(numWarnings, s"$what warning")
- val rerun = if (deprecationSummary) "" else s"; re-run with ${setting.name} for details"
- reporter.warning(NoPosition, s"there $warningVerb $warningCount$warningsSince$rerun")
+ val rerun = if (deprecationSummary) "" else reporter.rerunWithDetails(setting, setting.name)
+ reporter.warning(NoPosition, s"there ${warningVerb} ${warningCount}${warningsSince}${rerun}")
}
if (deprecationSummary) {
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 in total; re-run with ${setting.name} for details")
+ val rerun = reporter.rerunWithDetails(setting, setting.name)
+ reporter.warning(NoPosition, s"there ${warningVerb} ${warningCount} in total${rerun}")
}
}
}
diff --git a/src/reflect/scala/reflect/internal/Reporting.scala b/src/reflect/scala/reflect/internal/Reporting.scala
index 27fda9a7d4..c1f0140479 100644
--- a/src/reflect/scala/reflect/internal/Reporting.scala
+++ b/src/reflect/scala/reflect/internal/Reporting.scala
@@ -7,6 +7,8 @@ package scala
package reflect
package internal
+import settings.MutableSettings
+
/** Provides delegates to the reporter doing the actual work.
* All forwarding methods should be marked final,
* but some subclasses out of our reach still override them.
@@ -105,6 +107,13 @@ abstract class Reporter {
/** Finish reporting: print summaries, release resources. */
def finish(): Unit = ()
+
+ /** After reporting, offer advice on getting more details. */
+ def rerunWithDetails(setting: MutableSettings#Setting, name: String): String =
+ setting.value match {
+ case b: Boolean if !b => s"; re-run with ${name} for details"
+ case _ => s"; re-run enabling ${name} for details, or try -help"
+ }
}
// TODO: move into superclass once partest cuts tie on Severity
diff --git a/src/repl/scala/tools/nsc/MainGenericRunner.scala b/src/repl/scala/tools/nsc/MainGenericRunner.scala
index 747b684293..a09e797e07 100644
--- a/src/repl/scala/tools/nsc/MainGenericRunner.scala
+++ b/src/repl/scala/tools/nsc/MainGenericRunner.scala
@@ -71,6 +71,11 @@ class MainGenericRunner {
Right(false)
case _ =>
// We start the repl when no arguments are given.
+ // If user is agnostic about both -feature and -deprecation, turn them on.
+ if (settings.deprecation.isDefault && settings.feature.isDefault) {
+ settings.deprecation.value = true
+ settings.feature.value = true
+ }
Right(new interpreter.ILoop process settings)
}
diff --git a/src/repl/scala/tools/nsc/interpreter/ReplReporter.scala b/src/repl/scala/tools/nsc/interpreter/ReplReporter.scala
index e6f5a4089e..3a0b69f41e 100644
--- a/src/repl/scala/tools/nsc/interpreter/ReplReporter.scala
+++ b/src/repl/scala/tools/nsc/interpreter/ReplReporter.scala
@@ -68,4 +68,7 @@ class ReplReporter(intp: IMain) extends ConsoleReporter(intp.settings, Console.i
else super.displayPrompt()
}
+ override def rerunWithDetails(setting: reflect.internal.settings.MutableSettings#Setting, name: String) =
+ s"; for details, enable `:setting $name' or `:replay $name'"
+
}