use_build_context_synchronously   
            
            Do not use BuildContexts across async gaps.
This rule is currently experimental and available as of Dart 2.13.0.
Rule sets: flutter
Details
DON’T use BuildContext across asynchronous gaps.
Storing BuildContext for later usage can easily lead to difficult to diagnose
crashes. Asynchronous gaps are implicitly storing BuildContext and are some of
the easiest to overlook when writing code.
When a BuildContext is used, its mounted property must be checked after an
asynchronous gap.
BAD:
void onButtonTapped(BuildContext context) async {
  await Future.delayed(const Duration(seconds: 1));
  Navigator.of(context).pop();
}
GOOD:
void onButtonTapped(BuildContext context) {
  Navigator.of(context).pop();
}
GOOD:
void onButtonTapped() async {
  await Future.delayed(const Duration(seconds: 1));
  if (!context.mounted) return;
  Navigator.of(context).pop();
}
Usage
To enable the use_build_context_synchronously rule,
add use_build_context_synchronously under linter > rules in your
analysis_options.yaml
file:
linter:
  rules:
    - use_build_context_synchronously