此表列出了 Scala 2.13 编译器选项及其在 Scala 3 中的等效选项。一些选项具有跨版本支持,例如 -Vprint
。其他选项具有不同名称的近似等效项。许多 Scala 2 选项在 Scala 3 中没有等效项,例如用于调试 Scala 2 宏的选项。
编译器选项显示为帮助输出 scalac -help
、scalac -X
等显示的内容。此处显示了一些别名,但大多数较旧的别名,例如 -Xprint
表示 -Vprint
,或 -Ytyper-debug
表示 -Vtyper
,均按最新名称列出。
选项组 -V
和 -W
在 Scala 2.13 中引入,用于请求附加诊断输出的“详细”选项和请求附加检查的“警告”,这些检查可能表示代码中的错误,也可能不表示。 -Werror
将警告提升为错误,-Wconf
允许通过忽略警告或将其视为错误来精确控制警告。迁移到 Scala 3 时可能需要调整 -Wconf
的配置字符串,因为配置语法及其匹配的错误消息不同。
状态 |
含义 |
|
它在 Scala 3 中可用。 |
<new-name> |
它已重命名为 <new-name> 。 |
|
它目前不可用,但可能会在以后添加。 |
当前比较基于 Scala 2.13.10 和 3.3.0。
标准设置
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 |
|
详细设置
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 |
|
警告设置
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 |
|
高级设置
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 |
|
私有设置
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 |
|
编译器插件
一些有用的 Scala 2.13 编译器插件现已内置到编译器中。你可以使用一些新的原生选项启用和配置它们。
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> |
类型投影仪
2.13.x |
3.0.x |
-Xplugin:kind-projector_<version>.jar |
-Ykind-projector |