Skip to content

Commit ad25805

Browse files
committed
Prune -Ywarn aliased lint flags
Also update manual list of completions.
1 parent 7cb938b commit ad25805

File tree

5 files changed

+19
-53
lines changed

5 files changed

+19
-53
lines changed

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ lazy val macroAnnot = project.in(file("test") / "macro-annot")
611611
baseDirectory in Test := (baseDirectory in ThisBuild).value,
612612

613613
scalacOptions += "-Ymacro-annotations",
614-
scalacOptions += "-Ywarn-unused-import",
614+
scalacOptions += "-Ywarn-unused:imports",
615615
scalacOptions += "-Xfatal-warnings"
616616
)
617617

project/ScalaOptionParser.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ object ScalaOptionParser {
9191
"-Yoverride-objects", "-Yoverride-vars", "-Ypatmat-debug", "-Yno-adapted-args", "-Ypos-debug", "-Ypresentation-debug",
9292
"-Ypresentation-strict", "-Ypresentation-verbose", "-Yquasiquote-debug", "-Yrangepos", "-Yreify-copypaste", "-Yreify-debug", "-Yrepl-class-based",
9393
"-Yrepl-sync", "-Yshow-member-pos", "-Yshow-symkinds", "-Yshow-symowners", "-Yshow-syms", "-Yshow-trees", "-Yshow-trees-compact", "-Yshow-trees-stringified", "-Ytyper-debug",
94-
"-Ywarn-adapted-args", "-Ywarn-dead-code", "-Ywarn-inaccessible", "-Ywarn-infer-any", "-Ywarn-nullary-override", "-Ywarn-nullary-unit", "-Ywarn-numeric-widen", "-Ywarn-unused-import", "-Ywarn-value-discard",
94+
"-Ywarn-dead-code", "-Ywarn-numeric-widen", "-Ywarn-value-discard", "-Ywarn-extra-implicit", "-Ywarn-self-implicit",
9595
"-deprecation", "-explaintypes", "-feature", "-help", "-no-specialization", "-nobootcp", "-nowarn", "-optimise", "-print", "-unchecked", "-uniqid", "-usejavacp", "-usemanifestcp", "-verbose", "-version")
9696
private def stringSettingNames = List("-Xgenerate-phase-graph", "-Xmain-class", "-Xpluginsdir", "-Xshow-class", "-Xshow-object", "-Xsource-reader", "-Ydump-classes", "-Ygen-asmp",
9797
"-Ypresentation-log", "-Ypresentation-replay", "-Yrepl-outdir", "-d", "-dependencyfile", "-encoding", "-Xscript")
@@ -108,9 +108,11 @@ object ScalaOptionParser {
108108
"-g" -> List("line", "none", "notailcails", "source", "vars"),
109109
"-target" -> List("jvm-1.5", "jvm-1.6", "jvm-1.7", "jvm-1.8"))
110110
private def multiChoiceSettingNames = Map[String, List[String]](
111-
"-Xlint" -> List("adapted-args", "nullary-unit", "inaccessible", "nullary-override", "infer-any", "missing-interpolator", "doc-detached", "private-shadow", "type-parameter-shadow", "poly-implicit-overload", "option-implicit", "delayedinit-select", "by-name-right-associative", "package-object-classes", "unsound-match", "stars-align"),
111+
"-Xlint" -> List("adapted-args", "nullary-unit", "inaccessible", "nullary-override", "infer-any", "missing-interpolator", "doc-detached", "private-shadow", "type-parameter-shadow", "poly-implicit-overload", "option-implicit", "delayedinit-select", "by-name-right-associative", "package-object-classes", "unsound-match", "stars-align", "constant", "unused"),
112112
"-language" -> List("help", "_", "dynamics", "postfixOps", "reflectiveCalls", "implicitConversions", "higherKinds", "existentials", "experimental.macros"),
113113
"-opt" -> List("l:none", "l:default", "l:method", "l:project", "l:classpath", "unreachable-code", "simplify-jumps", "empty-line-numbers", "empty-labels", "compact-locals", "nullness-tracking", "closure-elimination", "inline-project", "inline-global"),
114+
"-Ywarn-unused" -> List("imports", "patvars", "privates", "locals", "explicits", "implicits", "params"),
115+
"-Ywarn-macros" -> List("none", "before", "after", "both"),
114116
"-Ystatistics" -> List("parser", "typer", "patmat", "erasure", "cleanup", "jvm")
115117
)
116118
private def scalaVersionSettings = List("-Xmigration", "-Xsource")

src/compiler/scala/tools/nsc/settings/Warnings.scala

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,6 @@ trait Warnings {
6161
def warnUnusedExplicits = warnUnused contains UnusedWarnings.Explicits
6262
def warnUnusedImplicits = warnUnused contains UnusedWarnings.Implicits
6363

64-
BooleanSetting("-Ywarn-unused-import", "Warn when imports are unused.") withPostSetHook { s =>
65-
warnUnused.add(s"${if (s) "" else "-"}imports")
66-
} //withDeprecationMessage s"Enable -Ywarn-unused:imports"
67-
6864
val warnExtraImplicit = BooleanSetting("-Ywarn-extra-implicit", "Warn when more than one implicit parameter section is defined.")
6965

7066
val warnSelfImplicit = BooleanSetting("-Ywarn-self-implicit", "Warn when an implicit resolves to an enclosing self-definition.")
@@ -82,14 +78,14 @@ trait Warnings {
8278
// Lint warnings
8379

8480
object LintWarnings extends MultiChoiceEnumeration {
85-
class LintWarning(name: String, help: String, val yAliased: Boolean) extends Choice(name, help)
86-
def LintWarning(name: String, help: String, yAliased: Boolean = false) = new LintWarning(name, help, yAliased)
87-
88-
val AdaptedArgs = LintWarning("adapted-args", "Warn if an argument list is modified to match the receiver.", true)
89-
val NullaryUnit = LintWarning("nullary-unit", "Warn when nullary methods return Unit.", true)
90-
val Inaccessible = LintWarning("inaccessible", "Warn about inaccessible types in method signatures.", true)
91-
val NullaryOverride = LintWarning("nullary-override", "Warn when non-nullary `def f()' overrides nullary `def f'.", true)
92-
val InferAny = LintWarning("infer-any", "Warn when a type argument is inferred to be `Any`.", true)
81+
class LintWarning(name: String, help: String) extends Choice(name, help)
82+
def LintWarning(name: String, help: String) = new LintWarning(name, help)
83+
84+
val AdaptedArgs = LintWarning("adapted-args", "Warn if an argument list is modified to match the receiver.")
85+
val NullaryUnit = LintWarning("nullary-unit", "Warn when nullary methods return Unit.")
86+
val Inaccessible = LintWarning("inaccessible", "Warn about inaccessible types in method signatures.")
87+
val NullaryOverride = LintWarning("nullary-override", "Warn when non-nullary `def f()' overrides nullary `def f'.")
88+
val InferAny = LintWarning("infer-any", "Warn when a type argument is inferred to be `Any`.")
9389
val MissingInterpolator = LintWarning("missing-interpolator", "A string literal appears to be missing an interpolator id.")
9490
val DocDetached = LintWarning("doc-detached", "A Scaladoc comment appears to be detached from its element.")
9591
val PrivateShadow = LintWarning("private-shadow", "A private field (or class parameter) shadows a superclass field.")
@@ -127,18 +123,6 @@ trait Warnings {
127123
def warnConstant = lint contains Constant
128124
def lintUnused = lint contains Unused
129125

130-
// Lint warnings that are currently -Y, but deprecated in that usage
131-
@deprecated("Use warnAdaptedArgs", since="2.11.2")
132-
def YwarnAdaptedArgs = warnAdaptedArgs
133-
@deprecated("Use warnNullaryUnit", since="2.11.2")
134-
def YwarnNullaryUnit = warnNullaryUnit
135-
@deprecated("Use warnInaccessible", since="2.11.2")
136-
def YwarnInaccessible = warnInaccessible
137-
@deprecated("Use warnNullaryOverride", since="2.11.2")
138-
def YwarnNullaryOverride = warnNullaryOverride
139-
@deprecated("Use warnInferAny", since="2.11.2")
140-
def YwarnInferAny = warnInferAny
141-
142126
// The Xlint warning group.
143127
val lint = MultiChoiceSetting(
144128
name = "-Xlint",
@@ -151,18 +135,10 @@ trait Warnings {
151135
else warnUnused.disable(UnusedWarnings.Linted)
152136
}
153137

154-
allLintWarnings foreach {
155-
case w if w.yAliased =>
156-
BooleanSetting(s"-Ywarn-${w.name}", {w.help}) withPostSetHook { s =>
157-
lint.add(if (s) w.name else s"-${w.name}")
158-
} // withDeprecationMessage s"Enable -Xlint:${c._1}"
159-
case _ =>
160-
}
161-
162-
private lazy val warnSelectNullable = BooleanSetting("-Xcheck-null", "This option is obsolete and does nothing.")
163-
164138
// Backward compatibility.
165139
@deprecated("Use fatalWarnings", "2.11.0") def Xwarnfatal = fatalWarnings // used by sbt
140+
141+
private lazy val warnSelectNullable = BooleanSetting("-Xcheck-null", "This option is obsolete and does nothing.")
166142
@deprecated("This option is being removed", "2.11.0") def Xchecknull = warnSelectNullable // used by ide
167143
@deprecated("Use warnDeadCode", "2.11.0") def Ywarndeadcode = warnDeadCode // used by ide
168144
}

test/files/neg/t8417.flags

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
-Xfatal-warnings -Ywarn-adapted-args
1+
-Xfatal-warnings -Xlint:adapted-args

test/junit/scala/tools/nsc/settings/SettingsTest.scala

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ class SettingsTest {
3434
b(s)
3535
}
3636
@Test def userSettingsHavePrecedenceOverLint(): Unit = {
37-
assertTrue(check("-Xlint")(_.warnAdaptedArgs))
38-
assertFalse(check("-Xlint", "-Ywarn-adapted-args:false")(_.warnAdaptedArgs))
39-
assertFalse(check("-Ywarn-adapted-args:false", "-Xlint")(_.warnAdaptedArgs))
37+
assertTrue(check("-Xlint")(_.warnUnusedImport))
38+
assertFalse(check("-Xlint", "-Ywarn-unused:-imports")(_.warnUnusedImport))
39+
assertFalse(check("-Ywarn-unused:-imports", "-Xlint")(_.warnUnusedImport))
4040
}
4141

4242
@Test def anonymousLintersCanBeNamed(): Unit = {
@@ -95,18 +95,6 @@ class SettingsTest {
9595
assertTrue(check("-Xlint:-adapted-args,_,adapted-args")(t(_, "adapted-args")))
9696
}
9797

98-
@Test def xLintDeprecatedAlias(): Unit = {
99-
assertTrue(check("-Ywarn-adapted-args")(_.warnAdaptedArgs))
100-
assertTrue(check("-Xlint:_,-adapted-args", "-Ywarn-adapted-args")(_.warnAdaptedArgs))
101-
assertTrue(check("-Xlint:-adapted-args", "-Ywarn-adapted-args")(_.warnAdaptedArgs))
102-
assertTrue(check("-Ywarn-adapted-args", "-Xlint:-adapted-args,_")(_.warnAdaptedArgs))
103-
104-
assertFalse(check("-Ywarn-adapted-args:false")(_.warnAdaptedArgs))
105-
assertFalse(check("-Ywarn-adapted-args:false", "-Xlint:_")(_.warnAdaptedArgs))
106-
assertFalse(check("-Ywarn-adapted-args:false", "-Xlint:_,-adapted-args")(_.warnAdaptedArgs))
107-
assertTrue(check("-Ywarn-adapted-args:false", "-Xlint:_,adapted-args")(_.warnAdaptedArgs))
108-
}
109-
11098
@Test def expandingMultichoice(): Unit = {
11199
val s = new MutableSettings(msg => throw new IllegalArgumentException(msg))
112100
object mChoices extends s.MultiChoiceEnumeration {

0 commit comments

Comments
 (0)