Skip to main content

prefer-assigning-await-expressions

configurable
pro+

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?) {}
}