Pular para o conteúdo principal

import_deferred_library_with_load_function

Detalhes sobre o diagnóstico 'import_deferred_library_with_load_function' produzido pelo analisador do Dart.

The imported library defines a top-level function named 'loadLibrary' that is hidden by deferring this library.

Descrição

#

O analisador produz este diagnóstico quando uma biblioteca que declara uma função chamada loadLibrary é importada usando um import adiado (deferred). Um import adiado introduz uma função implícita chamada loadLibrary. Essa função é usada para carregar o conteúdo da biblioteca adiada, e a função implícita oculta a declaração explícita na biblioteca adiada.

Para mais informações, veja Carregando uma biblioteca de forma preguiçosa.

Exemplo

#

Dado um arquivo a.dart que define uma função chamada loadLibrary:

dart
void loadLibrary(Library library) {}
​
class Library {}

O código a seguir produz este diagnóstico porque a declaração implícita de a.loadLibrary está ocultando a declaração explícita de loadLibrary em a.dart:

dart
import 'a.dart' deferred as a;
​
void f() {
  a.Library();
}

Correções comuns

#

Se a biblioteca importada não precisar ser adiada, remova a keyword deferred:

dart
import 'a.dart' as a;
​
void f() {
  a.Library();
}

Se a biblioteca importada precisar ser adiada e você precisar referenciar a função importada, renomeie a função na biblioteca importada:

dart
void populateLibrary(Library library) {}
​
class Library {}

Se a biblioteca importada precisar ser adiada e você não precisar referenciar a função importada, adicione uma cláusula hide:

dart
import 'a.dart' deferred as a hide loadLibrary;
​
void f() {
  a.Library();
}

Encontrou essa página sem tradução ou que precisa de correção? Abra uma issue e nos ajude a manter esse site em PT-BR para ajudar pessoas como você.