Pular para o conteúdo principal

must_return_void

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

The return type of the function passed to 'NativeCallable.listener' must be 'void' rather than '{0}'.

Descrição

#

O analisador emite este diagnóstico quando você passa uma função que não retorna void para o construtor NativeCallable.listener.

NativeCallable.listener cria um callable nativo que pode ser invocado a partir de qualquer thread. O código nativo que invoca o callable envia uma mensagem de volta para o isolate que criou o callable e não espera uma resposta. Por isso, não é possível retornar um resultado do callable.

Para mais informações sobre FFI, consulte interoperabilidade com C usando dart:ffi.

Exemplo

#

O código a seguir gera este diagnóstico porque a função f retorna int em vez de void.

dart
import 'dart:ffi';
​
int f(int i) => i * 2;
​
void g() {
  NativeCallable<Int32 Function(Int32)>.listener(f);
}

Correções comuns

#

Altere o tipo de retorno da função para void.

dart
import 'dart:ffi';
​
void f(int i) => print(i * 2);
​
void g() {
  NativeCallable<Void Function(Int32)>.listener(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ê.