Contents
Contents

Avoid async functions that return void.

This rule is available as of Dart 2.1.0.

This rule has a quick fix available.

Details

#

DO mark async functions as returning Future.

When declaring an async method or function which does not return a value, declare that it returns Future<void> and not just void.

BAD:

dart
void f() async {}
void f2() async => null;

GOOD:

dart
Future<void> f() async {}
Future<void> f2() async => null;

EXCEPTION:

An exception is made for top-level main functions, where the Future annotation can (and generally should) be dropped in favor of void.

GOOD:

dart
Future<void> f() async {}

void main() async {
  await f();
}

Usage

#

To enable the avoid_void_async rule, add avoid_void_async under linter > rules in your analysis_options.yaml file:

analysis_options.yaml
yaml
linter:
  rules:
    - avoid_void_async