Address review comments from #98259#98365
Conversation
…bligation_cause_code` Most futures don't go through this code path, because they're caught by `maybe_note_obligation_cause_for_async_await`. But all generators do, and `maybe_note` is imperfect and doesn't catch all futures. Improve the error message for those it misses. At some point, we may want to consider unifying this with the code for `maybe_note_async_await`, so that `async_await` notes all parent constraints, and `note_obligation` can point to yield points. But both functions are quite complicated, and it's not clear to me how to combine them; this seems like a good incremental improvement.
It got merged so fast I didn't have time to make changes xD
|
✌️ @eholk can now approve this pull request |
|
📌 Commit b052d76 has been approved by |
|
🌲 The tree is currently closed for pull requests below priority 1000. This pull request will be tested once the tree is reopened. |
I'd love to! What's the process for doing this? |
|
Looks like these are the latest guidelines: https://forge.rust-lang.org/compiler/membership.html#how-promotion-decisions-are-made |
|
Awesome, thanks! |
| /// Given a `ty`, return whether it's an `impl Future<...>`. | ||
| pub fn ty_is_opaque_future(self, ty: Ty<'_>) -> bool { |
There was a problem hiding this comment.
I'm pretty sure this can be used in multiple places! I recall seeing similar needs elsewhere.
There was a problem hiding this comment.
Hmm, this is the only other place I see looking at opaque Future types:
that needs the
Output type from the future - maybe I shouldn't have added this method and I should just use get_impl_future_output_ty().is_some() instead?
There was a problem hiding this comment.
Yes, that'd be a good idea. Could you make a small PR for it at some point?
…view-comments, r=eholk Address review comments from rust-lang#98259 It got approved so fast I didn't have time to make changes xD r? `@eholk`
…piler-errors Rollup of 16 pull requests Successful merges: - rust-lang#96173 (Fix documentation for `with_capacity` and `reserve` families of methods) - rust-lang#98184 (Give name if anonymous region appears in impl signature) - rust-lang#98259 (Greatly improve error reporting for futures and generators in `note_obligation_cause_code`) - rust-lang#98269 (Provide a `PathSegment.res` in more cases) - rust-lang#98283 (Point at private fields in struct literal) - rust-lang#98305 (prohibit_generics: don't alloc error string if no error emitted) - rust-lang#98310 (rustdoc: optimize loading of source sidebar) - rust-lang#98353 (Migrate two diagnostics from the `rustc_builtin_macros` crate) - rust-lang#98355 (Update no_default_libraries handling for emscripten target) - rust-lang#98364 (clarify Arc::clone overflow check comment) - rust-lang#98365 (Address review comments from rust-lang#98259) - rust-lang#98388 (implement `iter_projections` function on `PlaceRef`) - rust-lang#98390 (Fixes handling of keywords in rustdoc json output) - rust-lang#98409 (triagebot.toml: Allow applying nominated labels) - rust-lang#98410 (Update books) - rust-lang#98422 (Update browser-ui-test version to 0.9.6) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
It got approved so fast I didn't have time to make changes xD
r? @eholk