The Scala 3 compiler has been rewritten from the ground up and consequently it does not offer the same options as the Scala 2.13 compiler. Some options are available under a different name, others have just not been implemented yet.
When porting a Scala 2.13 project to Scala 3, you will need to adapt the list of compiler options. To do so you can refer to the Lookup Table.
Passing an unavailable option to the Scala 3 compiler does not make it fail. It just prints a warning and ignores the option.
You can also discover the new Scala 3 compiler options, which have no equivalent in Scala 2.13, in the New Compiler Options page.
For Scaladoc settings reference and their compatibility with Scala2 Scaladoc, read Scaladoc settings compatibility between Scala2 and Scala3 page.
Contributors to this page:
Contents
- Compatibility Reference
- Source Level
- Classpath Level
- Runtime
- Metaprogramming
- Tour of the Migration Tools
- Scala 2 with -Xsource:3
- Scala 3 Migration Mode
- Migration Tutorial
- Prerequisites
- Porting an sbt Project (using sbt-scala3-migrate)
- Porting an sbt Project (by hand)
- Cross-Building a Macro Library
- Mixing Scala 2.13 and Scala 3 Macros
- Scala 3 Syntax Rewriting
- Incompatibility Table
- Syntactic Changes
- Dropped Features
- Contextual Abstractions
- Other Changed Features
- Type Checker
- Type Inference
- Compiler Options
- Compiler Options Lookup Table
- New Compiler Options
- Scaladoc settings compatibility between Scala2 and Scala3
- Compiler Plugins
- Kind Projector Migration
- External Resources