scalax -Xlint help provides the following info:
$ scalac -Xlint:help
Enable or disable specific warnings
adapted-args Warn if an argument list is modified to match the receiver.
nullary-unit Warn when nullary methods return Unit.
inaccessible Warn about inaccessible types in method signatures.
nullary-override Warn when non-nullary `def f()' overrides nullary `def f'.
infer-any Warn when a type argument is inferred to be `Any`.
missing-interpolator A string literal appears to be missing an interpolator id.
doc-detached A Scaladoc comment appears to be detached from its element.
private-shadow A private field (or class parameter) shadows a superclass field.
type-parameter-shadow A local type parameter shadows a type already in scope.
poly-implicit-overload Parameterized overloaded implicit methods are not visible as view bounds.
option-implicit Option.apply used implicit view.
delayedinit-select Selecting member of DelayedInit.
by-name-right-associative By-name parameter of right associative operator.
package-object-classes Class or object defined in package object.
unsound-match Pattern match may not be typesafe.
stars-align Pattern sequence wildcard must align with sequence component.
Is there a way to enable all checks? What's the semantic of scalac -Xlint
? will it enable all? A default set (which) ? Won't do anything?
Note: Scala 2.11.8 and sbt 0.13.9
If newer versions provide different behaviour/features let me know, as updating them is not a problem
-Xlint
currently means -Xlint:_
, but that needs to be made explicit.
Historically, there have always been warnings that are too noisy or unreliable to enable by default, so there have always been warnings excluded from -Xlint
.
Currently, there's one such lintable, but it's not hooked up to the command line option.
There used to be a -Ywarn-all
that meant -Xlint
plus those other warnings. It's not obvious why that option went away.
At one point, -Xlint:_
was going to mean -Ywarn-all
, with -Xlint
to mean a recommended subset, but it turns out that people like to disable one or two lint rules with -Xlint:-annoying,_
, which is harder to do if that enables arbitrarily many other noisy lint rules.
Normally, scalac -X
shows defaults; but probably scalac -Xlint:help
will be improved to show its default behavior. That default is nontrivial for something like -Yopt
.
$ scalac -help
Usage: scalac <options> <source files>
where possible standard options include:
-X Print a synopsis of advanced options.
$ scalac -X
Usage: scalac <options> <source files>
-- Notes on option parsing --
Boolean settings are always false unless set.
Where multiple values are accepted, they should be comma-separated.
example: -Xplugin:option1,option2
<phases> means one or a comma-separated list of:
(partial) phase names, phase ids, phase id ranges, or the string "all".
example: -Xprint:all prints all phases.
example: -Xprint:expl,24-26 prints phases explicitouter, closelim, dce, jvm.
example: -Xprint:-4 prints only the phases up to typer.
Possible advanced options include:
-Xlint:<_,warning,-warning> Enable or disable specific warnings: `_' for all, `-Xlint:help' to list
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With