Pular para o conteúdo principal

invalid_annotation

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

Annotation must be either a const variable reference or const constructor invocation.

Descrição

#

O analisador produz este diagnóstico quando uma anotação sem argumentos referencia algo que não é uma variável marcada como const nem um construtor. Uma anotação com argumentos, como @f(), é a invocação de um construtor const; então, quando f não é uma classe, ela é reportada como qualquer outra invocação de construtor constante, como creation_with_non_type.

Getters não podem ser usados como anotações.

Exemplos

#

O código a seguir produz este diagnóstico porque a variável v não é uma variável const:

dart
var v = 0;
​
@v
void f() {}

O código a seguir produz este diagnóstico porque f não é uma variável:

dart
@f
void f() {}

O código a seguir produz este diagnóstico porque g é um getter:

dart
@g
int get g => 0;

Correções comuns

#

Se a anotação referencia uma variável que não é um construtor const, adicione a palavra-chave const à declaração da variável:

dart
const v = 0;
​
@v
void f() {}

Se a anotação não referencia uma variável, então remova-a:

dart
int v = 0;
​
void f() {}

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