如何正确使用 scalac -Xlint
How to properly use scalac -Xlint
scalax -Xlint 帮助提供以下信息:
$ 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.
有没有办法启用所有检查? scalac -Xlint
的语义是什么?它会启用所有吗?默认设置(哪个)?什么都不做?
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.
从历史上看,总是有一些警告过于嘈杂或不可靠而无法默认启用,因此总是有一些警告被排除在 -Xlint
之外。
目前有 one such lintable,但它没有连接到命令行选项。
曾经有一个 -Ywarn-all
表示 -Xlint
加上其他警告。该选项消失的原因并不明显。
曾一度,-Xlint:_
表示 -Ywarn-all
,-Xlint
表示推荐的子集,但事实证明人们喜欢禁用一两个 lint 规则使用 -Xlint:-annoying,_
,如果任意启用许多其他嘈杂的 lint 规则,则更难做到。
通常,scalac -X
显示默认值;但可能 scalac -Xlint:help
会得到改进以显示其默认行为。对于 -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
scalax -Xlint 帮助提供以下信息:
$ 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.
有没有办法启用所有检查? scalac -Xlint
的语义是什么?它会启用所有吗?默认设置(哪个)?什么都不做?
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.
从历史上看,总是有一些警告过于嘈杂或不可靠而无法默认启用,因此总是有一些警告被排除在 -Xlint
之外。
目前有 one such lintable,但它没有连接到命令行选项。
曾经有一个 -Ywarn-all
表示 -Xlint
加上其他警告。该选项消失的原因并不明显。
曾一度,-Xlint:_
表示 -Ywarn-all
,-Xlint
表示推荐的子集,但事实证明人们喜欢禁用一两个 lint 规则使用 -Xlint:-annoying,_
,如果任意启用许多其他嘈杂的 lint 规则,则更难做到。
通常,scalac -X
显示默认值;但可能 scalac -Xlint:help
会得到改进以显示其默认行为。对于 -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