How can I find a description of scala compiler flags/options?

大城市里の小女人 提交于 2019-12-03 06:34:51

问题


How can I find all of the flags for the latest scalac version? After googling for hours I have found only outdated docs. (for example, they don't even mention "-feature" flag).

Is there any way to obtain the list of compiler flags with descriptions from scalac, or anything else?


回答1:


The closest I have been able to find is the relevant source files for the compiler. Unfortunately the options are spread among several files. As of this writing, it breaks down like so:

  • StandardScalaSettings (for basic flags)
  • ScalaSettings (for advanced flags)

These will of course be for the current development version of the compiler, so if you want options for a specific version of scalac, you'll need to use the "branch" drop-down menu to view the correct version tag.




回答2:


Edit: Documentation for Scala Compiler Options has been posted.

Most of us get by with scalac -help, scalac -X and scalac -Y.

Don't forget to scala -help, too.

Edit: sbt user can do the usual:

> set scalacOptions in Compile += "-X"
> compile
[snip]
[info]   -Xcheck-null                   Warn upon selection of nullable reference.
[info]   -Xcheckinit                    Wrap field accessors to throw an exception on uninitialized access.
[info]   -Xdisable-assertions           Generate no assertions or assumptions.
[info]   -Xdivergence211                Turn on the 2.11 behavior of implicit divergence not terminating recursive implicit searches (SI-7291).
[info]   -Xelide-below <n>              Calls to @elidable methods are omitted if method priority is lower than argument
[info]   -Xexperimental                 Enable experimental extensions.
[info]   -Xfatal-warnings               Fail the compilation if there are any warnings.
[snip]

At least the man page was updated recently:

https://issues.scala-lang.org/browse/SI-7824



来源:https://stackoverflow.com/questions/18601372/how-can-i-find-a-description-of-scala-compiler-flags-options

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!