Pular para o conteúdo principal

invalid_factory_name_not_a_class

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

The name of a factory constructor must be the same as the name of the immediately enclosing class.

Descrição

#

O analisador produz este diagnóstico quando o nome de um construtor de fábrica não é o mesmo nome da classe que o contém.

Exemplo

#

O código a seguir produz este diagnóstico porque o nome do construtor de fábrica (A) não é o mesmo nome da classe que o contém (C):

dart
// @dart = 3.12
class A {}
​
class C {
  factory A() => throw 0;
}

Correções comuns

#

Se a fábrica retorna uma instância da classe que a contém, e você pretende que seja um construtor de fábrica sem nome, então renomeie a fábrica:

dart
class A {}
​
class C {
  factory C() => throw 0;
}

Se a fábrica retorna uma instância da classe que a contém, e você pretende que seja um construtor de fábrica nomeado, então coloque como prefixo do nome do construtor de fábrica o nome da classe que o contém:

dart
class A {}
​
class C {
  factory C.a() => throw 0;
}

Se a fábrica retorna uma instância de outra classe, então mova a fábrica para essa classe:

dart
class A {
  factory A() => throw 0;
}
​
class C {}

Se a fábrica retorna uma instância de outra classe, mas você não pode modificar essa classe ou não quer mover a fábrica, então converta-a em um método estático:

dart
class A {}
​
class C {
  static A a() => throw 0;
}

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ê.