prefer-assigning-await-expressions
Suggests moving await expressions to dedicated local variables.
⚙️ Config
Set ignore-if-case
(default is true
) to exclude if-case expressions (example).
Set ignore-if-null
(default is false
) to exclude if-null (??) expressions.
analysis_options.yaml
dart_code_metrics:
rules:
- prefer-assigning-await-expressions:
ignore-if-case: true
ignore-if-null: false
Example
❌ Bad:
Future<void> fn(SomeClass input) async {
// LINT: Prefer moving this await expression to a separate variable and using it instead.
if ((await input.asyncMethod()).isEmpty) {}
}
class SomeClass {
Future<String> asyncMethod() async => 1;
}
✅ Good:
Future<void> fn(SomeClass input) async {
final result = await input.asyncMethod();
if (result.isEmpty) {}
}
Example with "ignore-if-case"
Config
analysis_options.yaml
dart_code_metrics:
rules:
- prefer-assigning-await-expressions:
ignore-if-case: true
✅ Good:
Future<void> fn(SomeClass input) async {
// Correct, ignored
if (await input.asyncMethod() case value?) {}
}