import_deferred_library_with_load_function
インポートされたライブラリは「loadLibrary」という名前のトップレベル関数を定義していますが、このライブラリの遅延読み込みにより隠蔽されています。
説明
#アナライザーは、loadLibrary という名前の関数を宣言するライブラリが遅延インポートを使用してインポートされた場合に、この診断を生成します。遅延インポートは loadLibrary という名前の暗黙的な関数を導入します。この関数は遅延ライブラリの内容をロードするために使用され、暗黙的な関数は遅延ライブラリ内の明示的な宣言を隠蔽します。
詳細については、ライブラリの遅延ロード を参照してください。
例
#loadLibrary という名前の関数を定義するファイル a.dart がある場合
dart
void loadLibrary(Library library) {}
class Library {}以下のコードは、a.loadLibrary の暗黙的な宣言が a.dart の loadLibrary の明示的な宣言を隠蔽しているため、この診断を生成します。
dart
import 'a.dart' deferred as a;
void f() {
a.Library();
}一般的な修正
#インポートされたライブラリを遅延読み込みする必要がない場合は、deferred キーワードを削除してください。
dart
import 'a.dart' as a;
void f() {
a.Library();
}インポートされたライブラリを遅延読み込みする必要があり、インポートされた関数を参照する必要がある場合は、インポートされたライブラリ内の関数名を変更してください。
dart
void populateLibrary(Library library) {}
class Library {}インポートされたライブラリを遅延読み込みする必要があり、インポートされた関数を参照する必要がない場合は、hide 句を追加してください。
dart
import 'a.dart' deferred as a hide loadLibrary;
void f() {
a.Library();
}