Pular para o conteúdo principal

diagnostic_describe_all_properties

Saiba mais sobre a regra de lint diagnostic_describe_all_properties.

Estável
Correção disponível
Lançado no Dart 2.3

FAÇA referenciar todas as propriedades públicas em métodos de debug.

Detalhes

#

FAÇA referenciar todas as propriedades públicas nas implementações de método debug.

Implementadores de Diagnosticable devem referenciar todas as propriedades públicas em uma implementação de debugFillProperties(...) ou debugDescribeChildren(...) para melhorar a capacidade de depuração em tempo de execução.

Propriedades públicas são definidas como campos e getters que:

  • não são privados ao pacote (por exemplo, prefixados com _)
  • não são static nem sobrescritos
  • não são eles mesmos Widgets ou coleções de Widgets

Além disso, o prefixo "debug" é tratado de forma especial para propriedades no Flutter. Para fins de diagnóstico, uma propriedade foo e uma propriedade prefixada debugFoo são tratadas como descrevendo efetivamente a mesma propriedade, e basta referenciar uma delas.

RUIM:

dart
class Absorber extends Widget {
  bool get absorbing => _absorbing;
  bool _absorbing;
  bool get ignoringSemantics => _ignoringSemantics;
  bool _ignoringSemantics;
  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties.add(DiagnosticsProperty<bool>('absorbing', absorbing));
    // Missing reference to ignoringSemantics
  }
}

BOM:

dart
class Absorber extends Widget {
  bool get absorbing => _absorbing;
  bool _absorbing;
  bool get ignoringSemantics => _ignoringSemantics;
  bool _ignoringSemantics;
  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties.add(DiagnosticsProperty<bool>('absorbing', absorbing));
    properties.add(DiagnosticsProperty<bool>('ignoringSemantics', ignoringSemantics));
  }
}

Ativar

#

Para ativar a regra diagnostic_describe_all_properties, adicione diagnostic_describe_all_properties em linter > rules no seu arquivo analysis_options.yaml:

analysis_options.yaml
yaml
linter:
  rules:
    - diagnostic_describe_all_properties

Se você usa a sintaxe de mapa YAML para configurar as regras de lint, adicione diagnostic_describe_all_properties: true em linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    diagnostic_describe_all_properties: true

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