mirror of
https://github.com/rust-lang/rust
synced 2024-09-15 22:50:55 +00:00
don't suggest awaiting type expr patterns
This commit is contained in:
parent
d371d17496
commit
26677eb06e
|
@ -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);
|
||||||
|
|
|
@ -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() {}
|
||||||
|
|
|
@ -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`.
|
||||||
|
|
Loading…
Reference in a new issue