Scala 3 編譯器提供了一些有用的公用程式,以簡化遷移。
嘗試執行 scalac
以一窺這些公用程式
scalac
是 Scala 編譯器的可執行檔,可從 Github 下載。它也可以使用 Coursier 安裝,指令為
cs install scala3-compiler
,在這種情況下,scalac
會別名為scala3-compiler
。
$ scalac
Usage: scalac <options> <source files>
where possible standard options include:
...
-explain Explain errors in more detail.
...
-rewrite When used in conjunction with a `...-migration` source version, rewrites sources to migrate to new version.
...
-source source version
Default: 3.0.
Choices: 3.0, future, 3.0-migration, future-migration.
...
遷移模式
-source:3.0-migration
選項讓編譯器寬容於大多數已移除的功能,列印警告而不是錯誤。每個警告都強烈表示編譯器甚至能夠安全地將已棄用的程式碼片段改寫為其跨編譯對應程式碼。
我們稱之為Scala 3 遷移編譯。
自動改寫
一旦你的程式碼在遷移模式下編譯,幾乎所有警告都能自動由編譯器本身解決。為此,你只需要再次編譯,這次使用 -source:3.0-migration
和 -rewrite
選項。
請注意編譯器會修改程式碼!這是為了安全。然而,你可能想要提交初始狀態,以便你可以列印編譯器套用的 diff,並在必要時還原它。
須知
- 如果程式碼編譯時發生錯誤,則不會套用重寫。
- 你無法選擇套用哪些規則,編譯器會執行所有規則。
你可以參考 不相容性表格 查看 Scala 3 遷移重寫清單。
錯誤說明
-source:3.0-migration
模式處理許多已變更的功能,但並非全部。編譯器可以在使用 -explain
和/或 -explain-types
選項呼叫時提供有關剩餘錯誤的更多詳細資訊。
-explain
和-explain-types
選項不限於遷移。它們通常可以協助你學習和編寫 Scala 3。
此頁面的貢獻者
內容
- 相容性參考
- 來源層級
- 類別路徑層級
- 執行時間
- 元程式設計
- 遷移工具導覽
- 使用 -Xsource:3 的 Scala 2
- Scala 3 遷移模式
- 遷移教學
- 先備條件
- 移植 sbt 專案(使用 sbt-scala3-migrate)
- 手動移植 sbt 專案
- 跨建構巨集函式庫
- 混合 Scala 2.13 和 Scala 3 巨集
- Scala 3 語法重寫
- 不相容性表格
- 語法變更
- 已移除的功能
- 脈絡抽象
- 其他已變更的功能
- 類型檢查器
- 類型推論
- 編譯器選項
- 編譯器選項查詢表格
- 新的編譯器選項
- Scala2 和 Scala3 之間的 Scaladoc 設定相容性
- 編譯器外掛程式
- Kind Projector 遷移
- 外部資源