Info: JavaScript is currently disabled, code tabs will still work,
but preferences will not be remembered.
This table lists the Scala 2.13 compiler options with their equivalent in Scala 3.
Some options have cross-version support, such as -Vprint
.
Others have a close equivalent with a different name. A number of Scala 2 options
have no equivalent in Scala 3, such as options for debugging Scala 2 macros.
The compiler options are shown as displayed by the help output scalac -help
, scalac -X
, etc.
A few aliases are shown here, but most older aliases, such as -Xprint
for -Vprint
,
or -Ytyper-debug
for -Vtyper
, are listed by the latest name.
The option groups -V
and -W
were introduced in Scala 2.13, for "verbose" options that
request additional diagnostic output and "warnings" that request additional checks which
may or may not indicate errors in code. -Werror
elevates warnings to errors, and -Wconf
allows precise control over warnings by either ignoring them or taking them as errors.
The configuration string for -Wconf
will likely require adjustment when migrating to Scala 3,
since the configuration syntax and the error messages it matches are different.
Status |
Meaning |
|
It is available in Scala 3. |
<new-name> |
It has been renamed to <new-name> . |
|
It is not yet available but could be added later. |
The current comparison is based on Scala 2.13.10 and 3.3.0.
Standard Settings
2.13.x |
3.3.x |
-Dproperty=value |
|
-J<flag> |
|
-P:<plugin>:<opt> |
|
-V |
|
-W |
|
-X |
|
-Y |
|
-bootclasspath |
|
-classpath |
|
-d |
|
-dependencyfile |
|
-deprecation |
|
-encoding |
|
-explaintypes |
-explain-types |
-extdirs |
|
-feature |
|
-g |
|
-help |
|
-javabootclasspath |
|
-javaextdirs |
|
-language |
|
-no-specialization |
|
-nobootcp |
|
-nowarn |
|
-opt |
|
-opt-inline-from |
|
-opt-warnings |
|
-optimize |
|
-print |
|
-release |
|
-rootdir |
|
-sourcepath |
|
-target |
-Xtarget |
-toolcp |
|
-unchecked |
|
-uniqid |
|
-usejavacp |
|
-usemanifestc |
|
-verbose |
|
-version |
|
Verbose Settings
2.13.x |
3.3.x |
-Vbrowse:<phases> |
|
-Vclasspath |
-Ylog-classpath |
-Vdebug |
-Ydebug |
-Vdebug-tasty |
|
-Vdebug-type-error |
|
-Vdoc |
|
-Vfree-terms |
|
-Vfree-types |
|
-Vhot-statistics |
|
-Vide |
|
-Vimplicit-conversions |
|
-Vimplicits |
|
-Vimplicits-max-refined |
|
-Vimplicits-verbose-tree |
|
-Vinline <package/Class.method> |
|
-Vlog:<phases> |
-Ylog:<phases> |
-Vmacro |
|
-Vmacro-lite |
|
-Vopt <package/Class.method> |
|
-Vpatmat |
|
-Vphases |
|
-Vpos |
|
-Vprint:<phases> |
|
-Vprint-args <file> |
|
-Vprint-pos |
-Yprint-pos |
-Vprint-types |
-Xprint-types |
-Vquasiquote |
|
-Vreflective-calls |
|
-Vreify |
|
-Vshow:<phases> |
|
-Vshow-class <class> |
|
-Vshow-member-pos <output style> |
|
-Vshow-object <object> |
|
-Vshow-symkinds |
|
-Vshow-symowners |
|
-Vstatistics <phases> |
|
-Vsymbols |
|
-Vtype-diffs |
|
-Vtyper |
|
Warning Settings
2.13.x |
3.3.x |
-Wconf |
|
-Wdead-code |
|
-Werror |
|
-Wextra-implicit |
|
-Wmacros:<mode> |
|
-Wnonunit-if |
|
-Wnonunit-statement |
|
-Wnumeric-widen |
|
-Woctal-literal |
|
-Wopt |
|
-Wperformance |
|
-Wself-implicit |
|
-Wunused:<warnings> |
|
-Wvalue-discard |
|
Advanced Settings
2.13.x |
3.3.x |
-Xasync |
|
-Xcheckinit |
-Ysafe-init |
-Xdev |
|
-Xdisable-assertions |
|
-Xelide-below |
|
-Xexperimental |
|
-Xfuture |
|
-Xgenerate-phase-graph |
|
-Xjline |
|
-Xlint:deprecation |
-deprecation |
-Xlint:<warnings> |
|
-Xmacro-settings |
|
-Xmain-class |
|
-Xmaxerrs |
|
-Xmaxwarns |
|
-Xmigration |
|
-Xmixin-force-forwarders |
|
-Xno-forwarders |
|
-Xno-patmat-analysis |
|
-Xnon-strict-patmat-analysis |
|
-Xnojline |
|
-Xplugin |
|
-Xplugin-disable |
|
-Xplugin-list |
|
-Xplugin-require |
|
-Xpluginsdir |
|
-Xprompt |
|
-Xreporter |
|
-Xresident |
|
-Xscript |
|
-Xsource |
-source |
-Xsource-reader |
|
-Xverify |
-Xverify-signatures |
-Xxml |
|
Private settings
2.13.x |
3.0.x |
-Ybackend-parallelism |
|
-Ybackend-worker-queue |
|
-Ybreak-cycles |
|
-Ycache-macro-class-loader |
|
-Ycache-plugin-class-loader |
|
-Ycheck |
|
-Ycompact-trees |
|
-Ydelambdafy |
|
-Ydump-classes |
|
-Ygen-asmp |
|
-Yimports |
|
-Yissue-debug |
|
-Yjar-compression-level |
|
-YjarFactory |
|
-Ymacro-annotations |
|
-Ymacro-classpath |
|
-Ymacro-expand |
|
-Ymacro-global-fresh-names |
|
-Yno-completion |
|
-Yno-flat-classpath-cache |
|
-Yno-generic-signatures |
|
-Yno-imports |
|
-Yno-predef |
|
-Yopt-inline-heuristics |
|
-Ypatmat-exhaust-depth |
|
-Ypresentation-any-thread |
|
-Ypresentation-debug |
|
-Ypresentation-delay |
|
-Ypresentation-locate-source-file |
|
-Ypresentation-log |
|
-Ypresentation-replay |
|
-Ypresentation-strict |
|
-Ypresentation-verbose |
|
-Yprint-trees |
|
-Yprofile-destination |
|
-Yprofile-enabled |
|
-Yprofile-external-tool |
|
-Yprofile-run-gc |
|
-Yprofile-trace |
|
-Yrangepos |
|
-Yrecursion |
|
-Yreify-copypaste |
|
-Yrepl-class-based |
|
-Yrepl-outdir |
|
-Yrepl-use-magic-imports |
|
-Yresolve-term-conflict |
|
-Yscala3-implicit-resolution |
|
-Yscriptrunner |
|
-Yskip |
|
-Ystop-after |
|
-Ystop-before |
|
-Ytasty-no-annotations |
|
-Ytasty-reader |
|
-Ytrack-dependencies |
|
-Yvalidate-pos |
|
Compiler Plugins
Some useful Scala 2.13 compiler plugins are now shipped into the compiler.
You can enable and configure them with some new native options.
Scala.js
2.13.x |
3.0.x |
-Xplugin:scalajs-compiler_<version>.jar |
-scalajs |
-P:scalajs:genStaticForwardersForNonTopLevelObjects |
-scalajs-genStaticForwardersForNonTopLevelObjects |
-P:scalajs:mapSourceURI |
-scalajs-mapSourceURI |
SemanticDB
2.13.x |
3.0.x |
-Xplugin:semanticdb-scalac_<version>.jar |
-Xsemanticdb |
-P:semanticdb:targetroot:<path> |
-semanticdb-target:<path> |
Kind-Projector
2.13.x |
3.0.x |
-Xplugin:kind-projector_<version>.jar |
-Ykind-projector |