Включение предупреждений миграции - PullRequest
5 голосов
/ 17 августа 2010

Я портирую 2.7.7 scala code base на 2.8, и мне было интересно, есть ли опция компилятора для отображения уведомлений о миграции? Меня укусило изменение в поведении для изменчивых последовательностей, которые имели следующее уведомление о переносе [1], однако оно ничего не отображает, когда я строю проект (у меня уже включены предупреждения об устаревании и непроверенные)

1: @migration(2, 8, "As of 2.8, this operation creates a new map. To add an element as a\n"+ "side effect to an existing map and return that map itself, use +=." )

Ответы [ 3 ]

8 голосов
/ 18 августа 2010

Опция: -Xmigration

Ввод scalac -help покажет стандартные параметры компилятора Scala.

Ввод scalac -X покажет дополнительные параметры.

Ввод scalac -Y покажет приватные опции.

3 голосов
/ 18 августа 2010

Это расширенная опция, -Xmigration.

 ~: scala -X
Usage: scala <options> <source files>
Possible advanced options include:
  -Xassem-extdirs <dirs>         List of directories containing assemblies, defaults to `lib'
  -Xassem-name <file>            Name of the output assembly (only relevant with -target:msil)
  -Xassem-path <path>            List of assemblies referenced by the program (only relevant with -target:msil)
  -Xcheck-null                   Emit warning on selection of nullable reference
  -Xcheckinit                    Add runtime checks on field accessors. Uninitialized accesses result in an exception being thrown.
  -Xdisable-assertions           Generate no assertions and assumptions
  -Xelide-below                  Generate calls to @elidable-marked methods only if method priority is greater than argument.
  -Xexperimental                 Enable experimental extensions
  -Xfatal-warnings               Fail the compilation if there are any warnings.
  -Xfuture                       Turn on future language features
  -Xgenerate-phase-graph <file>  Generate the phase graphs (outputs .dot files) to fileX.dot
  -Xlog-implicits                Show more info on why some implicits are not applicable
  -Xmigration                    Warn about constructs whose behavior may have changed between 2.7 and 2.8
  -Xno-forwarders                Do not generate static forwarders in mirror classes
  -Xno-uescape                   Disables handling of \u unicode escapes
  -Xnojline                      Do not use JLine for editing
  -Xplugin-disable:<plugin>      Disable a plugin
  -Xplugin-list                  Print a synopsis of loaded plugins
  -Xplugin-require:<plugin>      Abort unless a plugin is available
  -Xplugin:<file>                Load a plugin from a file
  -Xpluginsdir <path>            Path to search compiler plugins
  -Xprint-icode                  Log internal icode to *.icode files
  -Xprint-pos                    Print tree positions (as offsets)
  -Xprint-types                  Print tree types (debugging option)
  -Xprint:<phase>                Print out program after <phase> or "all"
  -Xprompt                       Display a prompt after each error (debugging option)
  -Xresident                     Compiler stays resident, files to compile are read from standard input
  -Xscript <object>              Compile as a script, wrapping the code into object.main()
  -Xshow-class <class>           Show class info
  -Xshow-object <object>         Show object info
  -Xshow-phases                  Print a synopsis of compiler phases
  -Xsource-reader <classname>    Specify a custom method for reading source files
  -Xsourcedir <directory>        When -target:msil, the source folder structure is mirrored in output directory.
  -Xwarninit                     Warn about possible changes in initialization semantics
  -Y                             Print a synopsis of private options
2 голосов
/ 18 августа 2010
% scala -X
Usage: scala <options> <source files>
Possible advanced options include:
  ...
  -Xmigration                    Warn about constructs whose behavior may have changed between 2.7 and 2.8
  ...
...