目標和動力
Fuchsia 的 Dart 版本在 2021 年從 dartanalyzer
轉換為 dart
analyze
。dart analyze
支援檢查功能
「給予空值安全」。也就是說
空值解析錯誤可能會變成編輯時間分析錯誤。
檢查 Fuchsia 程式碼前編寫的 Dart 程式碼,需經過無空值安全檢查 使用空值安全檢查功能我們希望遷移 所有支援空值安全性的 Dart 來源,因為這樣會刪除整個類別 執行階段錯誤。
技術背景
若是空值安全性,下列程式碼中的所有變數均不可為空值:
// In null-safe Dart, none of these can ever be null.
var i = 42; // Inferred to be an int.
String name = getFileName();
final b = Foo();
如要表示變數可能含有空值,只要在其類型中加入 ?
即可
宣告:
int? aNullableInt = null;
查看小達的 「瞭解空值安全性」, 瞭解詳情
如何提供協助
選取工作
搜尋包含 // @dart=2.9
或
TODO(https://fxbug.dev/42165807)
,所有檔案都必須遷移。適用對象
比方說,你可以編寫程式碼搜尋
"// @dart=2.9" lang:dart
。
執行工作
注意:您可能會在 Dart 分析中看到 import_of_legacy_library_into_null_safe
。
這表示其中一個依附元件尚不支援空值安全性,且
先進行遷移如果這種情況是第三方依附元件
遺憾的是
等待他們先遷移。
確認您要遷移的 Dart 來源為
包含在版本中。
移除 // @dart=2.9
和上方的 TODO
行、重新建構,然後追蹤錯誤
以及來自 Dart 分析的建議詳情請見
如需更多建議,請參閱 Dart 遷移指南。
修正 Dart 分析中的所有錯誤後,請將 null_safety =
true
新增至包含以下項目的對應 BUILD.gn
檔案中的建構目標:
您遷移的來源。
完成工作
變更完成後,請送交對應的擁有者進行審查。 建議您在 Fuchsia 的 Issue Tracker 中建立錯誤,以便追蹤進度。如果有 請務必將其標示為封鎖主要錯誤 84961。 變更合併後即可關閉此政策
範例
贊助者
如有問題或想掌握最新狀態,請與我們聯絡: