don't suggest awaiting type expr patterns

This commit is contained in:
SparkyPotato 2024-06-24 16:20:22 -05:00
parent d371d17496
commit 26677eb06e
3 changed files with 24 additions and 3 deletions

View file

@ -209,8 +209,10 @@ pub(super) fn suggest_await_on_expect_found(
} }
(Some(ty), _) if self.same_type_modulo_infer(ty, exp_found.found) => match cause.code() (Some(ty), _) if self.same_type_modulo_infer(ty, exp_found.found) => match cause.code()
{ {
ObligationCauseCode::Pattern { span: Some(then_span), .. } => { ObligationCauseCode::Pattern { span: Some(then_span), origin_expr, .. } => {
Some(ConsiderAddingAwait::FutureSugg { span: then_span.shrink_to_hi() }) origin_expr.then_some(ConsiderAddingAwait::FutureSugg {
span: then_span.shrink_to_hi(),
})
} }
ObligationCauseCode::IfExpression(box IfExpressionCause { then_id, .. }) => { ObligationCauseCode::IfExpression(box IfExpressionCause { then_id, .. }) => {
let then_span = self.find_block_span_from_hir_id(*then_id); let then_span = self.find_block_span_from_hir_id(*then_id);

View file

@ -71,4 +71,11 @@ async fn suggest_await_in_generic_pattern() {
} }
} }
// Issue #126903
async fn do_async() {}
fn dont_suggest_awaiting_closure_patterns() {
Some(do_async()).map(|()| {});
//~^ ERROR mismatched types [E0308]
}
fn main() {} fn main() {}

View file

@ -133,6 +133,18 @@ help: consider `await`ing on the `Future`
LL | match dummy_result().await { LL | match dummy_result().await {
| ++++++ | ++++++
error: aborting due to 7 previous errors error[E0308]: mismatched types
--> $DIR/suggest-missing-await.rs:77:27
|
LL | Some(do_async()).map(|()| {});
| ^^
| |
| expected future, found `()`
| expected due to this
|
= note: expected opaque type `impl Future<Output = ()>`
found unit type `()`
error: aborting due to 8 previous errors
For more information about this error, try `rustc --explain E0308`. For more information about this error, try `rustc --explain E0308`.