rust/tests/ui/async-await
bors a56bd2b944 Auto merge of #116849 - oli-obk:error_shenanigans, r=cjgillot
Avoid a `track_errors` by bubbling up most errors from `check_well_formed`

I believe `track_errors` is mostly papering over issues that a sufficiently convoluted query graph can hit. I made this change, while the actual change I want to do is to stop bailing out early on errors, and instead use this new `ErrorGuaranteed` to invoke `check_well_formed` for individual items before doing all the `typeck` logic on them.

This works towards resolving https://github.com/rust-lang/rust/issues/97477 and various other ICEs, as well as allowing us to use parallel rustc more (which is currently rather limited/bottlenecked due to the very sequential nature in which we do `rustc_hir_analysis::check_crate`)

cc `@SparrowLii` `@Zoxc` for the new `try_par_for_each_in` function
2023-10-23 09:59:40 +00:00
..
auxiliary
await-keyword blessed the tests 2023-08-08 10:51:35 +08:00
drop-order
future-sizes s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
in-trait Don't ICE when encountering unresolved regions in fully_resolve 2023-10-18 20:39:29 +00:00
issues Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
multiple-lifetimes Adjust tests for new drop and forget lints 2023-05-10 19:36:02 +02:00
return-type-notation Stabilize AFIT and RPITIT 2023-10-13 21:01:36 +00:00
track-caller Add separate feature gate for async fn track caller 2023-08-02 14:18:21 -07:00
argument-patterns.rs
async-assoc-fn-anon-lifetimes.rs
async-await-let-else.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
async-await-let-else.stderr Point to full async fn for future 2023-10-03 02:25:32 +00:00
async-await.rs
async-block-control-flow-static-semantics.rs
async-block-control-flow-static-semantics.stderr adjust how closure/generator types and rvalues are printed 2023-09-21 22:20:58 +02:00
async-borrowck-escaping-block-error.fixed
async-borrowck-escaping-block-error.rs
async-borrowck-escaping-block-error.stderr
async-borrowck-escaping-closure-error.rs
async-borrowck-escaping-closure-error.stderr
async-closure-matches-expr.rs
async-closure.rs
async-error-span.rs Bless tests. 2023-09-23 13:47:30 +00:00
async-error-span.stderr Bless tests. 2023-09-23 13:47:30 +00:00
async-fn-elided-impl-lifetime-parameter.rs
async-fn-nonsend.rs Bless tests. 2023-09-23 13:47:30 +00:00
async-fn-nonsend.stderr Bless tests. 2023-09-23 13:47:30 +00:00
async-fn-path-elision.rs
async-fn-path-elision.stderr
async-fn-send-uses-nonsend.rs
async-fn-size-moved-locals.rs
async-fn-size-uninit-locals.rs
async-fn-size.rs
async-is-unwindsafe.rs
async-is-unwindsafe.stderr Bless tests. 2023-09-23 13:47:30 +00:00
async-matches-expr.rs
async-trait-fn.rs Stabilize AFIT and RPITIT 2023-10-13 21:01:36 +00:00
async-unsafe-fn-call-in-safe.mir.stderr
async-unsafe-fn-call-in-safe.rs
async-unsafe-fn-call-in-safe.thir.stderr
async-with-closure.rs
await-into-future.rs
await-sequence.rs Bless tests. 2023-09-23 13:47:30 +00:00
await-unsize.rs
awaiting-unsized-param.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
awaiting-unsized-param.stderr Revert duplication of tests. 2023-09-23 13:34:07 +00:00
bound-normalization.rs
clone-suggestion.fixed Tweak await span 2023-04-27 17:18:11 +00:00
clone-suggestion.rs Tweak await span 2023-04-27 17:18:11 +00:00
clone-suggestion.stderr Don't use method span on clone suggestion 2023-07-10 20:09:28 +00:00
conditional-and-guaranteed-initialization.rs
const-async-fn-in-main.rs add test 2023-09-26 20:15:28 +00:00
const-async-fn-in-main.stderr add test 2023-09-26 20:15:28 +00:00
coroutine-desc.rs Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
coroutine-desc.stderr Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
coroutine-not-future.rs Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
coroutine-not-future.stderr Rename lots of files that had generator in their name 2023-10-20 21:14:02 +00:00
debug-ice-attempted-to-add-with-overflow.rs Add test for rust-lang#114912 2023-09-29 22:39:02 +10:00
debug-ice-attempted-to-add-with-overflow.stderr Add test for rust-lang#114912 2023-09-29 22:39:02 +10:00
deep-futures-are-freeze.rs Normalize before checking if local is freeze in deduced_param_attrs 2023-08-17 14:33:24 -07:00
default-struct-update.rs Bless tests. 2023-09-23 13:47:30 +00:00
dont-print-desugared-async.rs
dont-print-desugared-async.stderr
dont-suggest-await-on-method-return-mismatch.rs
dont-suggest-await-on-method-return-mismatch.stderr
dont-suggest-missing-await.rs
dont-suggest-missing-await.stderr
drop-and-assign.rs Bless tests. 2023-09-23 13:47:30 +00:00
drop-track-bad-field-in-fru.rs Bless tests. 2023-09-23 13:47:30 +00:00
drop-track-bad-field-in-fru.stderr Bless tests. 2023-09-23 13:47:30 +00:00
drop-track-field-assign-nonsend.rs Bless tests. 2023-09-23 13:47:30 +00:00
drop-track-field-assign-nonsend.stderr Bless tests. 2023-09-23 13:47:30 +00:00
drop-track-field-assign.rs Bless tests. 2023-09-23 13:47:30 +00:00
drop-tracking-unresolved-typeck-results.rs Bless tests. 2023-09-23 13:47:30 +00:00
drop-tracking-unresolved-typeck-results.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
edition-deny-async-fns-2015.rs Stabilize AFIT and RPITIT 2023-10-13 21:01:36 +00:00
edition-deny-async-fns-2015.stderr Stabilize AFIT and RPITIT 2023-10-13 21:01:36 +00:00
expansion-in-attrs.rs
feature-async-closure.rs
feature-async-closure.stderr
feature-self-return-type.rs Stabilize impl_trait_projections 2023-09-08 03:45:36 +00:00
feature-self-return-type.stderr Stabilize impl_trait_projections 2023-09-08 03:45:36 +00:00
field-assign-nonsend.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
field-assign-nonsend.stderr Bless tests. 2023-09-23 13:47:30 +00:00
field-assign.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
future-contains-err-issue-115188.rs More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
future-contains-err-issue-115188.stderr More precisely detect cycle errors from type_of on opaque 2023-08-27 22:03:16 +00:00
futures-api.rs
generics-and-bounds.rs
incorrect-move-async-order-issue-79694.fixed
incorrect-move-async-order-issue-79694.rs
incorrect-move-async-order-issue-79694.stderr
interior-with-const-generic-expr.rs
issue-54239-private-type-triggers-lint.rs
issue-60709.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
issue-61076.rs
issue-61076.stderr
issue-61452.rs
issue-61452.stderr Do not set up wrong span for adjustments 2023-07-10 20:09:26 +00:00
issue-61793.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
issue-62658.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
issue-63832-await-short-temporary-lifetime-1.rs
issue-63832-await-short-temporary-lifetime.rs
issue-64130-1-sync.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-64130-1-sync.stderr Bless tests. 2023-09-23 13:47:30 +00:00
issue-64130-2-send.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-64130-2-send.stderr Bless tests. 2023-09-23 13:47:30 +00:00
issue-64130-3-other.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-64130-3-other.stderr Point to full async fn for future 2023-10-03 02:25:32 +00:00
issue-64130-4-async-move.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-64130-non-send-future-diags.rs
issue-64130-non-send-future-diags.stderr Bless tests. 2023-09-23 13:47:30 +00:00
issue-64391.rs
issue-66312.rs Avoid a track_errors by bubbling up most errors from check_well_formed 2023-10-20 08:46:27 +00:00
issue-66312.stderr Avoid a track_errors by bubbling up most errors from check_well_formed 2023-10-20 08:46:27 +00:00
issue-66387-if-without-else.rs
issue-66387-if-without-else.stderr
issue-67252-unnamed-future.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-67252-unnamed-future.stderr Bless tests. 2023-09-23 13:47:30 +00:00
issue-67651.rs
issue-67651.stderr
issue-67765-async-diagnostic.rs
issue-67765-async-diagnostic.stderr
issue-68112.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-68112.stderr Bless tests. 2023-09-23 13:47:30 +00:00
issue-68523-start.rs Change start to #[start] in some diagnosis 2023-09-22 15:58:43 +02:00
issue-68523-start.stderr Change start to #[start] in some diagnosis 2023-09-22 15:58:43 +02:00
issue-68523.rs
issue-68523.stderr
issue-69446-fnmut-capture.rs
issue-69446-fnmut-capture.stderr
issue-70594.rs
issue-70594.stderr Tweak await span 2023-04-27 17:18:11 +00:00
issue-70818.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
issue-70818.stderr Revert duplication of tests. 2023-09-23 13:34:07 +00:00
issue-70935-complex-spans.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-70935-complex-spans.stderr Bless tests. 2023-09-23 13:47:30 +00:00
issue-71137.rs
issue-71137.stderr Bless tests. 2023-09-23 13:47:30 +00:00
issue-72442.rs
issue-72442.stderr
issue-72470-llvm-dominate.rs
issue-72590-type-error-sized.rs
issue-72590-type-error-sized.stderr
issue-73050.rs
issue-73137.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
issue-73541-1.rs
issue-73541-1.stderr
issue-73541-2.rs
issue-73541-2.stderr
issue-73541-3.rs
issue-73541-3.stderr
issue-73541.rs
issue-73541.stderr
issue-73741-type-err.rs
issue-73741-type-err.stderr
issue-74047.rs
issue-74047.stderr Make missing impl item suggestions more obvious that they're missing 2023-04-19 17:57:37 +00:00
issue-74072-lifetime-name-annotations.rs
issue-74072-lifetime-name-annotations.stderr
issue-74497-lifetime-in-opaque.rs
issue-74497-lifetime-in-opaque.stderr
issue-75785-confusing-named-region.rs
issue-75785-confusing-named-region.stderr
issue-76547.rs
issue-76547.stderr
issue-77993-2.rs
issue-77993-2.stderr
issue-78115.rs Move tests 2023-05-24 19:35:59 -03:00
issue-84841.rs
issue-84841.stderr
issue-86507.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
issue-86507.stderr Revert duplication of tests. 2023-09-23 13:34:07 +00:00
issue-93197.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-93648.rs Bless tests. 2023-09-23 13:47:30 +00:00
issue-98634.rs
issue-98634.stderr Tweak await span 2023-04-27 17:18:11 +00:00
issue-101715.rs
issue-101715.stderr tweak removal span 2023-04-27 17:18:12 +00:00
issue-105501.rs
issue-107036.rs
issue-108572.fixed Suggest pin!() instead of Pin::new() when appropriate 2023-08-14 19:41:57 +00:00
issue-108572.rs Suggest pin!() instead of Pin::new() when appropriate 2023-08-14 19:41:57 +00:00
issue-108572.stderr Suggest pin!() instead of Pin::new() when appropriate 2023-08-14 19:41:57 +00:00
missed-capture-issue-107414.rs Add more if let guard tests 2023-09-19 12:48:40 +00:00
move-part-await-return-rest-struct.rs
move-part-await-return-rest-tuple.rs
mutually-recursive-async-impl-trait-type.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
mutually-recursive-async-impl-trait-type.stderr Point to full async fn for future 2023-10-03 02:25:32 +00:00
nested-in-impl.rs
no-async-const.rs
no-async-const.stderr
no-const-async.rs
no-const-async.stderr
no-move-across-await-struct.rs
no-move-across-await-struct.stderr
no-move-across-await-tuple.rs
no-move-across-await-tuple.stderr
no-non-guaranteed-initialization.rs
no-non-guaranteed-initialization.stderr
no-params-non-move-async-closure.rs
no-params-non-move-async-closure.stderr
no-std.rs
no-unsafe-async.rs
no-unsafe-async.stderr
non-trivial-drop.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
normalize-output-in-signature-deduction.rs Normalize return type of deduce_future_output_from_obligations 2023-08-16 14:28:19 -07:00
partial-drop-partial-reinit.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
partial-drop-partial-reinit.stderr Point to full async fn for future 2023-10-03 02:25:32 +00:00
partial-initialization-across-await.rs
partial-initialization-across-await.stderr
pin-needed-to-poll-2.rs
pin-needed-to-poll-2.stderr Added diagnostic for pin! macro in addition to Box::pin if Unpin isn't implemented 2023-04-12 18:03:11 -04:00
pin-needed-to-poll.rs
pin-needed-to-poll.stderr Suggest pin!() instead of Pin::new() when appropriate 2023-08-14 19:41:57 +00:00
proper-span-for-type-error.fixed
proper-span-for-type-error.rs
proper-span-for-type-error.stderr
recursive-async-impl-trait-type.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
recursive-async-impl-trait-type.stderr Point to full async fn for future 2023-10-03 02:25:32 +00:00
repeat_count_const_in_async_fn.rs
return-ty-raw-ptr-coercion.rs
return-ty-unsize-coercion.rs
send-bound-async-closure.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
suggest-missing-await-closure.fixed
suggest-missing-await-closure.rs
suggest-missing-await-closure.stderr
suggest-missing-await.rs
suggest-missing-await.stderr
suggest-switching-edition-on-await-cargo.rs
suggest-switching-edition-on-await-cargo.stderr
suggest-switching-edition-on-await.rs
suggest-switching-edition-on-await.stderr
task-context-arg.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
try-on-option-in-async.rs
try-on-option-in-async.stderr
type-parameter-send.rs
unnecessary-await.rs fix spans for removing .await on for expressions 2023-10-21 13:18:00 +02:00
unnecessary-await.stderr fix spans for removing .await on for expressions 2023-10-21 13:18:00 +02:00
unreachable-lint-1.rs
unreachable-lint-1.stderr
unreachable-lint.rs
unresolved_type_param.rs Bless tests. 2023-09-23 13:47:30 +00:00
unresolved_type_param.stderr Bless tests. 2023-09-23 13:47:30 +00:00
unsized-across-await.rs Revert duplication of tests. 2023-09-23 13:34:07 +00:00
unsized-across-await.stderr Revert duplication of tests. 2023-09-23 13:34:07 +00:00
unused-lifetime.rs
unused-lifetime.stderr