| commit | aad6da844e415a1b71809a4e8ae863346cb73724 | [log] [tgz] |
|---|---|---|
| author | pq <pquitslund@google.com> | Fri Oct 29 18:09:23 2021 +0000 |
| committer | commit-bot@chromium.org <commit-bot@chromium.org> | Fri Oct 29 18:09:23 2021 +0000 |
| tree | 2100508e4e4155b46c02d8bc96d44bdf1ad9f9af | |
| parent | 74dea5d1bdc40c2aac1ba3440513de3f46099173 [diff] |
respect awaited used results Fixes: https://github.com/dart-lang/sdk/issues/47569 Change-Id: If5391899603ad6ee4295d1d3a8fabba9a26a958f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218661 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analyzer/lib/src/error/use_result_verifier.dart b/pkg/analyzer/lib/src/error/use_result_verifier.dart index c6939dec..521d5b6 100644 --- a/pkg/analyzer/lib/src/error/use_result_verifier.dart +++ b/pkg/analyzer/lib/src/error/use_result_verifier.dart
@@ -149,7 +149,9 @@ return parent.target == node; } - if (parent is ParenthesizedExpression || parent is ConditionalExpression) { + if (parent is ParenthesizedExpression || + parent is ConditionalExpression || + parent is AwaitExpression) { return _isUsed(parent); }
diff --git a/pkg/analyzer/test/src/diagnostics/unused_result_test.dart b/pkg/analyzer/test/src/diagnostics/unused_result_test.dart index 4e18f96..cce3dca 100644 --- a/pkg/analyzer/test/src/diagnostics/unused_result_test.dart +++ b/pkg/analyzer/test/src/diagnostics/unused_result_test.dart
@@ -627,6 +627,20 @@ '''); } + test_topLevelFunction_result_awaited_future_passed() async { + await assertNoErrorsInCode(r''' +import 'package:meta/meta.dart'; + +@useResult +Future<List<String>> load() async => []; + +void f() async { + var l = []; + l.add(await load()); +} +'''); + } + test_topLevelFunction_result_optionNamedParam_unassigned_parameterDefined() async { await assertNoErrorsInCode(r''' import 'package:meta/meta.dart';