await_only_futures

Stable
Core
Fix available

Await only futures.

Details

#

AVOID using await on anything which is not a future.

Await is allowed on the types: Future<X>, FutureOr<X>, Future<X>?, FutureOr<X>? and dynamic.

Further, using await null is specifically allowed as a way to introduce a microtask delay.

BAD:

dart
main() async {
  print(await 23);
}

GOOD:

dart
main() async {
  await null; // If a delay is really intended.
  print(23);
}

Enable

#

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

analysis_options.yaml
yaml
linter:
  rules:
    - await_only_futures

If you're instead using the YAML map syntax to configure linter rules, add await_only_futures: true under linter > rules:

analysis_options.yaml
yaml
linter:
  rules:
    await_only_futures: true