summaryrefslogtreecommitdiffstats
path: root/tests/ui/async-await
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/async-await
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--tests/ui/async-await/argument-patterns.rs (renamed from src/test/ui/async-await/argument-patterns.rs)0
-rw-r--r--tests/ui/async-await/async-assoc-fn-anon-lifetimes.rs (renamed from src/test/ui/async-await/async-assoc-fn-anon-lifetimes.rs)0
-rw-r--r--tests/ui/async-await/async-await-let-else.drop-tracking.stderr (renamed from src/test/ui/async-await/async-await-let-else.drop-tracking.stderr)10
-rw-r--r--tests/ui/async-await/async-await-let-else.no-drop-tracking.stderr (renamed from src/test/ui/async-await/async-await-let-else.no-drop-tracking.stderr)10
-rw-r--r--tests/ui/async-await/async-await-let-else.rs (renamed from src/test/ui/async-await/async-await-let-else.rs)0
-rw-r--r--tests/ui/async-await/async-await.rs (renamed from src/test/ui/async-await/async-await.rs)0
-rw-r--r--tests/ui/async-await/async-block-control-flow-static-semantics.rs (renamed from src/test/ui/async-await/async-block-control-flow-static-semantics.rs)0
-rw-r--r--tests/ui/async-await/async-block-control-flow-static-semantics.stderr (renamed from src/test/ui/async-await/async-block-control-flow-static-semantics.stderr)0
-rw-r--r--tests/ui/async-await/async-borrowck-escaping-block-error.fixed (renamed from src/test/ui/async-await/async-borrowck-escaping-block-error.fixed)0
-rw-r--r--tests/ui/async-await/async-borrowck-escaping-block-error.rs (renamed from src/test/ui/async-await/async-borrowck-escaping-block-error.rs)0
-rw-r--r--tests/ui/async-await/async-borrowck-escaping-block-error.stderr (renamed from src/test/ui/async-await/async-borrowck-escaping-block-error.stderr)0
-rw-r--r--tests/ui/async-await/async-borrowck-escaping-closure-error.rs (renamed from src/test/ui/async-await/async-borrowck-escaping-closure-error.rs)0
-rw-r--r--tests/ui/async-await/async-borrowck-escaping-closure-error.stderr (renamed from src/test/ui/async-await/async-borrowck-escaping-closure-error.stderr)0
-rw-r--r--tests/ui/async-await/async-closure-matches-expr.rs (renamed from src/test/ui/async-await/async-closure-matches-expr.rs)0
-rw-r--r--tests/ui/async-await/async-closure.rs (renamed from src/test/ui/async-await/async-closure.rs)0
-rw-r--r--tests/ui/async-await/async-error-span.rs (renamed from src/test/ui/async-await/async-error-span.rs)0
-rw-r--r--tests/ui/async-await/async-error-span.stderr (renamed from src/test/ui/async-await/async-error-span.stderr)0
-rw-r--r--tests/ui/async-await/async-fn-elided-impl-lifetime-parameter.rs (renamed from src/test/ui/async-await/async-fn-elided-impl-lifetime-parameter.rs)0
-rw-r--r--tests/ui/async-await/async-fn-nonsend.rs (renamed from src/test/ui/async-await/async-fn-nonsend.rs)0
-rw-r--r--tests/ui/async-await/async-fn-nonsend.stderr (renamed from src/test/ui/async-await/async-fn-nonsend.stderr)0
-rw-r--r--tests/ui/async-await/async-fn-path-elision.rs (renamed from src/test/ui/async-await/async-fn-path-elision.rs)0
-rw-r--r--tests/ui/async-await/async-fn-path-elision.stderr (renamed from src/test/ui/async-await/async-fn-path-elision.stderr)0
-rw-r--r--tests/ui/async-await/async-fn-send-uses-nonsend.rs (renamed from src/test/ui/async-await/async-fn-send-uses-nonsend.rs)0
-rw-r--r--tests/ui/async-await/async-fn-size-moved-locals.rs (renamed from src/test/ui/async-await/async-fn-size-moved-locals.rs)0
-rw-r--r--tests/ui/async-await/async-fn-size-uninit-locals.rs (renamed from src/test/ui/async-await/async-fn-size-uninit-locals.rs)0
-rw-r--r--tests/ui/async-await/async-fn-size.rs (renamed from src/test/ui/async-await/async-fn-size.rs)0
-rw-r--r--tests/ui/async-await/async-is-unwindsafe.rs30
-rw-r--r--tests/ui/async-await/async-is-unwindsafe.stderr38
-rw-r--r--tests/ui/async-await/async-matches-expr.rs (renamed from src/test/ui/async-await/async-matches-expr.rs)0
-rw-r--r--tests/ui/async-await/async-trait-fn.rs (renamed from src/test/ui/async-await/async-trait-fn.rs)0
-rw-r--r--tests/ui/async-await/async-trait-fn.stderr (renamed from src/test/ui/async-await/async-trait-fn.stderr)0
-rw-r--r--tests/ui/async-await/async-unsafe-fn-call-in-safe.mir.stderr (renamed from src/test/ui/async-await/async-unsafe-fn-call-in-safe.mir.stderr)0
-rw-r--r--tests/ui/async-await/async-unsafe-fn-call-in-safe.rs (renamed from src/test/ui/async-await/async-unsafe-fn-call-in-safe.rs)0
-rw-r--r--tests/ui/async-await/async-unsafe-fn-call-in-safe.thir.stderr (renamed from src/test/ui/async-await/async-unsafe-fn-call-in-safe.thir.stderr)0
-rw-r--r--tests/ui/async-await/async-with-closure.rs (renamed from src/test/ui/async-await/async-with-closure.rs)0
-rw-r--r--tests/ui/async-await/auxiliary/arc_wake.rs (renamed from src/test/ui/async-await/auxiliary/arc_wake.rs)0
-rw-r--r--tests/ui/async-await/auxiliary/issue-107036.rs (renamed from src/test/ui/async-await/auxiliary/issue-107036.rs)0
-rw-r--r--tests/ui/async-await/auxiliary/issue-72470-lib.rs (renamed from src/test/ui/async-await/auxiliary/issue-72470-lib.rs)0
-rw-r--r--tests/ui/async-await/await-into-future.rs (renamed from src/test/ui/async-await/await-into-future.rs)0
-rw-r--r--tests/ui/async-await/await-keyword/2015-edition-error-various-positions.rs (renamed from src/test/ui/async-await/await-keyword/2015-edition-error-various-positions.rs)0
-rw-r--r--tests/ui/async-await/await-keyword/2015-edition-error-various-positions.stderr (renamed from src/test/ui/async-await/await-keyword/2015-edition-error-various-positions.stderr)0
-rw-r--r--tests/ui/async-await/await-keyword/2015-edition-warning.fixed (renamed from src/test/ui/async-await/await-keyword/2015-edition-warning.fixed)0
-rw-r--r--tests/ui/async-await/await-keyword/2015-edition-warning.rs (renamed from src/test/ui/async-await/await-keyword/2015-edition-warning.rs)0
-rw-r--r--tests/ui/async-await/await-keyword/2015-edition-warning.stderr (renamed from src/test/ui/async-await/await-keyword/2015-edition-warning.stderr)0
-rw-r--r--tests/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.rs (renamed from src/test/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.rs)0
-rw-r--r--tests/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.stderr (renamed from src/test/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.stderr)0
-rw-r--r--tests/ui/async-await/await-keyword/2018-edition-error.rs (renamed from src/test/ui/async-await/await-keyword/2018-edition-error.rs)0
-rw-r--r--tests/ui/async-await/await-keyword/2018-edition-error.stderr (renamed from src/test/ui/async-await/await-keyword/2018-edition-error.stderr)0
-rw-r--r--tests/ui/async-await/await-keyword/incorrect-syntax-suggestions.rs (renamed from src/test/ui/async-await/await-keyword/incorrect-syntax-suggestions.rs)0
-rw-r--r--tests/ui/async-await/await-keyword/incorrect-syntax-suggestions.stderr (renamed from src/test/ui/async-await/await-keyword/incorrect-syntax-suggestions.stderr)0
-rw-r--r--tests/ui/async-await/await-keyword/post_expansion_error.rs (renamed from src/test/ui/async-await/await-keyword/post_expansion_error.rs)0
-rw-r--r--tests/ui/async-await/await-keyword/post_expansion_error.stderr (renamed from src/test/ui/async-await/await-keyword/post_expansion_error.stderr)0
-rw-r--r--tests/ui/async-await/await-sequence.rs21
-rw-r--r--tests/ui/async-await/await-unsize.rs (renamed from src/test/ui/async-await/await-unsize.rs)0
-rw-r--r--tests/ui/async-await/bound-normalization.rs (renamed from src/test/ui/async-await/bound-normalization.rs)0
-rw-r--r--tests/ui/async-await/conditional-and-guaranteed-initialization.rs (renamed from src/test/ui/async-await/conditional-and-guaranteed-initialization.rs)0
-rw-r--r--tests/ui/async-await/default-struct-update.rs (renamed from src/test/ui/async-await/default-struct-update.rs)0
-rw-r--r--tests/ui/async-await/dont-print-desugared-async.rs (renamed from src/test/ui/async-await/dont-print-desugared-async.rs)0
-rw-r--r--tests/ui/async-await/dont-print-desugared-async.stderr (renamed from src/test/ui/async-await/dont-print-desugared-async.stderr)0
-rw-r--r--tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.rs24
-rw-r--r--tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.stderr9
-rw-r--r--tests/ui/async-await/dont-suggest-missing-await.rs (renamed from src/test/ui/async-await/dont-suggest-missing-await.rs)0
-rw-r--r--tests/ui/async-await/dont-suggest-missing-await.stderr (renamed from src/test/ui/async-await/dont-suggest-missing-await.stderr)0
-rw-r--r--tests/ui/async-await/drop-and-assign.rs (renamed from src/test/ui/async-await/drop-and-assign.rs)0
-rw-r--r--tests/ui/async-await/drop-order/auxiliary/arc_wake.rs (renamed from src/test/ui/async-await/drop-order/auxiliary/arc_wake.rs)0
-rw-r--r--tests/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs (renamed from src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs)0
-rw-r--r--tests/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs (renamed from src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs)0
-rw-r--r--tests/ui/async-await/drop-order/drop-order-for-locals-when-cancelled.rs (renamed from src/test/ui/async-await/drop-order/drop-order-for-locals-when-cancelled.rs)0
-rw-r--r--tests/ui/async-await/drop-order/drop-order-for-temporary-in-tail-return-expr.rs (renamed from src/test/ui/async-await/drop-order/drop-order-for-temporary-in-tail-return-expr.rs)0
-rw-r--r--tests/ui/async-await/drop-order/drop-order-locals-are-hidden.rs (renamed from src/test/ui/async-await/drop-order/drop-order-locals-are-hidden.rs)0
-rw-r--r--tests/ui/async-await/drop-order/drop-order-locals-are-hidden.stderr (renamed from src/test/ui/async-await/drop-order/drop-order-locals-are-hidden.stderr)0
-rw-r--r--tests/ui/async-await/drop-order/drop-order-when-cancelled.rs (renamed from src/test/ui/async-await/drop-order/drop-order-when-cancelled.rs)0
-rw-r--r--tests/ui/async-await/drop-track-bad-field-in-fru.rs (renamed from src/test/ui/async-await/drop-track-bad-field-in-fru.rs)0
-rw-r--r--tests/ui/async-await/drop-track-bad-field-in-fru.stderr (renamed from src/test/ui/async-await/drop-track-bad-field-in-fru.stderr)0
-rw-r--r--tests/ui/async-await/drop-track-field-assign-nonsend.rs (renamed from src/test/ui/async-await/drop-track-field-assign-nonsend.rs)0
-rw-r--r--tests/ui/async-await/drop-track-field-assign-nonsend.stderr (renamed from src/test/ui/async-await/drop-track-field-assign-nonsend.stderr)0
-rw-r--r--tests/ui/async-await/drop-track-field-assign.rs (renamed from src/test/ui/async-await/drop-track-field-assign.rs)0
-rw-r--r--tests/ui/async-await/drop-tracking-unresolved-typeck-results.rs (renamed from src/test/ui/async-await/drop-tracking-unresolved-typeck-results.rs)0
-rw-r--r--tests/ui/async-await/drop-tracking-unresolved-typeck-results.stderr (renamed from src/test/ui/async-await/drop-tracking-unresolved-typeck-results.stderr)0
-rw-r--r--tests/ui/async-await/edition-deny-async-fns-2015.rs (renamed from src/test/ui/async-await/edition-deny-async-fns-2015.rs)0
-rw-r--r--tests/ui/async-await/edition-deny-async-fns-2015.stderr (renamed from src/test/ui/async-await/edition-deny-async-fns-2015.stderr)0
-rw-r--r--tests/ui/async-await/expansion-in-attrs.rs (renamed from src/test/ui/async-await/expansion-in-attrs.rs)0
-rw-r--r--tests/ui/async-await/feature-async-closure.rs (renamed from src/test/ui/async-await/feature-async-closure.rs)0
-rw-r--r--tests/ui/async-await/feature-async-closure.stderr (renamed from src/test/ui/async-await/feature-async-closure.stderr)0
-rw-r--r--tests/ui/async-await/feature-gate-async_fn_in_trait.rs (renamed from src/test/ui/async-await/feature-gate-async_fn_in_trait.rs)0
-rw-r--r--tests/ui/async-await/feature-gate-async_fn_in_trait.stderr (renamed from src/test/ui/async-await/feature-gate-async_fn_in_trait.stderr)0
-rw-r--r--tests/ui/async-await/feature-self-return-type.rs (renamed from src/test/ui/async-await/feature-self-return-type.rs)0
-rw-r--r--tests/ui/async-await/feature-self-return-type.stderr (renamed from src/test/ui/async-await/feature-self-return-type.stderr)0
-rw-r--r--tests/ui/async-await/futures-api.rs (renamed from src/test/ui/async-await/futures-api.rs)0
-rw-r--r--tests/ui/async-await/generator-desc.rs (renamed from src/test/ui/async-await/generator-desc.rs)0
-rw-r--r--tests/ui/async-await/generator-desc.stderr (renamed from src/test/ui/async-await/generator-desc.stderr)3
-rw-r--r--tests/ui/async-await/generator-not-future.rs (renamed from src/test/ui/async-await/generator-not-future.rs)0
-rw-r--r--tests/ui/async-await/generator-not-future.stderr (renamed from src/test/ui/async-await/generator-not-future.stderr)0
-rw-r--r--tests/ui/async-await/generics-and-bounds.rs (renamed from src/test/ui/async-await/generics-and-bounds.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-associated-types.rs (renamed from src/test/ui/async-await/in-trait/async-associated-types.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-associated-types2.rs (renamed from src/test/ui/async-await/in-trait/async-associated-types2.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.rs (renamed from src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.stderr (renamed from src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.stderr)4
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-boxed.rs21
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-boxed.stderr11
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-extra.rs37
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-in-trait.rs (renamed from src/test/ui/async-await/in-trait/async-example-desugared-in-trait.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-manual.rs29
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared-manual.stderr11
-rw-r--r--tests/ui/async-await/in-trait/async-example-desugared.rs20
-rw-r--r--tests/ui/async-await/in-trait/async-example.rs (renamed from src/test/ui/async-await/in-trait/async-example.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-generics-and-bounds.rs (renamed from src/test/ui/async-await/in-trait/async-generics-and-bounds.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-generics-and-bounds.stderr (renamed from src/test/ui/async-await/in-trait/async-generics-and-bounds.stderr)0
-rw-r--r--tests/ui/async-await/in-trait/async-generics.rs (renamed from src/test/ui/async-await/in-trait/async-generics.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-generics.stderr (renamed from src/test/ui/async-await/in-trait/async-generics.stderr)0
-rw-r--r--tests/ui/async-await/in-trait/async-lifetimes-and-bounds.rs (renamed from src/test/ui/async-await/in-trait/async-lifetimes-and-bounds.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-lifetimes.rs (renamed from src/test/ui/async-await/in-trait/async-lifetimes.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-recursive-generic.rs (renamed from src/test/ui/async-await/in-trait/async-recursive-generic.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-recursive-generic.stderr (renamed from src/test/ui/async-await/in-trait/async-recursive-generic.stderr)0
-rw-r--r--tests/ui/async-await/in-trait/async-recursive.rs (renamed from src/test/ui/async-await/in-trait/async-recursive.rs)0
-rw-r--r--tests/ui/async-await/in-trait/async-recursive.stderr (renamed from src/test/ui/async-await/in-trait/async-recursive.stderr)0
-rw-r--r--tests/ui/async-await/in-trait/bad-signatures.rs16
-rw-r--r--tests/ui/async-await/in-trait/bad-signatures.stderr26
-rw-r--r--tests/ui/async-await/in-trait/early-bound-1.rs (renamed from src/test/ui/async-await/in-trait/early-bound-1.rs)0
-rw-r--r--tests/ui/async-await/in-trait/early-bound-2.rs (renamed from src/test/ui/async-await/in-trait/early-bound-2.rs)0
-rw-r--r--tests/ui/async-await/in-trait/fn-not-async-err.rs (renamed from src/test/ui/async-await/in-trait/fn-not-async-err.rs)2
-rw-r--r--tests/ui/async-await/in-trait/fn-not-async-err.stderr11
-rw-r--r--tests/ui/async-await/in-trait/fn-not-async-err2.rs (renamed from src/test/ui/async-await/in-trait/fn-not-async-err2.rs)4
-rw-r--r--tests/ui/async-await/in-trait/fn-not-async-err2.stderr (renamed from src/test/ui/async-await/in-trait/fn-not-async-err2.stderr)0
-rw-r--r--tests/ui/async-await/in-trait/implied-bounds.rs (renamed from src/test/ui/async-await/in-trait/implied-bounds.rs)0
-rw-r--r--tests/ui/async-await/in-trait/issue-102138.rs (renamed from src/test/ui/async-await/in-trait/issue-102138.rs)0
-rw-r--r--tests/ui/async-await/in-trait/issue-102219.rs (renamed from src/test/ui/async-await/in-trait/issue-102219.rs)0
-rw-r--r--tests/ui/async-await/in-trait/issue-102310.rs (renamed from src/test/ui/async-await/in-trait/issue-102310.rs)0
-rw-r--r--tests/ui/async-await/in-trait/issue-104678.rs31
-rw-r--r--tests/ui/async-await/in-trait/lifetime-mismatch.rs (renamed from src/test/ui/async-await/in-trait/lifetime-mismatch.rs)0
-rw-r--r--tests/ui/async-await/in-trait/lifetime-mismatch.stderr (renamed from src/test/ui/async-await/in-trait/lifetime-mismatch.stderr)0
-rw-r--r--tests/ui/async-await/in-trait/missing-send-bound.rs21
-rw-r--r--tests/ui/async-await/in-trait/missing-send-bound.stderr29
-rw-r--r--tests/ui/async-await/in-trait/nested-rpit.rs (renamed from src/test/ui/async-await/in-trait/nested-rpit.rs)0
-rw-r--r--tests/ui/async-await/in-trait/object-safety.rs (renamed from src/test/ui/async-await/in-trait/object-safety.rs)0
-rw-r--r--tests/ui/async-await/in-trait/object-safety.stderr (renamed from src/test/ui/async-await/in-trait/object-safety.stderr)0
-rw-r--r--tests/ui/async-await/in-trait/return-type-suggestion.rs (renamed from src/test/ui/async-await/in-trait/return-type-suggestion.rs)0
-rw-r--r--tests/ui/async-await/in-trait/return-type-suggestion.stderr (renamed from src/test/ui/async-await/in-trait/return-type-suggestion.stderr)0
-rw-r--r--tests/ui/async-await/incorrect-move-async-order-issue-79694.fixed (renamed from src/test/ui/async-await/incorrect-move-async-order-issue-79694.fixed)0
-rw-r--r--tests/ui/async-await/incorrect-move-async-order-issue-79694.rs (renamed from src/test/ui/async-await/incorrect-move-async-order-issue-79694.rs)0
-rw-r--r--tests/ui/async-await/incorrect-move-async-order-issue-79694.stderr (renamed from src/test/ui/async-await/incorrect-move-async-order-issue-79694.stderr)0
-rw-r--r--tests/ui/async-await/interior-with-const-generic-expr.rs (renamed from src/test/ui/async-await/interior-with-const-generic-expr.rs)0
-rw-r--r--tests/ui/async-await/issue-101715.rs (renamed from src/test/ui/async-await/issue-101715.rs)0
-rw-r--r--tests/ui/async-await/issue-101715.stderr (renamed from src/test/ui/async-await/issue-101715.stderr)0
-rw-r--r--tests/ui/async-await/issue-105501.rs165
-rw-r--r--tests/ui/async-await/issue-107036.rs (renamed from src/test/ui/async-await/issue-107036.rs)0
-rw-r--r--tests/ui/async-await/issue-54239-private-type-triggers-lint.rs (renamed from src/test/ui/async-await/issue-54239-private-type-triggers-lint.rs)0
-rw-r--r--tests/ui/async-await/issue-60709.rs (renamed from src/test/ui/async-await/issue-60709.rs)0
-rw-r--r--tests/ui/async-await/issue-61076.rs (renamed from src/test/ui/async-await/issue-61076.rs)0
-rw-r--r--tests/ui/async-await/issue-61076.stderr (renamed from src/test/ui/async-await/issue-61076.stderr)0
-rw-r--r--tests/ui/async-await/issue-61452.rs (renamed from src/test/ui/async-await/issue-61452.rs)0
-rw-r--r--tests/ui/async-await/issue-61452.stderr (renamed from src/test/ui/async-await/issue-61452.stderr)7
-rw-r--r--tests/ui/async-await/issue-61793.rs (renamed from src/test/ui/async-await/issue-61793.rs)0
-rw-r--r--tests/ui/async-await/issue-61949-self-return-type.rs (renamed from src/test/ui/async-await/issue-61949-self-return-type.rs)0
-rw-r--r--tests/ui/async-await/issue-61949-self-return-type.stderr (renamed from src/test/ui/async-await/issue-61949-self-return-type.stderr)0
-rw-r--r--tests/ui/async-await/issue-62658.rs (renamed from src/test/ui/async-await/issue-62658.rs)0
-rw-r--r--tests/ui/async-await/issue-63832-await-short-temporary-lifetime-1.rs (renamed from src/test/ui/async-await/issue-63832-await-short-temporary-lifetime-1.rs)0
-rw-r--r--tests/ui/async-await/issue-63832-await-short-temporary-lifetime.rs (renamed from src/test/ui/async-await/issue-63832-await-short-temporary-lifetime.rs)0
-rw-r--r--tests/ui/async-await/issue-64130-1-sync.rs (renamed from src/test/ui/async-await/issue-64130-1-sync.rs)0
-rw-r--r--tests/ui/async-await/issue-64130-1-sync.stderr (renamed from src/test/ui/async-await/issue-64130-1-sync.stderr)0
-rw-r--r--tests/ui/async-await/issue-64130-2-send.rs (renamed from src/test/ui/async-await/issue-64130-2-send.rs)0
-rw-r--r--tests/ui/async-await/issue-64130-2-send.stderr (renamed from src/test/ui/async-await/issue-64130-2-send.stderr)0
-rw-r--r--tests/ui/async-await/issue-64130-3-other.rs (renamed from src/test/ui/async-await/issue-64130-3-other.rs)0
-rw-r--r--tests/ui/async-await/issue-64130-3-other.stderr (renamed from src/test/ui/async-await/issue-64130-3-other.stderr)0
-rw-r--r--tests/ui/async-await/issue-64130-4-async-move.drop-tracking.stderr (renamed from src/test/ui/async-await/issue-64130-4-async-move.drop-tracking.stderr)0
-rw-r--r--tests/ui/async-await/issue-64130-4-async-move.no_drop_tracking.stderr (renamed from src/test/ui/async-await/issue-64130-4-async-move.no_drop_tracking.stderr)0
-rw-r--r--tests/ui/async-await/issue-64130-4-async-move.rs (renamed from src/test/ui/async-await/issue-64130-4-async-move.rs)0
-rw-r--r--tests/ui/async-await/issue-64130-non-send-future-diags.rs (renamed from src/test/ui/async-await/issue-64130-non-send-future-diags.rs)0
-rw-r--r--tests/ui/async-await/issue-64130-non-send-future-diags.stderr (renamed from src/test/ui/async-await/issue-64130-non-send-future-diags.stderr)0
-rw-r--r--tests/ui/async-await/issue-64391.rs (renamed from src/test/ui/async-await/issue-64391.rs)0
-rw-r--r--tests/ui/async-await/issue-66312.rs (renamed from src/test/ui/async-await/issue-66312.rs)0
-rw-r--r--tests/ui/async-await/issue-66312.stderr (renamed from src/test/ui/async-await/issue-66312.stderr)0
-rw-r--r--tests/ui/async-await/issue-66387-if-without-else.rs (renamed from src/test/ui/async-await/issue-66387-if-without-else.rs)0
-rw-r--r--tests/ui/async-await/issue-66387-if-without-else.stderr (renamed from src/test/ui/async-await/issue-66387-if-without-else.stderr)0
-rw-r--r--tests/ui/async-await/issue-67252-unnamed-future.rs (renamed from src/test/ui/async-await/issue-67252-unnamed-future.rs)0
-rw-r--r--tests/ui/async-await/issue-67252-unnamed-future.stderr (renamed from src/test/ui/async-await/issue-67252-unnamed-future.stderr)0
-rw-r--r--tests/ui/async-await/issue-67651.rs (renamed from src/test/ui/async-await/issue-67651.rs)0
-rw-r--r--tests/ui/async-await/issue-67651.stderr (renamed from src/test/ui/async-await/issue-67651.stderr)0
-rw-r--r--tests/ui/async-await/issue-67765-async-diagnostic.rs (renamed from src/test/ui/async-await/issue-67765-async-diagnostic.rs)0
-rw-r--r--tests/ui/async-await/issue-67765-async-diagnostic.stderr (renamed from src/test/ui/async-await/issue-67765-async-diagnostic.stderr)0
-rw-r--r--tests/ui/async-await/issue-68112.drop_tracking.stderr (renamed from src/test/ui/async-await/issue-68112.drop_tracking.stderr)0
-rw-r--r--tests/ui/async-await/issue-68112.no_drop_tracking.stderr (renamed from src/test/ui/async-await/issue-68112.no_drop_tracking.stderr)0
-rw-r--r--tests/ui/async-await/issue-68112.rs (renamed from src/test/ui/async-await/issue-68112.rs)0
-rw-r--r--tests/ui/async-await/issue-68523-start.rs (renamed from src/test/ui/async-await/issue-68523-start.rs)0
-rw-r--r--tests/ui/async-await/issue-68523-start.stderr (renamed from src/test/ui/async-await/issue-68523-start.stderr)0
-rw-r--r--tests/ui/async-await/issue-68523.rs (renamed from src/test/ui/async-await/issue-68523.rs)0
-rw-r--r--tests/ui/async-await/issue-68523.stderr (renamed from src/test/ui/async-await/issue-68523.stderr)0
-rw-r--r--tests/ui/async-await/issue-69446-fnmut-capture.rs (renamed from src/test/ui/async-await/issue-69446-fnmut-capture.rs)0
-rw-r--r--tests/ui/async-await/issue-69446-fnmut-capture.stderr (renamed from src/test/ui/async-await/issue-69446-fnmut-capture.stderr)0
-rw-r--r--tests/ui/async-await/issue-70594.rs (renamed from src/test/ui/async-await/issue-70594.rs)0
-rw-r--r--tests/ui/async-await/issue-70594.stderr (renamed from src/test/ui/async-await/issue-70594.stderr)0
-rw-r--r--tests/ui/async-await/issue-70818.rs (renamed from src/test/ui/async-await/issue-70818.rs)0
-rw-r--r--tests/ui/async-await/issue-70818.stderr (renamed from src/test/ui/async-await/issue-70818.stderr)0
-rw-r--r--tests/ui/async-await/issue-70935-complex-spans.drop_tracking.stderr (renamed from src/test/ui/async-await/issue-70935-complex-spans.drop_tracking.stderr)0
-rw-r--r--tests/ui/async-await/issue-70935-complex-spans.no_drop_tracking.stderr (renamed from src/test/ui/async-await/issue-70935-complex-spans.no_drop_tracking.stderr)10
-rw-r--r--tests/ui/async-await/issue-70935-complex-spans.rs (renamed from src/test/ui/async-await/issue-70935-complex-spans.rs)0
-rw-r--r--tests/ui/async-await/issue-71137.rs (renamed from src/test/ui/async-await/issue-71137.rs)0
-rw-r--r--tests/ui/async-await/issue-71137.stderr (renamed from src/test/ui/async-await/issue-71137.stderr)0
-rw-r--r--tests/ui/async-await/issue-72442.rs (renamed from src/test/ui/async-await/issue-72442.rs)0
-rw-r--r--tests/ui/async-await/issue-72442.stderr (renamed from src/test/ui/async-await/issue-72442.stderr)3
-rw-r--r--tests/ui/async-await/issue-72470-llvm-dominate.rs (renamed from src/test/ui/async-await/issue-72470-llvm-dominate.rs)0
-rw-r--r--tests/ui/async-await/issue-72590-type-error-sized.rs (renamed from src/test/ui/async-await/issue-72590-type-error-sized.rs)0
-rw-r--r--tests/ui/async-await/issue-72590-type-error-sized.stderr (renamed from src/test/ui/async-await/issue-72590-type-error-sized.stderr)0
-rw-r--r--tests/ui/async-await/issue-73050.rs (renamed from src/test/ui/async-await/issue-73050.rs)0
-rw-r--r--tests/ui/async-await/issue-73137.rs (renamed from src/test/ui/async-await/issue-73137.rs)0
-rw-r--r--tests/ui/async-await/issue-73541-1.rs (renamed from src/test/ui/async-await/issue-73541-1.rs)0
-rw-r--r--tests/ui/async-await/issue-73541-1.stderr (renamed from src/test/ui/async-await/issue-73541-1.stderr)0
-rw-r--r--tests/ui/async-await/issue-73541-2.rs (renamed from src/test/ui/async-await/issue-73541-2.rs)0
-rw-r--r--tests/ui/async-await/issue-73541-2.stderr (renamed from src/test/ui/async-await/issue-73541-2.stderr)0
-rw-r--r--tests/ui/async-await/issue-73541-3.rs (renamed from src/test/ui/async-await/issue-73541-3.rs)0
-rw-r--r--tests/ui/async-await/issue-73541-3.stderr (renamed from src/test/ui/async-await/issue-73541-3.stderr)0
-rw-r--r--tests/ui/async-await/issue-73541.rs (renamed from src/test/ui/async-await/issue-73541.rs)0
-rw-r--r--tests/ui/async-await/issue-73541.stderr (renamed from src/test/ui/async-await/issue-73541.stderr)0
-rw-r--r--tests/ui/async-await/issue-73741-type-err-drop-tracking.rs (renamed from src/test/ui/async-await/issue-73741-type-err-drop-tracking.rs)0
-rw-r--r--tests/ui/async-await/issue-73741-type-err-drop-tracking.stderr (renamed from src/test/ui/async-await/issue-73741-type-err-drop-tracking.stderr)0
-rw-r--r--tests/ui/async-await/issue-73741-type-err.rs (renamed from src/test/ui/async-await/issue-73741-type-err.rs)0
-rw-r--r--tests/ui/async-await/issue-73741-type-err.stderr (renamed from src/test/ui/async-await/issue-73741-type-err.stderr)0
-rw-r--r--tests/ui/async-await/issue-74047.rs (renamed from src/test/ui/async-await/issue-74047.rs)0
-rw-r--r--tests/ui/async-await/issue-74047.stderr (renamed from src/test/ui/async-await/issue-74047.stderr)0
-rw-r--r--tests/ui/async-await/issue-74072-lifetime-name-annotations.rs (renamed from src/test/ui/async-await/issue-74072-lifetime-name-annotations.rs)0
-rw-r--r--tests/ui/async-await/issue-74072-lifetime-name-annotations.stderr (renamed from src/test/ui/async-await/issue-74072-lifetime-name-annotations.stderr)0
-rw-r--r--tests/ui/async-await/issue-74497-lifetime-in-opaque.rs (renamed from src/test/ui/async-await/issue-74497-lifetime-in-opaque.rs)0
-rw-r--r--tests/ui/async-await/issue-74497-lifetime-in-opaque.stderr (renamed from src/test/ui/async-await/issue-74497-lifetime-in-opaque.stderr)0
-rw-r--r--tests/ui/async-await/issue-75785-confusing-named-region.rs (renamed from src/test/ui/async-await/issue-75785-confusing-named-region.rs)0
-rw-r--r--tests/ui/async-await/issue-75785-confusing-named-region.stderr (renamed from src/test/ui/async-await/issue-75785-confusing-named-region.stderr)0
-rw-r--r--tests/ui/async-await/issue-76547.rs (renamed from src/test/ui/async-await/issue-76547.rs)0
-rw-r--r--tests/ui/async-await/issue-76547.stderr (renamed from src/test/ui/async-await/issue-76547.stderr)0
-rw-r--r--tests/ui/async-await/issue-77993-2.rs (renamed from src/test/ui/async-await/issue-77993-2.rs)0
-rw-r--r--tests/ui/async-await/issue-77993-2.stderr (renamed from src/test/ui/async-await/issue-77993-2.stderr)0
-rw-r--r--tests/ui/async-await/issue-84841.rs (renamed from src/test/ui/async-await/issue-84841.rs)0
-rw-r--r--tests/ui/async-await/issue-84841.stderr (renamed from src/test/ui/async-await/issue-84841.stderr)0
-rw-r--r--tests/ui/async-await/issue-86507.rs (renamed from src/test/ui/async-await/issue-86507.rs)0
-rw-r--r--tests/ui/async-await/issue-86507.stderr (renamed from src/test/ui/async-await/issue-86507.stderr)0
-rw-r--r--tests/ui/async-await/issue-93197.rs (renamed from src/test/ui/async-await/issue-93197.rs)0
-rw-r--r--tests/ui/async-await/issue-93648.rs (renamed from src/test/ui/async-await/issue-93648.rs)0
-rw-r--r--tests/ui/async-await/issue-98634.rs (renamed from src/test/ui/async-await/issue-98634.rs)0
-rw-r--r--tests/ui/async-await/issue-98634.stderr (renamed from src/test/ui/async-await/issue-98634.stderr)0
-rw-r--r--tests/ui/async-await/issues/auxiliary/issue-60674.rs (renamed from src/test/ui/async-await/issues/auxiliary/issue-60674.rs)0
-rw-r--r--tests/ui/async-await/issues/auxiliary/issue_67893.rs (renamed from src/test/ui/async-await/issues/auxiliary/issue_67893.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-102206.rs8
-rw-r--r--tests/ui/async-await/issues/issue-102206.stderr23
-rw-r--r--tests/ui/async-await/issues/issue-51719.rs (renamed from src/test/ui/async-await/issues/issue-51719.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-51719.stderr (renamed from src/test/ui/async-await/issues/issue-51719.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-51751.rs (renamed from src/test/ui/async-await/issues/issue-51751.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-51751.stderr (renamed from src/test/ui/async-await/issues/issue-51751.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-53249.rs (renamed from src/test/ui/async-await/issues/issue-53249.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-54752-async-block.rs (renamed from src/test/ui/async-await/issues/issue-54752-async-block.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-54752-async-block.stderr (renamed from src/test/ui/async-await/issues/issue-54752-async-block.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-54974.rs (renamed from src/test/ui/async-await/issues/issue-54974.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-55324.rs (renamed from src/test/ui/async-await/issues/issue-55324.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-55809.rs (renamed from src/test/ui/async-await/issues/issue-55809.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-58885.rs (renamed from src/test/ui/async-await/issues/issue-58885.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-59001.rs (renamed from src/test/ui/async-await/issues/issue-59001.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-59972.rs (renamed from src/test/ui/async-await/issues/issue-59972.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-60518.rs (renamed from src/test/ui/async-await/issues/issue-60518.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-60655-latebound-regions.rs (renamed from src/test/ui/async-await/issues/issue-60655-latebound-regions.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-60674.rs (renamed from src/test/ui/async-await/issues/issue-60674.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-60674.stdout (renamed from src/test/ui/async-await/issues/issue-60674.stdout)0
-rw-r--r--tests/ui/async-await/issues/issue-61187.rs (renamed from src/test/ui/async-await/issues/issue-61187.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-61187.stderr14
-rw-r--r--tests/ui/async-await/issues/issue-61986.rs (renamed from src/test/ui/async-await/issues/issue-61986.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-62009-1.rs (renamed from src/test/ui/async-await/issues/issue-62009-1.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-62009-1.stderr (renamed from src/test/ui/async-await/issues/issue-62009-1.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-62009-2.rs (renamed from src/test/ui/async-await/issues/issue-62009-2.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-62009-2.stderr (renamed from src/test/ui/async-await/issues/issue-62009-2.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-62097.rs (renamed from src/test/ui/async-await/issues/issue-62097.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-62097.stderr (renamed from src/test/ui/async-await/issues/issue-62097.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-62517-1.rs (renamed from src/test/ui/async-await/issues/issue-62517-1.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-62517-2.rs (renamed from src/test/ui/async-await/issues/issue-62517-2.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-63388-1.rs (renamed from src/test/ui/async-await/issues/issue-63388-1.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-63388-1.stderr (renamed from src/test/ui/async-await/issues/issue-63388-1.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-63388-2.rs (renamed from src/test/ui/async-await/issues/issue-63388-2.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-63388-2.stderr (renamed from src/test/ui/async-await/issues/issue-63388-2.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-63388-3.rs (renamed from src/test/ui/async-await/issues/issue-63388-3.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-63388-4.rs (renamed from src/test/ui/async-await/issues/issue-63388-4.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-64391-2.rs (renamed from src/test/ui/async-await/issues/issue-64391-2.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-64433.rs (renamed from src/test/ui/async-await/issues/issue-64433.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-64477-2.rs (renamed from src/test/ui/async-await/issues/issue-64477-2.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-64477.rs (renamed from src/test/ui/async-await/issues/issue-64477.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-64964.rs (renamed from src/test/ui/async-await/issues/issue-64964.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-65159.rs (renamed from src/test/ui/async-await/issues/issue-65159.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-65159.stderr (renamed from src/test/ui/async-await/issues/issue-65159.stderr)5
-rw-r--r--tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs (renamed from src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs (renamed from src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-65419/issue-65419-generator-resume-after-completion.rs (renamed from src/test/ui/async-await/issues/issue-65419/issue-65419-generator-resume-after-completion.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking.stderr (renamed from src/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking.stderr)10
-rw-r--r--tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs (renamed from src/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-66695-static-refs.rs (renamed from src/test/ui/async-await/issues/issue-66695-static-refs.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.rs (renamed from src/test/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.stderr (renamed from src/test/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-67611-static-mut-refs.rs (renamed from src/test/ui/async-await/issues/issue-67611-static-mut-refs.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-67893.rs (renamed from src/test/ui/async-await/issues/issue-67893.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-67893.stderr23
-rw-r--r--tests/ui/async-await/issues/issue-69307-nested.rs (renamed from src/test/ui/async-await/issues/issue-69307-nested.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-69307.rs (renamed from src/test/ui/async-await/issues/issue-69307.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-72312.rs (renamed from src/test/ui/async-await/issues/issue-72312.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-72312.stderr (renamed from src/test/ui/async-await/issues/issue-72312.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-78600.rs (renamed from src/test/ui/async-await/issues/issue-78600.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-78600.stderr (renamed from src/test/ui/async-await/issues/issue-78600.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-78654.full.stderr (renamed from src/test/ui/async-await/issues/issue-78654.full.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-78654.min.stderr (renamed from src/test/ui/async-await/issues/issue-78654.min.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-78654.rs (renamed from src/test/ui/async-await/issues/issue-78654.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-78938-async-block.rs (renamed from src/test/ui/async-await/issues/issue-78938-async-block.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-78938-async-block.stderr (renamed from src/test/ui/async-await/issues/issue-78938-async-block.stderr)0
-rw-r--r--tests/ui/async-await/issues/issue-95307.rs (renamed from src/test/ui/async-await/issues/issue-95307.rs)0
-rw-r--r--tests/ui/async-await/issues/issue-95307.stderr (renamed from src/test/ui/async-await/issues/issue-95307.stderr)0
-rw-r--r--tests/ui/async-await/issues/non-async-enclosing-span.rs (renamed from src/test/ui/async-await/issues/non-async-enclosing-span.rs)0
-rw-r--r--tests/ui/async-await/issues/non-async-enclosing-span.stderr (renamed from src/test/ui/async-await/issues/non-async-enclosing-span.stderr)0
-rw-r--r--tests/ui/async-await/large_moves.attribute.stderr (renamed from src/test/ui/async-await/large_moves.attribute.stderr)0
-rw-r--r--tests/ui/async-await/large_moves.option.stderr (renamed from src/test/ui/async-await/large_moves.option.stderr)0
-rw-r--r--tests/ui/async-await/large_moves.rs (renamed from src/test/ui/async-await/large_moves.rs)0
-rw-r--r--tests/ui/async-await/move-part-await-return-rest-struct.rs (renamed from src/test/ui/async-await/move-part-await-return-rest-struct.rs)0
-rw-r--r--tests/ui/async-await/move-part-await-return-rest-tuple.rs (renamed from src/test/ui/async-await/move-part-await-return-rest-tuple.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/elided.rs (renamed from src/test/ui/async-await/multiple-lifetimes/elided.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/fn-ptr.rs (renamed from src/test/ui/async-await/multiple-lifetimes/fn-ptr.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/hrtb.rs (renamed from src/test/ui/async-await/multiple-lifetimes/hrtb.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/named.rs (renamed from src/test/ui/async-await/multiple-lifetimes/named.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/partial-relation.rs (renamed from src/test/ui/async-await/multiple-lifetimes/partial-relation.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/ret-impl-trait-fg.rs (renamed from src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-fg.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/ret-impl-trait-one.rs (renamed from src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-one.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/ret-impl-trait-one.stderr (renamed from src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-one.stderr)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/ret-ref.rs (renamed from src/test/ui/async-await/multiple-lifetimes/ret-ref.rs)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/ret-ref.stderr (renamed from src/test/ui/async-await/multiple-lifetimes/ret-ref.stderr)0
-rw-r--r--tests/ui/async-await/multiple-lifetimes/variance.rs (renamed from src/test/ui/async-await/multiple-lifetimes/variance.rs)0
-rw-r--r--tests/ui/async-await/mutually-recursive-async-impl-trait-type.rs (renamed from src/test/ui/async-await/mutually-recursive-async-impl-trait-type.rs)0
-rw-r--r--tests/ui/async-await/mutually-recursive-async-impl-trait-type.stderr (renamed from src/test/ui/async-await/mutually-recursive-async-impl-trait-type.stderr)0
-rw-r--r--tests/ui/async-await/nested-in-impl.rs (renamed from src/test/ui/async-await/nested-in-impl.rs)0
-rw-r--r--tests/ui/async-await/no-async-const.rs (renamed from src/test/ui/async-await/no-async-const.rs)0
-rw-r--r--tests/ui/async-await/no-async-const.stderr (renamed from src/test/ui/async-await/no-async-const.stderr)0
-rw-r--r--tests/ui/async-await/no-const-async.rs (renamed from src/test/ui/async-await/no-const-async.rs)0
-rw-r--r--tests/ui/async-await/no-const-async.stderr (renamed from src/test/ui/async-await/no-const-async.stderr)0
-rw-r--r--tests/ui/async-await/no-move-across-await-struct.rs (renamed from src/test/ui/async-await/no-move-across-await-struct.rs)0
-rw-r--r--tests/ui/async-await/no-move-across-await-struct.stderr (renamed from src/test/ui/async-await/no-move-across-await-struct.stderr)0
-rw-r--r--tests/ui/async-await/no-move-across-await-tuple.rs (renamed from src/test/ui/async-await/no-move-across-await-tuple.rs)0
-rw-r--r--tests/ui/async-await/no-move-across-await-tuple.stderr (renamed from src/test/ui/async-await/no-move-across-await-tuple.stderr)0
-rw-r--r--tests/ui/async-await/no-non-guaranteed-initialization.rs (renamed from src/test/ui/async-await/no-non-guaranteed-initialization.rs)0
-rw-r--r--tests/ui/async-await/no-non-guaranteed-initialization.stderr (renamed from src/test/ui/async-await/no-non-guaranteed-initialization.stderr)0
-rw-r--r--tests/ui/async-await/no-params-non-move-async-closure.rs (renamed from src/test/ui/async-await/no-params-non-move-async-closure.rs)0
-rw-r--r--tests/ui/async-await/no-params-non-move-async-closure.stderr (renamed from src/test/ui/async-await/no-params-non-move-async-closure.stderr)0
-rw-r--r--tests/ui/async-await/no-std.rs (renamed from src/test/ui/async-await/no-std.rs)0
-rw-r--r--tests/ui/async-await/no-unsafe-async.rs (renamed from src/test/ui/async-await/no-unsafe-async.rs)0
-rw-r--r--tests/ui/async-await/no-unsafe-async.stderr (renamed from src/test/ui/async-await/no-unsafe-async.stderr)0
-rw-r--r--tests/ui/async-await/non-trivial-drop.rs (renamed from src/test/ui/async-await/non-trivial-drop.rs)0
-rw-r--r--tests/ui/async-await/partial-drop-partial-reinit.drop_tracking.stderr (renamed from src/test/ui/async-await/partial-drop-partial-reinit.drop_tracking.stderr)0
-rw-r--r--tests/ui/async-await/partial-drop-partial-reinit.no_drop_tracking.stderr (renamed from src/test/ui/async-await/partial-drop-partial-reinit.no_drop_tracking.stderr)0
-rw-r--r--tests/ui/async-await/partial-drop-partial-reinit.rs (renamed from src/test/ui/async-await/partial-drop-partial-reinit.rs)0
-rw-r--r--tests/ui/async-await/partial-initialization-across-await.rs (renamed from src/test/ui/async-await/partial-initialization-across-await.rs)0
-rw-r--r--tests/ui/async-await/partial-initialization-across-await.stderr (renamed from src/test/ui/async-await/partial-initialization-across-await.stderr)0
-rw-r--r--tests/ui/async-await/pin-needed-to-poll-2.rs (renamed from src/test/ui/async-await/pin-needed-to-poll-2.rs)0
-rw-r--r--tests/ui/async-await/pin-needed-to-poll-2.stderr (renamed from src/test/ui/async-await/pin-needed-to-poll-2.stderr)3
-rw-r--r--tests/ui/async-await/pin-needed-to-poll.rs (renamed from src/test/ui/async-await/pin-needed-to-poll.rs)0
-rw-r--r--tests/ui/async-await/pin-needed-to-poll.stderr20
-rw-r--r--tests/ui/async-await/proper-span-for-type-error.fixed (renamed from src/test/ui/async-await/proper-span-for-type-error.fixed)0
-rw-r--r--tests/ui/async-await/proper-span-for-type-error.rs (renamed from src/test/ui/async-await/proper-span-for-type-error.rs)0
-rw-r--r--tests/ui/async-await/proper-span-for-type-error.stderr (renamed from src/test/ui/async-await/proper-span-for-type-error.stderr)0
-rw-r--r--tests/ui/async-await/recursive-async-impl-trait-type.rs (renamed from src/test/ui/async-await/recursive-async-impl-trait-type.rs)0
-rw-r--r--tests/ui/async-await/recursive-async-impl-trait-type.stderr (renamed from src/test/ui/async-await/recursive-async-impl-trait-type.stderr)0
-rw-r--r--tests/ui/async-await/repeat_count_const_in_async_fn.rs (renamed from src/test/ui/async-await/repeat_count_const_in_async_fn.rs)0
-rw-r--r--tests/ui/async-await/return-ty-raw-ptr-coercion.rs (renamed from src/test/ui/async-await/return-ty-raw-ptr-coercion.rs)0
-rw-r--r--tests/ui/async-await/return-ty-unsize-coercion.rs (renamed from src/test/ui/async-await/return-ty-unsize-coercion.rs)0
-rw-r--r--tests/ui/async-await/suggest-missing-await-closure.fixed (renamed from src/test/ui/async-await/suggest-missing-await-closure.fixed)0
-rw-r--r--tests/ui/async-await/suggest-missing-await-closure.rs (renamed from src/test/ui/async-await/suggest-missing-await-closure.rs)0
-rw-r--r--tests/ui/async-await/suggest-missing-await-closure.stderr (renamed from src/test/ui/async-await/suggest-missing-await-closure.stderr)0
-rw-r--r--tests/ui/async-await/suggest-missing-await.rs (renamed from src/test/ui/async-await/suggest-missing-await.rs)0
-rw-r--r--tests/ui/async-await/suggest-missing-await.stderr (renamed from src/test/ui/async-await/suggest-missing-await.stderr)0
-rw-r--r--tests/ui/async-await/suggest-switching-edition-on-await-cargo.rs (renamed from src/test/ui/async-await/suggest-switching-edition-on-await-cargo.rs)0
-rw-r--r--tests/ui/async-await/suggest-switching-edition-on-await-cargo.stderr (renamed from src/test/ui/async-await/suggest-switching-edition-on-await-cargo.stderr)0
-rw-r--r--tests/ui/async-await/suggest-switching-edition-on-await.rs (renamed from src/test/ui/async-await/suggest-switching-edition-on-await.rs)0
-rw-r--r--tests/ui/async-await/suggest-switching-edition-on-await.stderr (renamed from src/test/ui/async-await/suggest-switching-edition-on-await.stderr)0
-rw-r--r--tests/ui/async-await/track-caller/async-block.rs9
-rw-r--r--tests/ui/async-await/track-caller/async-block.stderr12
-rw-r--r--tests/ui/async-await/track-caller/async-closure-gate.rs (renamed from src/test/ui/async-await/track-caller/async-closure-gate.rs)0
-rw-r--r--tests/ui/async-await/track-caller/async-closure-gate.stderr (renamed from src/test/ui/async-await/track-caller/async-closure-gate.stderr)0
-rw-r--r--tests/ui/async-await/track-caller/issue-105134.rs (renamed from src/test/ui/async-await/track-caller/issue-105134.rs)0
-rw-r--r--tests/ui/async-await/track-caller/panic-track-caller.nofeat.stderr (renamed from src/test/ui/async-await/track-caller/panic-track-caller.nofeat.stderr)0
-rw-r--r--tests/ui/async-await/track-caller/panic-track-caller.rs (renamed from src/test/ui/async-await/track-caller/panic-track-caller.rs)13
-rw-r--r--tests/ui/async-await/try-on-option-in-async.rs (renamed from src/test/ui/async-await/try-on-option-in-async.rs)0
-rw-r--r--tests/ui/async-await/try-on-option-in-async.stderr (renamed from src/test/ui/async-await/try-on-option-in-async.stderr)0
-rw-r--r--tests/ui/async-await/type-parameter-send.rs (renamed from src/test/ui/async-await/type-parameter-send.rs)0
-rw-r--r--tests/ui/async-await/unnecessary-await.rs (renamed from src/test/ui/async-await/unnecessary-await.rs)0
-rw-r--r--tests/ui/async-await/unnecessary-await.stderr (renamed from src/test/ui/async-await/unnecessary-await.stderr)0
-rw-r--r--tests/ui/async-await/unreachable-lint-1.rs (renamed from src/test/ui/async-await/unreachable-lint-1.rs)0
-rw-r--r--tests/ui/async-await/unreachable-lint-1.stderr (renamed from src/test/ui/async-await/unreachable-lint-1.stderr)0
-rw-r--r--tests/ui/async-await/unreachable-lint.rs (renamed from src/test/ui/async-await/unreachable-lint.rs)0
-rw-r--r--tests/ui/async-await/unresolved_type_param.rs (renamed from src/test/ui/async-await/unresolved_type_param.rs)0
-rw-r--r--tests/ui/async-await/unresolved_type_param.stderr (renamed from src/test/ui/async-await/unresolved_type_param.stderr)0
-rw-r--r--tests/ui/async-await/unused-lifetime.rs (renamed from src/test/ui/async-await/unused-lifetime.rs)0
-rw-r--r--tests/ui/async-await/unused-lifetime.stderr (renamed from src/test/ui/async-await/unused-lifetime.stderr)0
388 files changed, 693 insertions, 50 deletions
diff --git a/src/test/ui/async-await/argument-patterns.rs b/tests/ui/async-await/argument-patterns.rs
index b9fc1a88c..b9fc1a88c 100644
--- a/src/test/ui/async-await/argument-patterns.rs
+++ b/tests/ui/async-await/argument-patterns.rs
diff --git a/src/test/ui/async-await/async-assoc-fn-anon-lifetimes.rs b/tests/ui/async-await/async-assoc-fn-anon-lifetimes.rs
index 8e08b82b9..8e08b82b9 100644
--- a/src/test/ui/async-await/async-assoc-fn-anon-lifetimes.rs
+++ b/tests/ui/async-await/async-assoc-fn-anon-lifetimes.rs
diff --git a/src/test/ui/async-await/async-await-let-else.drop-tracking.stderr b/tests/ui/async-await/async-await-let-else.drop-tracking.stderr
index 3be7f370d..fb83ca90a 100644
--- a/src/test/ui/async-await/async-await-let-else.drop-tracking.stderr
+++ b/tests/ui/async-await/async-await-let-else.drop-tracking.stderr
@@ -68,14 +68,10 @@ note: future is not `Send` as this value is used across an await
--> $DIR/async-await-let-else.rs:33:28
|
LL | (Rc::new(()), bar().await);
- | ----------- ^^^^^^ await occurs here, with `Rc::new(())` maybe used later
- | |
+ | ----------- ^^^^^^ - `Rc::new(())` is later dropped here
+ | | |
+ | | await occurs here, with `Rc::new(())` maybe used later
| has type `Rc<()>` which is not `Send`
-note: `Rc::new(())` is later dropped here
- --> $DIR/async-await-let-else.rs:33:35
- |
-LL | (Rc::new(()), bar().await);
- | ^
note: required by a bound in `is_send`
--> $DIR/async-await-let-else.rs:19:15
|
diff --git a/src/test/ui/async-await/async-await-let-else.no-drop-tracking.stderr b/tests/ui/async-await/async-await-let-else.no-drop-tracking.stderr
index 7f93563e2..d3c5e80a3 100644
--- a/src/test/ui/async-await/async-await-let-else.no-drop-tracking.stderr
+++ b/tests/ui/async-await/async-await-let-else.no-drop-tracking.stderr
@@ -53,14 +53,10 @@ note: future is not `Send` as this value is used across an await
--> $DIR/async-await-let-else.rs:33:28
|
LL | (Rc::new(()), bar().await);
- | ----------- ^^^^^^ await occurs here, with `Rc::new(())` maybe used later
- | |
+ | ----------- ^^^^^^ - `Rc::new(())` is later dropped here
+ | | |
+ | | await occurs here, with `Rc::new(())` maybe used later
| has type `Rc<()>` which is not `Send`
-note: `Rc::new(())` is later dropped here
- --> $DIR/async-await-let-else.rs:33:35
- |
-LL | (Rc::new(()), bar().await);
- | ^
note: required by a bound in `is_send`
--> $DIR/async-await-let-else.rs:19:15
|
diff --git a/src/test/ui/async-await/async-await-let-else.rs b/tests/ui/async-await/async-await-let-else.rs
index 3fb2142b9..3fb2142b9 100644
--- a/src/test/ui/async-await/async-await-let-else.rs
+++ b/tests/ui/async-await/async-await-let-else.rs
diff --git a/src/test/ui/async-await/async-await.rs b/tests/ui/async-await/async-await.rs
index 9cabf16f8..9cabf16f8 100644
--- a/src/test/ui/async-await/async-await.rs
+++ b/tests/ui/async-await/async-await.rs
diff --git a/src/test/ui/async-await/async-block-control-flow-static-semantics.rs b/tests/ui/async-await/async-block-control-flow-static-semantics.rs
index bc9d12793..bc9d12793 100644
--- a/src/test/ui/async-await/async-block-control-flow-static-semantics.rs
+++ b/tests/ui/async-await/async-block-control-flow-static-semantics.rs
diff --git a/src/test/ui/async-await/async-block-control-flow-static-semantics.stderr b/tests/ui/async-await/async-block-control-flow-static-semantics.stderr
index c4487eb84..c4487eb84 100644
--- a/src/test/ui/async-await/async-block-control-flow-static-semantics.stderr
+++ b/tests/ui/async-await/async-block-control-flow-static-semantics.stderr
diff --git a/src/test/ui/async-await/async-borrowck-escaping-block-error.fixed b/tests/ui/async-await/async-borrowck-escaping-block-error.fixed
index 605cfdfe7..605cfdfe7 100644
--- a/src/test/ui/async-await/async-borrowck-escaping-block-error.fixed
+++ b/tests/ui/async-await/async-borrowck-escaping-block-error.fixed
diff --git a/src/test/ui/async-await/async-borrowck-escaping-block-error.rs b/tests/ui/async-await/async-borrowck-escaping-block-error.rs
index ec752c15f..ec752c15f 100644
--- a/src/test/ui/async-await/async-borrowck-escaping-block-error.rs
+++ b/tests/ui/async-await/async-borrowck-escaping-block-error.rs
diff --git a/src/test/ui/async-await/async-borrowck-escaping-block-error.stderr b/tests/ui/async-await/async-borrowck-escaping-block-error.stderr
index 190c59e32..190c59e32 100644
--- a/src/test/ui/async-await/async-borrowck-escaping-block-error.stderr
+++ b/tests/ui/async-await/async-borrowck-escaping-block-error.stderr
diff --git a/src/test/ui/async-await/async-borrowck-escaping-closure-error.rs b/tests/ui/async-await/async-borrowck-escaping-closure-error.rs
index e667b72ae..e667b72ae 100644
--- a/src/test/ui/async-await/async-borrowck-escaping-closure-error.rs
+++ b/tests/ui/async-await/async-borrowck-escaping-closure-error.rs
diff --git a/src/test/ui/async-await/async-borrowck-escaping-closure-error.stderr b/tests/ui/async-await/async-borrowck-escaping-closure-error.stderr
index 10691aad0..10691aad0 100644
--- a/src/test/ui/async-await/async-borrowck-escaping-closure-error.stderr
+++ b/tests/ui/async-await/async-borrowck-escaping-closure-error.stderr
diff --git a/src/test/ui/async-await/async-closure-matches-expr.rs b/tests/ui/async-await/async-closure-matches-expr.rs
index d82fbcdc5..d82fbcdc5 100644
--- a/src/test/ui/async-await/async-closure-matches-expr.rs
+++ b/tests/ui/async-await/async-closure-matches-expr.rs
diff --git a/src/test/ui/async-await/async-closure.rs b/tests/ui/async-await/async-closure.rs
index 12d66b19e..12d66b19e 100644
--- a/src/test/ui/async-await/async-closure.rs
+++ b/tests/ui/async-await/async-closure.rs
diff --git a/src/test/ui/async-await/async-error-span.rs b/tests/ui/async-await/async-error-span.rs
index 86d459bf0..86d459bf0 100644
--- a/src/test/ui/async-await/async-error-span.rs
+++ b/tests/ui/async-await/async-error-span.rs
diff --git a/src/test/ui/async-await/async-error-span.stderr b/tests/ui/async-await/async-error-span.stderr
index 7d4447b6d..7d4447b6d 100644
--- a/src/test/ui/async-await/async-error-span.stderr
+++ b/tests/ui/async-await/async-error-span.stderr
diff --git a/src/test/ui/async-await/async-fn-elided-impl-lifetime-parameter.rs b/tests/ui/async-await/async-fn-elided-impl-lifetime-parameter.rs
index 1c369fd74..1c369fd74 100644
--- a/src/test/ui/async-await/async-fn-elided-impl-lifetime-parameter.rs
+++ b/tests/ui/async-await/async-fn-elided-impl-lifetime-parameter.rs
diff --git a/src/test/ui/async-await/async-fn-nonsend.rs b/tests/ui/async-await/async-fn-nonsend.rs
index d7f8d7ac5..d7f8d7ac5 100644
--- a/src/test/ui/async-await/async-fn-nonsend.rs
+++ b/tests/ui/async-await/async-fn-nonsend.rs
diff --git a/src/test/ui/async-await/async-fn-nonsend.stderr b/tests/ui/async-await/async-fn-nonsend.stderr
index a7b872fe4..a7b872fe4 100644
--- a/src/test/ui/async-await/async-fn-nonsend.stderr
+++ b/tests/ui/async-await/async-fn-nonsend.stderr
diff --git a/src/test/ui/async-await/async-fn-path-elision.rs b/tests/ui/async-await/async-fn-path-elision.rs
index 3f1f51c20..3f1f51c20 100644
--- a/src/test/ui/async-await/async-fn-path-elision.rs
+++ b/tests/ui/async-await/async-fn-path-elision.rs
diff --git a/src/test/ui/async-await/async-fn-path-elision.stderr b/tests/ui/async-await/async-fn-path-elision.stderr
index 5e0c8c299..5e0c8c299 100644
--- a/src/test/ui/async-await/async-fn-path-elision.stderr
+++ b/tests/ui/async-await/async-fn-path-elision.stderr
diff --git a/src/test/ui/async-await/async-fn-send-uses-nonsend.rs b/tests/ui/async-await/async-fn-send-uses-nonsend.rs
index 35d9cb155..35d9cb155 100644
--- a/src/test/ui/async-await/async-fn-send-uses-nonsend.rs
+++ b/tests/ui/async-await/async-fn-send-uses-nonsend.rs
diff --git a/src/test/ui/async-await/async-fn-size-moved-locals.rs b/tests/ui/async-await/async-fn-size-moved-locals.rs
index 79b7239f3..79b7239f3 100644
--- a/src/test/ui/async-await/async-fn-size-moved-locals.rs
+++ b/tests/ui/async-await/async-fn-size-moved-locals.rs
diff --git a/src/test/ui/async-await/async-fn-size-uninit-locals.rs b/tests/ui/async-await/async-fn-size-uninit-locals.rs
index 546172693..546172693 100644
--- a/src/test/ui/async-await/async-fn-size-uninit-locals.rs
+++ b/tests/ui/async-await/async-fn-size-uninit-locals.rs
diff --git a/src/test/ui/async-await/async-fn-size.rs b/tests/ui/async-await/async-fn-size.rs
index 0c1f36364..0c1f36364 100644
--- a/src/test/ui/async-await/async-fn-size.rs
+++ b/tests/ui/async-await/async-fn-size.rs
diff --git a/tests/ui/async-await/async-is-unwindsafe.rs b/tests/ui/async-await/async-is-unwindsafe.rs
new file mode 100644
index 000000000..56ed28472
--- /dev/null
+++ b/tests/ui/async-await/async-is-unwindsafe.rs
@@ -0,0 +1,30 @@
+// edition:2018
+
+fn is_unwindsafe(_: impl std::panic::UnwindSafe) {}
+
+fn main() {
+ // A normal future created by an async block takes a `&mut Context<'_>` argument.
+ // That should not leak through to the whole async block.
+ is_unwindsafe(async {
+ async {}.await; // this needs an inner await point
+ });
+
+ is_unwindsafe(async {
+ //~^ ERROR the type `&mut Context<'_>` may not be safely transferred across an unwind boundary
+ use std::ptr::null;
+ use std::task::{Context, RawWaker, RawWakerVTable, Waker};
+ let waker = unsafe {
+ Waker::from_raw(RawWaker::new(
+ null(),
+ &RawWakerVTable::new(|_| todo!(), |_| todo!(), |_| todo!(), |_| todo!()),
+ ))
+ };
+ let mut cx = Context::from_waker(&waker);
+ let cx_ref = &mut cx;
+
+ async {}.await; // this needs an inner await point
+
+ // in this case, `&mut Context<'_>` is *truly* alive across an await point
+ drop(cx_ref);
+ });
+}
diff --git a/tests/ui/async-await/async-is-unwindsafe.stderr b/tests/ui/async-await/async-is-unwindsafe.stderr
new file mode 100644
index 000000000..d6404b30e
--- /dev/null
+++ b/tests/ui/async-await/async-is-unwindsafe.stderr
@@ -0,0 +1,38 @@
+error[E0277]: the type `&mut Context<'_>` may not be safely transferred across an unwind boundary
+ --> $DIR/async-is-unwindsafe.rs:12:19
+ |
+LL | is_unwindsafe(async {
+ | ___________________^
+LL | |
+LL | | use std::ptr::null;
+LL | | use std::task::{Context, RawWaker, RawWakerVTable, Waker};
+... |
+LL | | drop(cx_ref);
+LL | | });
+ | | ^
+ | | |
+ | |_____`&mut Context<'_>` may not be safely transferred across an unwind boundary
+ | within this `[async block@$DIR/async-is-unwindsafe.rs:12:19: 29:6]`
+ |
+ = help: within `[async block@$DIR/async-is-unwindsafe.rs:12:19: 29:6]`, the trait `UnwindSafe` is not implemented for `&mut Context<'_>`
+ = note: `UnwindSafe` is implemented for `&std::task::Context<'_>`, but not for `&mut std::task::Context<'_>`
+note: future does not implement `UnwindSafe` as this value is used across an await
+ --> $DIR/async-is-unwindsafe.rs:25:17
+ |
+LL | let cx_ref = &mut cx;
+ | ------ has type `&mut Context<'_>` which does not implement `UnwindSafe`
+LL |
+LL | async {}.await; // this needs an inner await point
+ | ^^^^^^ await occurs here, with `cx_ref` maybe used later
+...
+LL | });
+ | - `cx_ref` is later dropped here
+note: required by a bound in `is_unwindsafe`
+ --> $DIR/async-is-unwindsafe.rs:3:26
+ |
+LL | fn is_unwindsafe(_: impl std::panic::UnwindSafe) {}
+ | ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `is_unwindsafe`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/async-await/async-matches-expr.rs b/tests/ui/async-await/async-matches-expr.rs
index 299faa058..299faa058 100644
--- a/src/test/ui/async-await/async-matches-expr.rs
+++ b/tests/ui/async-await/async-matches-expr.rs
diff --git a/src/test/ui/async-await/async-trait-fn.rs b/tests/ui/async-await/async-trait-fn.rs
index e2062e827..e2062e827 100644
--- a/src/test/ui/async-await/async-trait-fn.rs
+++ b/tests/ui/async-await/async-trait-fn.rs
diff --git a/src/test/ui/async-await/async-trait-fn.stderr b/tests/ui/async-await/async-trait-fn.stderr
index afbe25cf7..afbe25cf7 100644
--- a/src/test/ui/async-await/async-trait-fn.stderr
+++ b/tests/ui/async-await/async-trait-fn.stderr
diff --git a/src/test/ui/async-await/async-unsafe-fn-call-in-safe.mir.stderr b/tests/ui/async-await/async-unsafe-fn-call-in-safe.mir.stderr
index 2114fb59b..2114fb59b 100644
--- a/src/test/ui/async-await/async-unsafe-fn-call-in-safe.mir.stderr
+++ b/tests/ui/async-await/async-unsafe-fn-call-in-safe.mir.stderr
diff --git a/src/test/ui/async-await/async-unsafe-fn-call-in-safe.rs b/tests/ui/async-await/async-unsafe-fn-call-in-safe.rs
index c941dc27a..c941dc27a 100644
--- a/src/test/ui/async-await/async-unsafe-fn-call-in-safe.rs
+++ b/tests/ui/async-await/async-unsafe-fn-call-in-safe.rs
diff --git a/src/test/ui/async-await/async-unsafe-fn-call-in-safe.thir.stderr b/tests/ui/async-await/async-unsafe-fn-call-in-safe.thir.stderr
index 68d97d3fd..68d97d3fd 100644
--- a/src/test/ui/async-await/async-unsafe-fn-call-in-safe.thir.stderr
+++ b/tests/ui/async-await/async-unsafe-fn-call-in-safe.thir.stderr
diff --git a/src/test/ui/async-await/async-with-closure.rs b/tests/ui/async-await/async-with-closure.rs
index 0b2255266..0b2255266 100644
--- a/src/test/ui/async-await/async-with-closure.rs
+++ b/tests/ui/async-await/async-with-closure.rs
diff --git a/src/test/ui/async-await/auxiliary/arc_wake.rs b/tests/ui/async-await/auxiliary/arc_wake.rs
index c21886f26..c21886f26 100644
--- a/src/test/ui/async-await/auxiliary/arc_wake.rs
+++ b/tests/ui/async-await/auxiliary/arc_wake.rs
diff --git a/src/test/ui/async-await/auxiliary/issue-107036.rs b/tests/ui/async-await/auxiliary/issue-107036.rs
index c3f6141b2..c3f6141b2 100644
--- a/src/test/ui/async-await/auxiliary/issue-107036.rs
+++ b/tests/ui/async-await/auxiliary/issue-107036.rs
diff --git a/src/test/ui/async-await/auxiliary/issue-72470-lib.rs b/tests/ui/async-await/auxiliary/issue-72470-lib.rs
index 8383eba89..8383eba89 100644
--- a/src/test/ui/async-await/auxiliary/issue-72470-lib.rs
+++ b/tests/ui/async-await/auxiliary/issue-72470-lib.rs
diff --git a/src/test/ui/async-await/await-into-future.rs b/tests/ui/async-await/await-into-future.rs
index 8bf1385b3..8bf1385b3 100644
--- a/src/test/ui/async-await/await-into-future.rs
+++ b/tests/ui/async-await/await-into-future.rs
diff --git a/src/test/ui/async-await/await-keyword/2015-edition-error-various-positions.rs b/tests/ui/async-await/await-keyword/2015-edition-error-various-positions.rs
index 50c163999..50c163999 100644
--- a/src/test/ui/async-await/await-keyword/2015-edition-error-various-positions.rs
+++ b/tests/ui/async-await/await-keyword/2015-edition-error-various-positions.rs
diff --git a/src/test/ui/async-await/await-keyword/2015-edition-error-various-positions.stderr b/tests/ui/async-await/await-keyword/2015-edition-error-various-positions.stderr
index d99967eb2..d99967eb2 100644
--- a/src/test/ui/async-await/await-keyword/2015-edition-error-various-positions.stderr
+++ b/tests/ui/async-await/await-keyword/2015-edition-error-various-positions.stderr
diff --git a/src/test/ui/async-await/await-keyword/2015-edition-warning.fixed b/tests/ui/async-await/await-keyword/2015-edition-warning.fixed
index 117495e13..117495e13 100644
--- a/src/test/ui/async-await/await-keyword/2015-edition-warning.fixed
+++ b/tests/ui/async-await/await-keyword/2015-edition-warning.fixed
diff --git a/src/test/ui/async-await/await-keyword/2015-edition-warning.rs b/tests/ui/async-await/await-keyword/2015-edition-warning.rs
index b3c64895c..b3c64895c 100644
--- a/src/test/ui/async-await/await-keyword/2015-edition-warning.rs
+++ b/tests/ui/async-await/await-keyword/2015-edition-warning.rs
diff --git a/src/test/ui/async-await/await-keyword/2015-edition-warning.stderr b/tests/ui/async-await/await-keyword/2015-edition-warning.stderr
index bf5c4d8d6..bf5c4d8d6 100644
--- a/src/test/ui/async-await/await-keyword/2015-edition-warning.stderr
+++ b/tests/ui/async-await/await-keyword/2015-edition-warning.stderr
diff --git a/src/test/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.rs b/tests/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.rs
index 9e78f7c51..9e78f7c51 100644
--- a/src/test/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.rs
+++ b/tests/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.rs
diff --git a/src/test/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.stderr b/tests/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.stderr
index 6bd8f671d..6bd8f671d 100644
--- a/src/test/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.stderr
+++ b/tests/ui/async-await/await-keyword/2018-edition-error-in-non-macro-position.stderr
diff --git a/src/test/ui/async-await/await-keyword/2018-edition-error.rs b/tests/ui/async-await/await-keyword/2018-edition-error.rs
index 7ce52259a..7ce52259a 100644
--- a/src/test/ui/async-await/await-keyword/2018-edition-error.rs
+++ b/tests/ui/async-await/await-keyword/2018-edition-error.rs
diff --git a/src/test/ui/async-await/await-keyword/2018-edition-error.stderr b/tests/ui/async-await/await-keyword/2018-edition-error.stderr
index 34bfdfc71..34bfdfc71 100644
--- a/src/test/ui/async-await/await-keyword/2018-edition-error.stderr
+++ b/tests/ui/async-await/await-keyword/2018-edition-error.stderr
diff --git a/src/test/ui/async-await/await-keyword/incorrect-syntax-suggestions.rs b/tests/ui/async-await/await-keyword/incorrect-syntax-suggestions.rs
index 554ac673d..554ac673d 100644
--- a/src/test/ui/async-await/await-keyword/incorrect-syntax-suggestions.rs
+++ b/tests/ui/async-await/await-keyword/incorrect-syntax-suggestions.rs
diff --git a/src/test/ui/async-await/await-keyword/incorrect-syntax-suggestions.stderr b/tests/ui/async-await/await-keyword/incorrect-syntax-suggestions.stderr
index b30f28837..b30f28837 100644
--- a/src/test/ui/async-await/await-keyword/incorrect-syntax-suggestions.stderr
+++ b/tests/ui/async-await/await-keyword/incorrect-syntax-suggestions.stderr
diff --git a/src/test/ui/async-await/await-keyword/post_expansion_error.rs b/tests/ui/async-await/await-keyword/post_expansion_error.rs
index b4c899b0d..b4c899b0d 100644
--- a/src/test/ui/async-await/await-keyword/post_expansion_error.rs
+++ b/tests/ui/async-await/await-keyword/post_expansion_error.rs
diff --git a/src/test/ui/async-await/await-keyword/post_expansion_error.stderr b/tests/ui/async-await/await-keyword/post_expansion_error.stderr
index 0996c38b3..0996c38b3 100644
--- a/src/test/ui/async-await/await-keyword/post_expansion_error.stderr
+++ b/tests/ui/async-await/await-keyword/post_expansion_error.stderr
diff --git a/tests/ui/async-await/await-sequence.rs b/tests/ui/async-await/await-sequence.rs
new file mode 100644
index 000000000..726c4284e
--- /dev/null
+++ b/tests/ui/async-await/await-sequence.rs
@@ -0,0 +1,21 @@
+// edition:2021
+// compile-flags: -Z drop-tracking
+// build-pass
+
+use std::collections::HashMap;
+
+fn main() {
+ let _ = real_main();
+}
+
+async fn nop() {}
+
+async fn real_main() {
+ nop().await;
+ nop().await;
+ nop().await;
+ nop().await;
+
+ let mut map: HashMap<(), ()> = HashMap::new();
+ map.insert((), nop().await);
+}
diff --git a/src/test/ui/async-await/await-unsize.rs b/tests/ui/async-await/await-unsize.rs
index aa09d4bdf..aa09d4bdf 100644
--- a/src/test/ui/async-await/await-unsize.rs
+++ b/tests/ui/async-await/await-unsize.rs
diff --git a/src/test/ui/async-await/bound-normalization.rs b/tests/ui/async-await/bound-normalization.rs
index 5d260682f..5d260682f 100644
--- a/src/test/ui/async-await/bound-normalization.rs
+++ b/tests/ui/async-await/bound-normalization.rs
diff --git a/src/test/ui/async-await/conditional-and-guaranteed-initialization.rs b/tests/ui/async-await/conditional-and-guaranteed-initialization.rs
index 56f4cbbd1..56f4cbbd1 100644
--- a/src/test/ui/async-await/conditional-and-guaranteed-initialization.rs
+++ b/tests/ui/async-await/conditional-and-guaranteed-initialization.rs
diff --git a/src/test/ui/async-await/default-struct-update.rs b/tests/ui/async-await/default-struct-update.rs
index 64fb6280d..64fb6280d 100644
--- a/src/test/ui/async-await/default-struct-update.rs
+++ b/tests/ui/async-await/default-struct-update.rs
diff --git a/src/test/ui/async-await/dont-print-desugared-async.rs b/tests/ui/async-await/dont-print-desugared-async.rs
index 68341a24c..68341a24c 100644
--- a/src/test/ui/async-await/dont-print-desugared-async.rs
+++ b/tests/ui/async-await/dont-print-desugared-async.rs
diff --git a/src/test/ui/async-await/dont-print-desugared-async.stderr b/tests/ui/async-await/dont-print-desugared-async.stderr
index d80467c7f..d80467c7f 100644
--- a/src/test/ui/async-await/dont-print-desugared-async.stderr
+++ b/tests/ui/async-await/dont-print-desugared-async.stderr
diff --git a/tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.rs b/tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.rs
new file mode 100644
index 000000000..f2f87a908
--- /dev/null
+++ b/tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.rs
@@ -0,0 +1,24 @@
+// edition:2021
+
+// Test that we do not suggest `.await` when it doesn't make sense.
+
+struct A;
+
+impl A {
+ fn test(&self) -> i32 {
+ 1
+ }
+}
+
+async fn foo() -> A {
+ A
+}
+
+async fn async_main() {
+ let x: u32 = foo().test();
+ //~^ ERROR no method named `test` found for opaque type `impl Future<Output = A>` in the current scope
+}
+
+fn main() {
+ let _ = async_main();
+}
diff --git a/tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.stderr b/tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.stderr
new file mode 100644
index 000000000..e65d9d0e5
--- /dev/null
+++ b/tests/ui/async-await/dont-suggest-await-on-method-return-mismatch.stderr
@@ -0,0 +1,9 @@
+error[E0599]: no method named `test` found for opaque type `impl Future<Output = A>` in the current scope
+ --> $DIR/dont-suggest-await-on-method-return-mismatch.rs:18:24
+ |
+LL | let x: u32 = foo().test();
+ | ^^^^ method not found in `impl Future<Output = A>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/async-await/dont-suggest-missing-await.rs b/tests/ui/async-await/dont-suggest-missing-await.rs
index a8e5b38ec..a8e5b38ec 100644
--- a/src/test/ui/async-await/dont-suggest-missing-await.rs
+++ b/tests/ui/async-await/dont-suggest-missing-await.rs
diff --git a/src/test/ui/async-await/dont-suggest-missing-await.stderr b/tests/ui/async-await/dont-suggest-missing-await.stderr
index 627bf05bb..627bf05bb 100644
--- a/src/test/ui/async-await/dont-suggest-missing-await.stderr
+++ b/tests/ui/async-await/dont-suggest-missing-await.stderr
diff --git a/src/test/ui/async-await/drop-and-assign.rs b/tests/ui/async-await/drop-and-assign.rs
index fa3f33036..fa3f33036 100644
--- a/src/test/ui/async-await/drop-and-assign.rs
+++ b/tests/ui/async-await/drop-and-assign.rs
diff --git a/src/test/ui/async-await/drop-order/auxiliary/arc_wake.rs b/tests/ui/async-await/drop-order/auxiliary/arc_wake.rs
index c21886f26..c21886f26 100644
--- a/src/test/ui/async-await/drop-order/auxiliary/arc_wake.rs
+++ b/tests/ui/async-await/drop-order/auxiliary/arc_wake.rs
diff --git a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs b/tests/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs
index 9817d377a..9817d377a 100644
--- a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs
+++ b/tests/ui/async-await/drop-order/drop-order-for-async-fn-parameters-by-ref-binding.rs
diff --git a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs b/tests/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs
index 6c10ead36..6c10ead36 100644
--- a/src/test/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs
+++ b/tests/ui/async-await/drop-order/drop-order-for-async-fn-parameters.rs
diff --git a/src/test/ui/async-await/drop-order/drop-order-for-locals-when-cancelled.rs b/tests/ui/async-await/drop-order/drop-order-for-locals-when-cancelled.rs
index 15cc9fbc8..15cc9fbc8 100644
--- a/src/test/ui/async-await/drop-order/drop-order-for-locals-when-cancelled.rs
+++ b/tests/ui/async-await/drop-order/drop-order-for-locals-when-cancelled.rs
diff --git a/src/test/ui/async-await/drop-order/drop-order-for-temporary-in-tail-return-expr.rs b/tests/ui/async-await/drop-order/drop-order-for-temporary-in-tail-return-expr.rs
index edfecb910..edfecb910 100644
--- a/src/test/ui/async-await/drop-order/drop-order-for-temporary-in-tail-return-expr.rs
+++ b/tests/ui/async-await/drop-order/drop-order-for-temporary-in-tail-return-expr.rs
diff --git a/src/test/ui/async-await/drop-order/drop-order-locals-are-hidden.rs b/tests/ui/async-await/drop-order/drop-order-locals-are-hidden.rs
index 79dedb1ba..79dedb1ba 100644
--- a/src/test/ui/async-await/drop-order/drop-order-locals-are-hidden.rs
+++ b/tests/ui/async-await/drop-order/drop-order-locals-are-hidden.rs
diff --git a/src/test/ui/async-await/drop-order/drop-order-locals-are-hidden.stderr b/tests/ui/async-await/drop-order/drop-order-locals-are-hidden.stderr
index aa04a613f..aa04a613f 100644
--- a/src/test/ui/async-await/drop-order/drop-order-locals-are-hidden.stderr
+++ b/tests/ui/async-await/drop-order/drop-order-locals-are-hidden.stderr
diff --git a/src/test/ui/async-await/drop-order/drop-order-when-cancelled.rs b/tests/ui/async-await/drop-order/drop-order-when-cancelled.rs
index cfd68bc0d..cfd68bc0d 100644
--- a/src/test/ui/async-await/drop-order/drop-order-when-cancelled.rs
+++ b/tests/ui/async-await/drop-order/drop-order-when-cancelled.rs
diff --git a/src/test/ui/async-await/drop-track-bad-field-in-fru.rs b/tests/ui/async-await/drop-track-bad-field-in-fru.rs
index 28ad77675..28ad77675 100644
--- a/src/test/ui/async-await/drop-track-bad-field-in-fru.rs
+++ b/tests/ui/async-await/drop-track-bad-field-in-fru.rs
diff --git a/src/test/ui/async-await/drop-track-bad-field-in-fru.stderr b/tests/ui/async-await/drop-track-bad-field-in-fru.stderr
index 819b64ad7..819b64ad7 100644
--- a/src/test/ui/async-await/drop-track-bad-field-in-fru.stderr
+++ b/tests/ui/async-await/drop-track-bad-field-in-fru.stderr
diff --git a/src/test/ui/async-await/drop-track-field-assign-nonsend.rs b/tests/ui/async-await/drop-track-field-assign-nonsend.rs
index b6c0fda15..b6c0fda15 100644
--- a/src/test/ui/async-await/drop-track-field-assign-nonsend.rs
+++ b/tests/ui/async-await/drop-track-field-assign-nonsend.rs
diff --git a/src/test/ui/async-await/drop-track-field-assign-nonsend.stderr b/tests/ui/async-await/drop-track-field-assign-nonsend.stderr
index d95483c81..d95483c81 100644
--- a/src/test/ui/async-await/drop-track-field-assign-nonsend.stderr
+++ b/tests/ui/async-await/drop-track-field-assign-nonsend.stderr
diff --git a/src/test/ui/async-await/drop-track-field-assign.rs b/tests/ui/async-await/drop-track-field-assign.rs
index 3a393cd16..3a393cd16 100644
--- a/src/test/ui/async-await/drop-track-field-assign.rs
+++ b/tests/ui/async-await/drop-track-field-assign.rs
diff --git a/src/test/ui/async-await/drop-tracking-unresolved-typeck-results.rs b/tests/ui/async-await/drop-tracking-unresolved-typeck-results.rs
index 7f7294295..7f7294295 100644
--- a/src/test/ui/async-await/drop-tracking-unresolved-typeck-results.rs
+++ b/tests/ui/async-await/drop-tracking-unresolved-typeck-results.rs
diff --git a/src/test/ui/async-await/drop-tracking-unresolved-typeck-results.stderr b/tests/ui/async-await/drop-tracking-unresolved-typeck-results.stderr
index aa9a22e9e..aa9a22e9e 100644
--- a/src/test/ui/async-await/drop-tracking-unresolved-typeck-results.stderr
+++ b/tests/ui/async-await/drop-tracking-unresolved-typeck-results.stderr
diff --git a/src/test/ui/async-await/edition-deny-async-fns-2015.rs b/tests/ui/async-await/edition-deny-async-fns-2015.rs
index 6bd6d879a..6bd6d879a 100644
--- a/src/test/ui/async-await/edition-deny-async-fns-2015.rs
+++ b/tests/ui/async-await/edition-deny-async-fns-2015.rs
diff --git a/src/test/ui/async-await/edition-deny-async-fns-2015.stderr b/tests/ui/async-await/edition-deny-async-fns-2015.stderr
index ba918eb28..ba918eb28 100644
--- a/src/test/ui/async-await/edition-deny-async-fns-2015.stderr
+++ b/tests/ui/async-await/edition-deny-async-fns-2015.stderr
diff --git a/src/test/ui/async-await/expansion-in-attrs.rs b/tests/ui/async-await/expansion-in-attrs.rs
index af77c3463..af77c3463 100644
--- a/src/test/ui/async-await/expansion-in-attrs.rs
+++ b/tests/ui/async-await/expansion-in-attrs.rs
diff --git a/src/test/ui/async-await/feature-async-closure.rs b/tests/ui/async-await/feature-async-closure.rs
index d07116b13..d07116b13 100644
--- a/src/test/ui/async-await/feature-async-closure.rs
+++ b/tests/ui/async-await/feature-async-closure.rs
diff --git a/src/test/ui/async-await/feature-async-closure.stderr b/tests/ui/async-await/feature-async-closure.stderr
index 485a838b6..485a838b6 100644
--- a/src/test/ui/async-await/feature-async-closure.stderr
+++ b/tests/ui/async-await/feature-async-closure.stderr
diff --git a/src/test/ui/async-await/feature-gate-async_fn_in_trait.rs b/tests/ui/async-await/feature-gate-async_fn_in_trait.rs
index 792f378cb..792f378cb 100644
--- a/src/test/ui/async-await/feature-gate-async_fn_in_trait.rs
+++ b/tests/ui/async-await/feature-gate-async_fn_in_trait.rs
diff --git a/src/test/ui/async-await/feature-gate-async_fn_in_trait.stderr b/tests/ui/async-await/feature-gate-async_fn_in_trait.stderr
index 2a5fbd1ec..2a5fbd1ec 100644
--- a/src/test/ui/async-await/feature-gate-async_fn_in_trait.stderr
+++ b/tests/ui/async-await/feature-gate-async_fn_in_trait.stderr
diff --git a/src/test/ui/async-await/feature-self-return-type.rs b/tests/ui/async-await/feature-self-return-type.rs
index 41f887430..41f887430 100644
--- a/src/test/ui/async-await/feature-self-return-type.rs
+++ b/tests/ui/async-await/feature-self-return-type.rs
diff --git a/src/test/ui/async-await/feature-self-return-type.stderr b/tests/ui/async-await/feature-self-return-type.stderr
index 892468368..892468368 100644
--- a/src/test/ui/async-await/feature-self-return-type.stderr
+++ b/tests/ui/async-await/feature-self-return-type.stderr
diff --git a/src/test/ui/async-await/futures-api.rs b/tests/ui/async-await/futures-api.rs
index a7da058de..a7da058de 100644
--- a/src/test/ui/async-await/futures-api.rs
+++ b/tests/ui/async-await/futures-api.rs
diff --git a/src/test/ui/async-await/generator-desc.rs b/tests/ui/async-await/generator-desc.rs
index 500812016..500812016 100644
--- a/src/test/ui/async-await/generator-desc.rs
+++ b/tests/ui/async-await/generator-desc.rs
diff --git a/src/test/ui/async-await/generator-desc.stderr b/tests/ui/async-await/generator-desc.stderr
index 1686153ac..963c6ba57 100644
--- a/src/test/ui/async-await/generator-desc.stderr
+++ b/tests/ui/async-await/generator-desc.stderr
@@ -12,9 +12,6 @@ LL | fun(async {}, async {});
found `async` block `[async block@$DIR/generator-desc.rs:10:19: 10:27]`
note: function defined here
--> $SRC_DIR/core/src/future/mod.rs:LL:COL
- |
-LL | pub const fn identity_future<O, Fut: Future<Output = O>>(f: Fut) -> Fut {
- | ^^^^^^^^^^^^^^^
error[E0308]: mismatched types
--> $DIR/generator-desc.rs:12:16
diff --git a/src/test/ui/async-await/generator-not-future.rs b/tests/ui/async-await/generator-not-future.rs
index 37d7cfa6f..37d7cfa6f 100644
--- a/src/test/ui/async-await/generator-not-future.rs
+++ b/tests/ui/async-await/generator-not-future.rs
diff --git a/src/test/ui/async-await/generator-not-future.stderr b/tests/ui/async-await/generator-not-future.stderr
index 1b81b461f..1b81b461f 100644
--- a/src/test/ui/async-await/generator-not-future.stderr
+++ b/tests/ui/async-await/generator-not-future.stderr
diff --git a/src/test/ui/async-await/generics-and-bounds.rs b/tests/ui/async-await/generics-and-bounds.rs
index 963b19b34..963b19b34 100644
--- a/src/test/ui/async-await/generics-and-bounds.rs
+++ b/tests/ui/async-await/generics-and-bounds.rs
diff --git a/src/test/ui/async-await/in-trait/async-associated-types.rs b/tests/ui/async-await/in-trait/async-associated-types.rs
index 974f5aaff..974f5aaff 100644
--- a/src/test/ui/async-await/in-trait/async-associated-types.rs
+++ b/tests/ui/async-await/in-trait/async-associated-types.rs
diff --git a/src/test/ui/async-await/in-trait/async-associated-types2.rs b/tests/ui/async-await/in-trait/async-associated-types2.rs
index e546a0579..e546a0579 100644
--- a/src/test/ui/async-await/in-trait/async-associated-types2.rs
+++ b/tests/ui/async-await/in-trait/async-associated-types2.rs
diff --git a/src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.rs b/tests/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.rs
index 38ba29718..38ba29718 100644
--- a/src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.rs
+++ b/tests/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.rs
diff --git a/src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.stderr b/tests/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.stderr
index 22d2928f2..13e722255 100644
--- a/src/test/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.stderr
+++ b/tests/ui/async-await/in-trait/async-example-desugared-boxed-in-trait.stderr
@@ -9,8 +9,8 @@ note: type in trait
|
LL | fn foo(&self) -> Pin<Box<dyn Future<Output = i32> + '_>>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- = note: expected fn pointer `fn(&i32) -> Pin<Box<dyn Future<Output = i32>>>`
- found fn pointer `fn(&i32) -> impl Future<Output = i32>`
+ = note: expected signature `fn(&i32) -> Pin<Box<dyn Future<Output = i32>>>`
+ found signature `fn(&i32) -> impl Future<Output = i32>`
error: aborting due to previous error
diff --git a/tests/ui/async-await/in-trait/async-example-desugared-boxed.rs b/tests/ui/async-await/in-trait/async-example-desugared-boxed.rs
new file mode 100644
index 000000000..1b1b3cffd
--- /dev/null
+++ b/tests/ui/async-await/in-trait/async-example-desugared-boxed.rs
@@ -0,0 +1,21 @@
+// edition: 2021
+
+#![feature(async_fn_in_trait)]
+#![feature(return_position_impl_trait_in_trait)]
+#![allow(incomplete_features)]
+
+use std::future::Future;
+use std::pin::Pin;
+
+trait MyTrait {
+ async fn foo(&self) -> i32;
+}
+
+impl MyTrait for i32 {
+ fn foo(&self) -> Pin<Box<dyn Future<Output = i32> + '_>> {
+ //~^ ERROR method `foo` should be async
+ Box::pin(async { *self })
+ }
+}
+
+fn main() {}
diff --git a/tests/ui/async-await/in-trait/async-example-desugared-boxed.stderr b/tests/ui/async-await/in-trait/async-example-desugared-boxed.stderr
new file mode 100644
index 000000000..60fa534a6
--- /dev/null
+++ b/tests/ui/async-await/in-trait/async-example-desugared-boxed.stderr
@@ -0,0 +1,11 @@
+error: method `foo` should be async because the method from the trait is async
+ --> $DIR/async-example-desugared-boxed.rs:15:5
+ |
+LL | async fn foo(&self) -> i32;
+ | --------------------------- required because the trait method is async
+...
+LL | fn foo(&self) -> Pin<Box<dyn Future<Output = i32> + '_>> {
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/tests/ui/async-await/in-trait/async-example-desugared-extra.rs b/tests/ui/async-await/in-trait/async-example-desugared-extra.rs
new file mode 100644
index 000000000..81e1e59a3
--- /dev/null
+++ b/tests/ui/async-await/in-trait/async-example-desugared-extra.rs
@@ -0,0 +1,37 @@
+// check-pass
+// edition: 2021
+
+#![feature(async_fn_in_trait)]
+#![feature(return_position_impl_trait_in_trait)]
+#![allow(incomplete_features)]
+
+use std::future::Future;
+use std::pin::Pin;
+use std::task::Poll;
+
+trait MyTrait {
+ async fn foo(&self) -> i32;
+}
+
+#[derive(Clone)]
+struct MyFuture(i32);
+
+impl Future for MyFuture {
+ type Output = i32;
+ fn poll(
+ self: Pin<&mut Self>,
+ _: &mut std::task::Context<'_>,
+ ) -> Poll<<Self as Future>::Output> {
+ Poll::Ready(self.0)
+ }
+}
+
+impl MyTrait for i32 {
+ // FIXME: this should eventually require `#[refine]` to compile, because it also provides
+ // `Clone`.
+ fn foo(&self) -> impl Future<Output = i32> + Clone {
+ MyFuture(*self)
+ }
+}
+
+fn main() {}
diff --git a/src/test/ui/async-await/in-trait/async-example-desugared-in-trait.rs b/tests/ui/async-await/in-trait/async-example-desugared-in-trait.rs
index feeda719e..feeda719e 100644
--- a/src/test/ui/async-await/in-trait/async-example-desugared-in-trait.rs
+++ b/tests/ui/async-await/in-trait/async-example-desugared-in-trait.rs
diff --git a/tests/ui/async-await/in-trait/async-example-desugared-manual.rs b/tests/ui/async-await/in-trait/async-example-desugared-manual.rs
new file mode 100644
index 000000000..71473e745
--- /dev/null
+++ b/tests/ui/async-await/in-trait/async-example-desugared-manual.rs
@@ -0,0 +1,29 @@
+// edition: 2021
+
+#![feature(async_fn_in_trait)]
+#![feature(return_position_impl_trait_in_trait)]
+#![allow(incomplete_features)]
+
+use std::future::Future;
+use std::task::Poll;
+
+trait MyTrait {
+ async fn foo(&self) -> i32;
+}
+
+struct MyFuture;
+impl Future for MyFuture {
+ type Output = i32;
+ fn poll(self: std::pin::Pin<&mut Self>, _: &mut std::task::Context<'_>) -> Poll<Self::Output> {
+ Poll::Ready(0)
+ }
+}
+
+impl MyTrait for u32 {
+ fn foo(&self) -> MyFuture {
+ //~^ ERROR method `foo` should be async
+ MyFuture
+ }
+}
+
+fn main() {}
diff --git a/tests/ui/async-await/in-trait/async-example-desugared-manual.stderr b/tests/ui/async-await/in-trait/async-example-desugared-manual.stderr
new file mode 100644
index 000000000..567a36a86
--- /dev/null
+++ b/tests/ui/async-await/in-trait/async-example-desugared-manual.stderr
@@ -0,0 +1,11 @@
+error: method `foo` should be async because the method from the trait is async
+ --> $DIR/async-example-desugared-manual.rs:23:5
+ |
+LL | async fn foo(&self) -> i32;
+ | --------------------------- required because the trait method is async
+...
+LL | fn foo(&self) -> MyFuture {
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/tests/ui/async-await/in-trait/async-example-desugared.rs b/tests/ui/async-await/in-trait/async-example-desugared.rs
new file mode 100644
index 000000000..fb92ec786
--- /dev/null
+++ b/tests/ui/async-await/in-trait/async-example-desugared.rs
@@ -0,0 +1,20 @@
+// check-pass
+// edition: 2021
+
+#![feature(async_fn_in_trait)]
+#![feature(return_position_impl_trait_in_trait)]
+#![allow(incomplete_features)]
+
+use std::future::Future;
+
+trait MyTrait {
+ async fn foo(&self) -> i32;
+}
+
+impl MyTrait for i32 {
+ fn foo(&self) -> impl Future<Output = i32> + '_ {
+ async { *self }
+ }
+}
+
+fn main() {}
diff --git a/src/test/ui/async-await/in-trait/async-example.rs b/tests/ui/async-await/in-trait/async-example.rs
index abf94ef74..abf94ef74 100644
--- a/src/test/ui/async-await/in-trait/async-example.rs
+++ b/tests/ui/async-await/in-trait/async-example.rs
diff --git a/src/test/ui/async-await/in-trait/async-generics-and-bounds.rs b/tests/ui/async-await/in-trait/async-generics-and-bounds.rs
index a73d55adf..a73d55adf 100644
--- a/src/test/ui/async-await/in-trait/async-generics-and-bounds.rs
+++ b/tests/ui/async-await/in-trait/async-generics-and-bounds.rs
diff --git a/src/test/ui/async-await/in-trait/async-generics-and-bounds.stderr b/tests/ui/async-await/in-trait/async-generics-and-bounds.stderr
index f1f0d7e59..f1f0d7e59 100644
--- a/src/test/ui/async-await/in-trait/async-generics-and-bounds.stderr
+++ b/tests/ui/async-await/in-trait/async-generics-and-bounds.stderr
diff --git a/src/test/ui/async-await/in-trait/async-generics.rs b/tests/ui/async-await/in-trait/async-generics.rs
index 67000e577..67000e577 100644
--- a/src/test/ui/async-await/in-trait/async-generics.rs
+++ b/tests/ui/async-await/in-trait/async-generics.rs
diff --git a/src/test/ui/async-await/in-trait/async-generics.stderr b/tests/ui/async-await/in-trait/async-generics.stderr
index 2f0556456..2f0556456 100644
--- a/src/test/ui/async-await/in-trait/async-generics.stderr
+++ b/tests/ui/async-await/in-trait/async-generics.stderr
diff --git a/src/test/ui/async-await/in-trait/async-lifetimes-and-bounds.rs b/tests/ui/async-await/in-trait/async-lifetimes-and-bounds.rs
index d5481d277..d5481d277 100644
--- a/src/test/ui/async-await/in-trait/async-lifetimes-and-bounds.rs
+++ b/tests/ui/async-await/in-trait/async-lifetimes-and-bounds.rs
diff --git a/src/test/ui/async-await/in-trait/async-lifetimes.rs b/tests/ui/async-await/in-trait/async-lifetimes.rs
index f298e45d2..f298e45d2 100644
--- a/src/test/ui/async-await/in-trait/async-lifetimes.rs
+++ b/tests/ui/async-await/in-trait/async-lifetimes.rs
diff --git a/src/test/ui/async-await/in-trait/async-recursive-generic.rs b/tests/ui/async-await/in-trait/async-recursive-generic.rs
index 6839abd38..6839abd38 100644
--- a/src/test/ui/async-await/in-trait/async-recursive-generic.rs
+++ b/tests/ui/async-await/in-trait/async-recursive-generic.rs
diff --git a/src/test/ui/async-await/in-trait/async-recursive-generic.stderr b/tests/ui/async-await/in-trait/async-recursive-generic.stderr
index cab173bdd..cab173bdd 100644
--- a/src/test/ui/async-await/in-trait/async-recursive-generic.stderr
+++ b/tests/ui/async-await/in-trait/async-recursive-generic.stderr
diff --git a/src/test/ui/async-await/in-trait/async-recursive.rs b/tests/ui/async-await/in-trait/async-recursive.rs
index 61119f809..61119f809 100644
--- a/src/test/ui/async-await/in-trait/async-recursive.rs
+++ b/tests/ui/async-await/in-trait/async-recursive.rs
diff --git a/src/test/ui/async-await/in-trait/async-recursive.stderr b/tests/ui/async-await/in-trait/async-recursive.stderr
index 9feff37b3..9feff37b3 100644
--- a/src/test/ui/async-await/in-trait/async-recursive.stderr
+++ b/tests/ui/async-await/in-trait/async-recursive.stderr
diff --git a/tests/ui/async-await/in-trait/bad-signatures.rs b/tests/ui/async-await/in-trait/bad-signatures.rs
new file mode 100644
index 000000000..b86f1d1c1
--- /dev/null
+++ b/tests/ui/async-await/in-trait/bad-signatures.rs
@@ -0,0 +1,16 @@
+// edition:2021
+
+#![feature(async_fn_in_trait)]
+//~^ WARN the feature `async_fn_in_trait` is incomplete
+
+trait MyTrait {
+ async fn bar(&abc self);
+ //~^ ERROR expected identifier, found keyword `self`
+ //~| ERROR expected one of `:`, `@`, or `|`, found keyword `self`
+}
+
+impl MyTrait for () {
+ async fn bar(&self) {}
+}
+
+fn main() {}
diff --git a/tests/ui/async-await/in-trait/bad-signatures.stderr b/tests/ui/async-await/in-trait/bad-signatures.stderr
new file mode 100644
index 000000000..e0ba7b53e
--- /dev/null
+++ b/tests/ui/async-await/in-trait/bad-signatures.stderr
@@ -0,0 +1,26 @@
+error: expected identifier, found keyword `self`
+ --> $DIR/bad-signatures.rs:7:23
+ |
+LL | async fn bar(&abc self);
+ | ^^^^ expected identifier, found keyword
+
+error: expected one of `:`, `@`, or `|`, found keyword `self`
+ --> $DIR/bad-signatures.rs:7:23
+ |
+LL | async fn bar(&abc self);
+ | -----^^^^
+ | | |
+ | | expected one of `:`, `@`, or `|`
+ | help: declare the type after the parameter binding: `<identifier>: <type>`
+
+warning: the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
+ --> $DIR/bad-signatures.rs:3:12
+ |
+LL | #![feature(async_fn_in_trait)]
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
+ = note: `#[warn(incomplete_features)]` on by default
+
+error: aborting due to 2 previous errors; 1 warning emitted
+
diff --git a/src/test/ui/async-await/in-trait/early-bound-1.rs b/tests/ui/async-await/in-trait/early-bound-1.rs
index 6b3b14201..6b3b14201 100644
--- a/src/test/ui/async-await/in-trait/early-bound-1.rs
+++ b/tests/ui/async-await/in-trait/early-bound-1.rs
diff --git a/src/test/ui/async-await/in-trait/early-bound-2.rs b/tests/ui/async-await/in-trait/early-bound-2.rs
index 270443229..270443229 100644
--- a/src/test/ui/async-await/in-trait/early-bound-2.rs
+++ b/tests/ui/async-await/in-trait/early-bound-2.rs
diff --git a/src/test/ui/async-await/in-trait/fn-not-async-err.rs b/tests/ui/async-await/in-trait/fn-not-async-err.rs
index f94d32145..9598d53bc 100644
--- a/src/test/ui/async-await/in-trait/fn-not-async-err.rs
+++ b/tests/ui/async-await/in-trait/fn-not-async-err.rs
@@ -9,7 +9,7 @@ trait MyTrait {
impl MyTrait for i32 {
fn foo(&self) -> i32 {
- //~^ ERROR: `i32` is not a future [E0277]
+ //~^ ERROR: method `foo` should be async
*self
}
}
diff --git a/tests/ui/async-await/in-trait/fn-not-async-err.stderr b/tests/ui/async-await/in-trait/fn-not-async-err.stderr
new file mode 100644
index 000000000..579801d0f
--- /dev/null
+++ b/tests/ui/async-await/in-trait/fn-not-async-err.stderr
@@ -0,0 +1,11 @@
+error: method `foo` should be async because the method from the trait is async
+ --> $DIR/fn-not-async-err.rs:11:5
+ |
+LL | async fn foo(&self) -> i32;
+ | --------------------------- required because the trait method is async
+...
+LL | fn foo(&self) -> i32 {
+ | ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/async-await/in-trait/fn-not-async-err2.rs b/tests/ui/async-await/in-trait/fn-not-async-err2.rs
index 594baa91a..2c4ed5535 100644
--- a/src/test/ui/async-await/in-trait/fn-not-async-err2.rs
+++ b/tests/ui/async-await/in-trait/fn-not-async-err2.rs
@@ -12,9 +12,7 @@ trait MyTrait {
impl MyTrait for i32 {
fn foo(&self) -> impl Future<Output = i32> {
//~^ ERROR `impl Trait` only allowed in function and inherent method return types, not in `impl` method return [E0562]
- async {
- *self
- }
+ async { *self }
}
}
diff --git a/src/test/ui/async-await/in-trait/fn-not-async-err2.stderr b/tests/ui/async-await/in-trait/fn-not-async-err2.stderr
index f591f1847..f591f1847 100644
--- a/src/test/ui/async-await/in-trait/fn-not-async-err2.stderr
+++ b/tests/ui/async-await/in-trait/fn-not-async-err2.stderr
diff --git a/src/test/ui/async-await/in-trait/implied-bounds.rs b/tests/ui/async-await/in-trait/implied-bounds.rs
index 52bceb3cc..52bceb3cc 100644
--- a/src/test/ui/async-await/in-trait/implied-bounds.rs
+++ b/tests/ui/async-await/in-trait/implied-bounds.rs
diff --git a/src/test/ui/async-await/in-trait/issue-102138.rs b/tests/ui/async-await/in-trait/issue-102138.rs
index f61b34ed9..f61b34ed9 100644
--- a/src/test/ui/async-await/in-trait/issue-102138.rs
+++ b/tests/ui/async-await/in-trait/issue-102138.rs
diff --git a/src/test/ui/async-await/in-trait/issue-102219.rs b/tests/ui/async-await/in-trait/issue-102219.rs
index 9a35f6515..9a35f6515 100644
--- a/src/test/ui/async-await/in-trait/issue-102219.rs
+++ b/tests/ui/async-await/in-trait/issue-102219.rs
diff --git a/src/test/ui/async-await/in-trait/issue-102310.rs b/tests/ui/async-await/in-trait/issue-102310.rs
index 49c3e9fee..49c3e9fee 100644
--- a/src/test/ui/async-await/in-trait/issue-102310.rs
+++ b/tests/ui/async-await/in-trait/issue-102310.rs
diff --git a/tests/ui/async-await/in-trait/issue-104678.rs b/tests/ui/async-await/in-trait/issue-104678.rs
new file mode 100644
index 000000000..e396df4e5
--- /dev/null
+++ b/tests/ui/async-await/in-trait/issue-104678.rs
@@ -0,0 +1,31 @@
+// edition:2021
+// check-pass
+
+#![feature(async_fn_in_trait)]
+#![allow(incomplete_features)]
+
+use std::future::Future;
+pub trait Pool {
+ type Conn;
+
+ async fn async_callback<'a, F: FnOnce(&'a Self::Conn) -> Fut, Fut: Future<Output = ()>>(
+ &'a self,
+ callback: F,
+ ) -> ();
+}
+
+pub struct PoolImpl;
+pub struct ConnImpl;
+
+impl Pool for PoolImpl {
+ type Conn = ConnImpl;
+
+ async fn async_callback<'a, F: FnOnce(&'a Self::Conn) -> Fut, Fut: Future<Output = ()>>(
+ &'a self,
+ _callback: F,
+ ) -> () {
+ todo!()
+ }
+}
+
+fn main() {}
diff --git a/src/test/ui/async-await/in-trait/lifetime-mismatch.rs b/tests/ui/async-await/in-trait/lifetime-mismatch.rs
index 45ede193c..45ede193c 100644
--- a/src/test/ui/async-await/in-trait/lifetime-mismatch.rs
+++ b/tests/ui/async-await/in-trait/lifetime-mismatch.rs
diff --git a/src/test/ui/async-await/in-trait/lifetime-mismatch.stderr b/tests/ui/async-await/in-trait/lifetime-mismatch.stderr
index d87adcc78..d87adcc78 100644
--- a/src/test/ui/async-await/in-trait/lifetime-mismatch.stderr
+++ b/tests/ui/async-await/in-trait/lifetime-mismatch.stderr
diff --git a/tests/ui/async-await/in-trait/missing-send-bound.rs b/tests/ui/async-await/in-trait/missing-send-bound.rs
new file mode 100644
index 000000000..78922b59b
--- /dev/null
+++ b/tests/ui/async-await/in-trait/missing-send-bound.rs
@@ -0,0 +1,21 @@
+// edition:2021
+
+#![feature(async_fn_in_trait)]
+//~^ WARN the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
+
+trait Foo {
+ async fn bar();
+}
+
+async fn test<T: Foo>() {
+ T::bar().await;
+}
+
+fn test2<T: Foo>() {
+ assert_is_send(test::<T>());
+ //~^ ERROR future cannot be sent between threads safely
+}
+
+fn assert_is_send(_: impl Send) {}
+
+fn main() {}
diff --git a/tests/ui/async-await/in-trait/missing-send-bound.stderr b/tests/ui/async-await/in-trait/missing-send-bound.stderr
new file mode 100644
index 000000000..5cedf3ddb
--- /dev/null
+++ b/tests/ui/async-await/in-trait/missing-send-bound.stderr
@@ -0,0 +1,29 @@
+warning: the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
+ --> $DIR/missing-send-bound.rs:3:12
+ |
+LL | #![feature(async_fn_in_trait)]
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
+ = note: `#[warn(incomplete_features)]` on by default
+
+error: future cannot be sent between threads safely
+ --> $DIR/missing-send-bound.rs:15:20
+ |
+LL | assert_is_send(test::<T>());
+ | ^^^^^^^^^^^ future returned by `test` is not `Send`
+ |
+ = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `impl Future<Output = ()>`
+note: future is not `Send` as it awaits another future which is not `Send`
+ --> $DIR/missing-send-bound.rs:11:5
+ |
+LL | T::bar().await;
+ | ^^^^^^^^ await occurs here on type `impl Future<Output = ()>`, which is not `Send`
+note: required by a bound in `assert_is_send`
+ --> $DIR/missing-send-bound.rs:19:27
+ |
+LL | fn assert_is_send(_: impl Send) {}
+ | ^^^^ required by this bound in `assert_is_send`
+
+error: aborting due to previous error; 1 warning emitted
+
diff --git a/src/test/ui/async-await/in-trait/nested-rpit.rs b/tests/ui/async-await/in-trait/nested-rpit.rs
index 41d72ebb4..41d72ebb4 100644
--- a/src/test/ui/async-await/in-trait/nested-rpit.rs
+++ b/tests/ui/async-await/in-trait/nested-rpit.rs
diff --git a/src/test/ui/async-await/in-trait/object-safety.rs b/tests/ui/async-await/in-trait/object-safety.rs
index a8bc35f7e..a8bc35f7e 100644
--- a/src/test/ui/async-await/in-trait/object-safety.rs
+++ b/tests/ui/async-await/in-trait/object-safety.rs
diff --git a/src/test/ui/async-await/in-trait/object-safety.stderr b/tests/ui/async-await/in-trait/object-safety.stderr
index 0b318f71f..0b318f71f 100644
--- a/src/test/ui/async-await/in-trait/object-safety.stderr
+++ b/tests/ui/async-await/in-trait/object-safety.stderr
diff --git a/src/test/ui/async-await/in-trait/return-type-suggestion.rs b/tests/ui/async-await/in-trait/return-type-suggestion.rs
index 3446761d1..3446761d1 100644
--- a/src/test/ui/async-await/in-trait/return-type-suggestion.rs
+++ b/tests/ui/async-await/in-trait/return-type-suggestion.rs
diff --git a/src/test/ui/async-await/in-trait/return-type-suggestion.stderr b/tests/ui/async-await/in-trait/return-type-suggestion.stderr
index 5a9b15e54..5a9b15e54 100644
--- a/src/test/ui/async-await/in-trait/return-type-suggestion.stderr
+++ b/tests/ui/async-await/in-trait/return-type-suggestion.stderr
diff --git a/src/test/ui/async-await/incorrect-move-async-order-issue-79694.fixed b/tests/ui/async-await/incorrect-move-async-order-issue-79694.fixed
index 055800d23..055800d23 100644
--- a/src/test/ui/async-await/incorrect-move-async-order-issue-79694.fixed
+++ b/tests/ui/async-await/incorrect-move-async-order-issue-79694.fixed
diff --git a/src/test/ui/async-await/incorrect-move-async-order-issue-79694.rs b/tests/ui/async-await/incorrect-move-async-order-issue-79694.rs
index e8be16516..e8be16516 100644
--- a/src/test/ui/async-await/incorrect-move-async-order-issue-79694.rs
+++ b/tests/ui/async-await/incorrect-move-async-order-issue-79694.rs
diff --git a/src/test/ui/async-await/incorrect-move-async-order-issue-79694.stderr b/tests/ui/async-await/incorrect-move-async-order-issue-79694.stderr
index 5367b986d..5367b986d 100644
--- a/src/test/ui/async-await/incorrect-move-async-order-issue-79694.stderr
+++ b/tests/ui/async-await/incorrect-move-async-order-issue-79694.stderr
diff --git a/src/test/ui/async-await/interior-with-const-generic-expr.rs b/tests/ui/async-await/interior-with-const-generic-expr.rs
index 86ba7582d..86ba7582d 100644
--- a/src/test/ui/async-await/interior-with-const-generic-expr.rs
+++ b/tests/ui/async-await/interior-with-const-generic-expr.rs
diff --git a/src/test/ui/async-await/issue-101715.rs b/tests/ui/async-await/issue-101715.rs
index 1be5d0248..1be5d0248 100644
--- a/src/test/ui/async-await/issue-101715.rs
+++ b/tests/ui/async-await/issue-101715.rs
diff --git a/src/test/ui/async-await/issue-101715.stderr b/tests/ui/async-await/issue-101715.stderr
index a0e8d2a89..a0e8d2a89 100644
--- a/src/test/ui/async-await/issue-101715.stderr
+++ b/tests/ui/async-await/issue-101715.stderr
diff --git a/tests/ui/async-await/issue-105501.rs b/tests/ui/async-await/issue-105501.rs
new file mode 100644
index 000000000..f30d2a9d8
--- /dev/null
+++ b/tests/ui/async-await/issue-105501.rs
@@ -0,0 +1,165 @@
+// check-pass
+// edition:2018
+
+// This is a regression test for https://github.com/rust-lang/rust/issues/105501.
+// It was minified from the published `msf-ice:0.2.1` crate which failed in a crater run.
+// A faulty compiler was triggering a `higher-ranked lifetime error`:
+//
+// > could not prove `[async block@...]: Send`
+
+use mini_futures::Stream;
+
+fn is_send(_: impl Send) {}
+
+pub fn main() {
+ let fut = async {
+ let mut stream = mini_futures::iter([()])
+ .then(|_| async {})
+ .map(|_| async { None })
+ .buffered()
+ .filter_map(std::future::ready);
+
+ stream.next().await
+ };
+
+ is_send(async move {
+ let _: Option<()> = fut.await;
+ });
+}
+
+// this is a simplified subset of `futures::StreamExt` and related types
+mod mini_futures {
+ use std::future::Future;
+ use std::pin::Pin;
+ use std::task::{Context, Poll};
+
+ pub fn iter<I>(_: I) -> Iter<I::IntoIter>
+ where
+ I: IntoIterator,
+ {
+ todo!()
+ }
+
+ pub trait Stream {
+ type Item;
+
+ fn then<Fut, F>(self, _: F) -> Then<Self, Fut, F>
+ where
+ F: FnMut(Self::Item) -> Fut,
+ Fut: Future,
+ Self: Sized,
+ {
+ todo!()
+ }
+
+ fn map<T, F>(self, _: F) -> Map<Self, F>
+ where
+ F: FnMut(Self::Item) -> T,
+ Self: Sized,
+ {
+ todo!()
+ }
+
+ fn buffered(self) -> Buffered<Self>
+ where
+ Self::Item: Future,
+ Self: Sized,
+ {
+ todo!()
+ }
+
+ fn filter_map<Fut, T, F>(self, _: F) -> FilterMap<Self, Fut, F>
+ where
+ F: FnMut(Self::Item) -> Fut,
+ Fut: Future<Output = Option<T>>,
+ Self: Sized,
+ {
+ todo!()
+ }
+
+ fn next(&mut self) -> Next<'_, Self> {
+ todo!()
+ }
+ }
+
+ pub struct Iter<I> {
+ __: I,
+ }
+ impl<I> Stream for Iter<I>
+ where
+ I: Iterator,
+ {
+ type Item = I::Item;
+ }
+
+ pub struct Then<St, Fut, F> {
+ __: (St, Fut, F),
+ }
+ impl<St, Fut, F> Stream for Then<St, Fut, F>
+ where
+ St: Stream,
+ F: FnMut(St::Item) -> Fut,
+ Fut: Future,
+ {
+ type Item = Fut::Output;
+ }
+
+ pub struct Map<St, F> {
+ __: (St, F),
+ }
+ impl<St, F> Stream for Map<St, F>
+ where
+ St: Stream,
+ F: FnMut1<St::Item>,
+ {
+ type Item = F::Output;
+ }
+
+ pub trait FnMut1<A> {
+ type Output;
+ }
+ impl<T, A, R> FnMut1<A> for T
+ where
+ T: FnMut(A) -> R,
+ {
+ type Output = R;
+ }
+
+ pub struct Buffered<St>
+ where
+ St: Stream,
+ St::Item: Future,
+ {
+ __: (St, St::Item),
+ }
+ impl<St> Stream for Buffered<St>
+ where
+ St: Stream,
+ St::Item: Future,
+ {
+ type Item = <St::Item as Future>::Output;
+ }
+
+ pub struct FilterMap<St, Fut, F> {
+ __: (St, Fut, F),
+ }
+ impl<St, Fut, F, T> Stream for FilterMap<St, Fut, F>
+ where
+ St: Stream,
+ F: FnMut1<St::Item, Output = Fut>,
+ Fut: Future<Output = Option<T>>,
+ {
+ type Item = T;
+ }
+
+ pub struct Next<'a, St: ?Sized> {
+ __: &'a mut St,
+ }
+ impl<St: ?Sized + Stream> Future for Next<'_, St> {
+ type Output = Option<St::Item>;
+
+ fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Self::Output> {
+ todo!()
+ }
+ }
+}
diff --git a/src/test/ui/async-await/issue-107036.rs b/tests/ui/async-await/issue-107036.rs
index 6a22de2c9..6a22de2c9 100644
--- a/src/test/ui/async-await/issue-107036.rs
+++ b/tests/ui/async-await/issue-107036.rs
diff --git a/src/test/ui/async-await/issue-54239-private-type-triggers-lint.rs b/tests/ui/async-await/issue-54239-private-type-triggers-lint.rs
index 16cf7ad52..16cf7ad52 100644
--- a/src/test/ui/async-await/issue-54239-private-type-triggers-lint.rs
+++ b/tests/ui/async-await/issue-54239-private-type-triggers-lint.rs
diff --git a/src/test/ui/async-await/issue-60709.rs b/tests/ui/async-await/issue-60709.rs
index 61f6ed1b7..61f6ed1b7 100644
--- a/src/test/ui/async-await/issue-60709.rs
+++ b/tests/ui/async-await/issue-60709.rs
diff --git a/src/test/ui/async-await/issue-61076.rs b/tests/ui/async-await/issue-61076.rs
index 750fad839..750fad839 100644
--- a/src/test/ui/async-await/issue-61076.rs
+++ b/tests/ui/async-await/issue-61076.rs
diff --git a/src/test/ui/async-await/issue-61076.stderr b/tests/ui/async-await/issue-61076.stderr
index 33839ea59..33839ea59 100644
--- a/src/test/ui/async-await/issue-61076.stderr
+++ b/tests/ui/async-await/issue-61076.stderr
diff --git a/src/test/ui/async-await/issue-61452.rs b/tests/ui/async-await/issue-61452.rs
index 9381251ad..9381251ad 100644
--- a/src/test/ui/async-await/issue-61452.rs
+++ b/tests/ui/async-await/issue-61452.rs
diff --git a/src/test/ui/async-await/issue-61452.stderr b/tests/ui/async-await/issue-61452.stderr
index 2d3bb48e0..bf5044328 100644
--- a/src/test/ui/async-await/issue-61452.stderr
+++ b/tests/ui/async-await/issue-61452.stderr
@@ -1,10 +1,13 @@
error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
--> $DIR/issue-61452.rs:4:5
|
-LL | pub async fn f(x: Option<usize>) {
- | - help: consider changing this to be mutable: `mut x`
LL | x.take();
| ^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | pub async fn f(mut x: Option<usize>) {
+ | +++
error[E0384]: cannot assign twice to immutable variable `x`
--> $DIR/issue-61452.rs:9:5
diff --git a/src/test/ui/async-await/issue-61793.rs b/tests/ui/async-await/issue-61793.rs
index 9180e1d81..9180e1d81 100644
--- a/src/test/ui/async-await/issue-61793.rs
+++ b/tests/ui/async-await/issue-61793.rs
diff --git a/src/test/ui/async-await/issue-61949-self-return-type.rs b/tests/ui/async-await/issue-61949-self-return-type.rs
index d73dbc6e8..d73dbc6e8 100644
--- a/src/test/ui/async-await/issue-61949-self-return-type.rs
+++ b/tests/ui/async-await/issue-61949-self-return-type.rs
diff --git a/src/test/ui/async-await/issue-61949-self-return-type.stderr b/tests/ui/async-await/issue-61949-self-return-type.stderr
index 638b197bc..638b197bc 100644
--- a/src/test/ui/async-await/issue-61949-self-return-type.stderr
+++ b/tests/ui/async-await/issue-61949-self-return-type.stderr
diff --git a/src/test/ui/async-await/issue-62658.rs b/tests/ui/async-await/issue-62658.rs
index d0af01e0c..d0af01e0c 100644
--- a/src/test/ui/async-await/issue-62658.rs
+++ b/tests/ui/async-await/issue-62658.rs
diff --git a/src/test/ui/async-await/issue-63832-await-short-temporary-lifetime-1.rs b/tests/ui/async-await/issue-63832-await-short-temporary-lifetime-1.rs
index 54059b29f..54059b29f 100644
--- a/src/test/ui/async-await/issue-63832-await-short-temporary-lifetime-1.rs
+++ b/tests/ui/async-await/issue-63832-await-short-temporary-lifetime-1.rs
diff --git a/src/test/ui/async-await/issue-63832-await-short-temporary-lifetime.rs b/tests/ui/async-await/issue-63832-await-short-temporary-lifetime.rs
index c5ea2b821..c5ea2b821 100644
--- a/src/test/ui/async-await/issue-63832-await-short-temporary-lifetime.rs
+++ b/tests/ui/async-await/issue-63832-await-short-temporary-lifetime.rs
diff --git a/src/test/ui/async-await/issue-64130-1-sync.rs b/tests/ui/async-await/issue-64130-1-sync.rs
index 1714cec52..1714cec52 100644
--- a/src/test/ui/async-await/issue-64130-1-sync.rs
+++ b/tests/ui/async-await/issue-64130-1-sync.rs
diff --git a/src/test/ui/async-await/issue-64130-1-sync.stderr b/tests/ui/async-await/issue-64130-1-sync.stderr
index e205de473..e205de473 100644
--- a/src/test/ui/async-await/issue-64130-1-sync.stderr
+++ b/tests/ui/async-await/issue-64130-1-sync.stderr
diff --git a/src/test/ui/async-await/issue-64130-2-send.rs b/tests/ui/async-await/issue-64130-2-send.rs
index 7a6e5952c..7a6e5952c 100644
--- a/src/test/ui/async-await/issue-64130-2-send.rs
+++ b/tests/ui/async-await/issue-64130-2-send.rs
diff --git a/src/test/ui/async-await/issue-64130-2-send.stderr b/tests/ui/async-await/issue-64130-2-send.stderr
index 2225000e2..2225000e2 100644
--- a/src/test/ui/async-await/issue-64130-2-send.stderr
+++ b/tests/ui/async-await/issue-64130-2-send.stderr
diff --git a/src/test/ui/async-await/issue-64130-3-other.rs b/tests/ui/async-await/issue-64130-3-other.rs
index 630fb2c41..630fb2c41 100644
--- a/src/test/ui/async-await/issue-64130-3-other.rs
+++ b/tests/ui/async-await/issue-64130-3-other.rs
diff --git a/src/test/ui/async-await/issue-64130-3-other.stderr b/tests/ui/async-await/issue-64130-3-other.stderr
index 17867a6a3..17867a6a3 100644
--- a/src/test/ui/async-await/issue-64130-3-other.stderr
+++ b/tests/ui/async-await/issue-64130-3-other.stderr
diff --git a/src/test/ui/async-await/issue-64130-4-async-move.drop-tracking.stderr b/tests/ui/async-await/issue-64130-4-async-move.drop-tracking.stderr
index f609e3636..f609e3636 100644
--- a/src/test/ui/async-await/issue-64130-4-async-move.drop-tracking.stderr
+++ b/tests/ui/async-await/issue-64130-4-async-move.drop-tracking.stderr
diff --git a/src/test/ui/async-await/issue-64130-4-async-move.no_drop_tracking.stderr b/tests/ui/async-await/issue-64130-4-async-move.no_drop_tracking.stderr
index f609e3636..f609e3636 100644
--- a/src/test/ui/async-await/issue-64130-4-async-move.no_drop_tracking.stderr
+++ b/tests/ui/async-await/issue-64130-4-async-move.no_drop_tracking.stderr
diff --git a/src/test/ui/async-await/issue-64130-4-async-move.rs b/tests/ui/async-await/issue-64130-4-async-move.rs
index a38428fc0..a38428fc0 100644
--- a/src/test/ui/async-await/issue-64130-4-async-move.rs
+++ b/tests/ui/async-await/issue-64130-4-async-move.rs
diff --git a/src/test/ui/async-await/issue-64130-non-send-future-diags.rs b/tests/ui/async-await/issue-64130-non-send-future-diags.rs
index b652d2391..b652d2391 100644
--- a/src/test/ui/async-await/issue-64130-non-send-future-diags.rs
+++ b/tests/ui/async-await/issue-64130-non-send-future-diags.rs
diff --git a/src/test/ui/async-await/issue-64130-non-send-future-diags.stderr b/tests/ui/async-await/issue-64130-non-send-future-diags.stderr
index 1da80d98b..1da80d98b 100644
--- a/src/test/ui/async-await/issue-64130-non-send-future-diags.stderr
+++ b/tests/ui/async-await/issue-64130-non-send-future-diags.stderr
diff --git a/src/test/ui/async-await/issue-64391.rs b/tests/ui/async-await/issue-64391.rs
index c6faad3aa..c6faad3aa 100644
--- a/src/test/ui/async-await/issue-64391.rs
+++ b/tests/ui/async-await/issue-64391.rs
diff --git a/src/test/ui/async-await/issue-66312.rs b/tests/ui/async-await/issue-66312.rs
index 9224971ec..9224971ec 100644
--- a/src/test/ui/async-await/issue-66312.rs
+++ b/tests/ui/async-await/issue-66312.rs
diff --git a/src/test/ui/async-await/issue-66312.stderr b/tests/ui/async-await/issue-66312.stderr
index 80d294a10..80d294a10 100644
--- a/src/test/ui/async-await/issue-66312.stderr
+++ b/tests/ui/async-await/issue-66312.stderr
diff --git a/src/test/ui/async-await/issue-66387-if-without-else.rs b/tests/ui/async-await/issue-66387-if-without-else.rs
index 3ab8220b4..3ab8220b4 100644
--- a/src/test/ui/async-await/issue-66387-if-without-else.rs
+++ b/tests/ui/async-await/issue-66387-if-without-else.rs
diff --git a/src/test/ui/async-await/issue-66387-if-without-else.stderr b/tests/ui/async-await/issue-66387-if-without-else.stderr
index 8155fcb56..8155fcb56 100644
--- a/src/test/ui/async-await/issue-66387-if-without-else.stderr
+++ b/tests/ui/async-await/issue-66387-if-without-else.stderr
diff --git a/src/test/ui/async-await/issue-67252-unnamed-future.rs b/tests/ui/async-await/issue-67252-unnamed-future.rs
index 1a7ff6133..1a7ff6133 100644
--- a/src/test/ui/async-await/issue-67252-unnamed-future.rs
+++ b/tests/ui/async-await/issue-67252-unnamed-future.rs
diff --git a/src/test/ui/async-await/issue-67252-unnamed-future.stderr b/tests/ui/async-await/issue-67252-unnamed-future.stderr
index fcba4410b..fcba4410b 100644
--- a/src/test/ui/async-await/issue-67252-unnamed-future.stderr
+++ b/tests/ui/async-await/issue-67252-unnamed-future.stderr
diff --git a/src/test/ui/async-await/issue-67651.rs b/tests/ui/async-await/issue-67651.rs
index bd96a3b70..bd96a3b70 100644
--- a/src/test/ui/async-await/issue-67651.rs
+++ b/tests/ui/async-await/issue-67651.rs
diff --git a/src/test/ui/async-await/issue-67651.stderr b/tests/ui/async-await/issue-67651.stderr
index 89017f6cc..89017f6cc 100644
--- a/src/test/ui/async-await/issue-67651.stderr
+++ b/tests/ui/async-await/issue-67651.stderr
diff --git a/src/test/ui/async-await/issue-67765-async-diagnostic.rs b/tests/ui/async-await/issue-67765-async-diagnostic.rs
index 5093916e7..5093916e7 100644
--- a/src/test/ui/async-await/issue-67765-async-diagnostic.rs
+++ b/tests/ui/async-await/issue-67765-async-diagnostic.rs
diff --git a/src/test/ui/async-await/issue-67765-async-diagnostic.stderr b/tests/ui/async-await/issue-67765-async-diagnostic.stderr
index 492e06fbb..492e06fbb 100644
--- a/src/test/ui/async-await/issue-67765-async-diagnostic.stderr
+++ b/tests/ui/async-await/issue-67765-async-diagnostic.stderr
diff --git a/src/test/ui/async-await/issue-68112.drop_tracking.stderr b/tests/ui/async-await/issue-68112.drop_tracking.stderr
index f2802698f..f2802698f 100644
--- a/src/test/ui/async-await/issue-68112.drop_tracking.stderr
+++ b/tests/ui/async-await/issue-68112.drop_tracking.stderr
diff --git a/src/test/ui/async-await/issue-68112.no_drop_tracking.stderr b/tests/ui/async-await/issue-68112.no_drop_tracking.stderr
index 38eb85b30..38eb85b30 100644
--- a/src/test/ui/async-await/issue-68112.no_drop_tracking.stderr
+++ b/tests/ui/async-await/issue-68112.no_drop_tracking.stderr
diff --git a/src/test/ui/async-await/issue-68112.rs b/tests/ui/async-await/issue-68112.rs
index 9c705137a..9c705137a 100644
--- a/src/test/ui/async-await/issue-68112.rs
+++ b/tests/ui/async-await/issue-68112.rs
diff --git a/src/test/ui/async-await/issue-68523-start.rs b/tests/ui/async-await/issue-68523-start.rs
index 2ced88a16..2ced88a16 100644
--- a/src/test/ui/async-await/issue-68523-start.rs
+++ b/tests/ui/async-await/issue-68523-start.rs
diff --git a/src/test/ui/async-await/issue-68523-start.stderr b/tests/ui/async-await/issue-68523-start.stderr
index 3a0a3b5de..3a0a3b5de 100644
--- a/src/test/ui/async-await/issue-68523-start.stderr
+++ b/tests/ui/async-await/issue-68523-start.stderr
diff --git a/src/test/ui/async-await/issue-68523.rs b/tests/ui/async-await/issue-68523.rs
index 7a67661a0..7a67661a0 100644
--- a/src/test/ui/async-await/issue-68523.rs
+++ b/tests/ui/async-await/issue-68523.rs
diff --git a/src/test/ui/async-await/issue-68523.stderr b/tests/ui/async-await/issue-68523.stderr
index dfdf078e3..dfdf078e3 100644
--- a/src/test/ui/async-await/issue-68523.stderr
+++ b/tests/ui/async-await/issue-68523.stderr
diff --git a/src/test/ui/async-await/issue-69446-fnmut-capture.rs b/tests/ui/async-await/issue-69446-fnmut-capture.rs
index 842115538..842115538 100644
--- a/src/test/ui/async-await/issue-69446-fnmut-capture.rs
+++ b/tests/ui/async-await/issue-69446-fnmut-capture.rs
diff --git a/src/test/ui/async-await/issue-69446-fnmut-capture.stderr b/tests/ui/async-await/issue-69446-fnmut-capture.stderr
index 3d2b0402b..3d2b0402b 100644
--- a/src/test/ui/async-await/issue-69446-fnmut-capture.stderr
+++ b/tests/ui/async-await/issue-69446-fnmut-capture.stderr
diff --git a/src/test/ui/async-await/issue-70594.rs b/tests/ui/async-await/issue-70594.rs
index 9e7c5847b..9e7c5847b 100644
--- a/src/test/ui/async-await/issue-70594.rs
+++ b/tests/ui/async-await/issue-70594.rs
diff --git a/src/test/ui/async-await/issue-70594.stderr b/tests/ui/async-await/issue-70594.stderr
index d3cf57d3b..d3cf57d3b 100644
--- a/src/test/ui/async-await/issue-70594.stderr
+++ b/tests/ui/async-await/issue-70594.stderr
diff --git a/src/test/ui/async-await/issue-70818.rs b/tests/ui/async-await/issue-70818.rs
index 019c56eb2..019c56eb2 100644
--- a/src/test/ui/async-await/issue-70818.rs
+++ b/tests/ui/async-await/issue-70818.rs
diff --git a/src/test/ui/async-await/issue-70818.stderr b/tests/ui/async-await/issue-70818.stderr
index 20109d4d1..20109d4d1 100644
--- a/src/test/ui/async-await/issue-70818.stderr
+++ b/tests/ui/async-await/issue-70818.stderr
diff --git a/src/test/ui/async-await/issue-70935-complex-spans.drop_tracking.stderr b/tests/ui/async-await/issue-70935-complex-spans.drop_tracking.stderr
index 721234aa4..721234aa4 100644
--- a/src/test/ui/async-await/issue-70935-complex-spans.drop_tracking.stderr
+++ b/tests/ui/async-await/issue-70935-complex-spans.drop_tracking.stderr
diff --git a/src/test/ui/async-await/issue-70935-complex-spans.no_drop_tracking.stderr b/tests/ui/async-await/issue-70935-complex-spans.no_drop_tracking.stderr
index 34b31198e..8036d82da 100644
--- a/src/test/ui/async-await/issue-70935-complex-spans.no_drop_tracking.stderr
+++ b/tests/ui/async-await/issue-70935-complex-spans.no_drop_tracking.stderr
@@ -12,14 +12,10 @@ LL | baz(|| async{
| _____________-
LL | | foo(tx.clone());
LL | | }).await;
- | | - ^^^^^^ await occurs here, with the value maybe used later
- | |_________|
+ | | - ^^^^^^- the value is later dropped here
+ | | | |
+ | |_________| await occurs here, with the value maybe used later
| has type `[closure@$DIR/issue-70935-complex-spans.rs:17:13: 17:15]` which is not `Send`
-note: the value is later dropped here
- --> $DIR/issue-70935-complex-spans.rs:19:17
- |
-LL | }).await;
- | ^
error: aborting due to previous error
diff --git a/src/test/ui/async-await/issue-70935-complex-spans.rs b/tests/ui/async-await/issue-70935-complex-spans.rs
index b6d17f93a..b6d17f93a 100644
--- a/src/test/ui/async-await/issue-70935-complex-spans.rs
+++ b/tests/ui/async-await/issue-70935-complex-spans.rs
diff --git a/src/test/ui/async-await/issue-71137.rs b/tests/ui/async-await/issue-71137.rs
index 7695e0325..7695e0325 100644
--- a/src/test/ui/async-await/issue-71137.rs
+++ b/tests/ui/async-await/issue-71137.rs
diff --git a/src/test/ui/async-await/issue-71137.stderr b/tests/ui/async-await/issue-71137.stderr
index eade6aa2d..eade6aa2d 100644
--- a/src/test/ui/async-await/issue-71137.stderr
+++ b/tests/ui/async-await/issue-71137.stderr
diff --git a/src/test/ui/async-await/issue-72442.rs b/tests/ui/async-await/issue-72442.rs
index 2280154c7..2280154c7 100644
--- a/src/test/ui/async-await/issue-72442.rs
+++ b/tests/ui/async-await/issue-72442.rs
diff --git a/src/test/ui/async-await/issue-72442.stderr b/tests/ui/async-await/issue-72442.stderr
index 919abf646..4a1705715 100644
--- a/src/test/ui/async-await/issue-72442.stderr
+++ b/tests/ui/async-await/issue-72442.stderr
@@ -8,9 +8,6 @@ LL | let mut f = File::open(path.to_str())?;
|
note: required by a bound in `File::open`
--> $SRC_DIR/std/src/fs.rs:LL:COL
- |
-LL | pub fn open<P: AsRef<Path>>(path: P) -> io::Result<File> {
- | ^^^^^^^^^^^ required by this bound in `File::open`
error: aborting due to previous error
diff --git a/src/test/ui/async-await/issue-72470-llvm-dominate.rs b/tests/ui/async-await/issue-72470-llvm-dominate.rs
index 5bb69a073..5bb69a073 100644
--- a/src/test/ui/async-await/issue-72470-llvm-dominate.rs
+++ b/tests/ui/async-await/issue-72470-llvm-dominate.rs
diff --git a/src/test/ui/async-await/issue-72590-type-error-sized.rs b/tests/ui/async-await/issue-72590-type-error-sized.rs
index 00e098d43..00e098d43 100644
--- a/src/test/ui/async-await/issue-72590-type-error-sized.rs
+++ b/tests/ui/async-await/issue-72590-type-error-sized.rs
diff --git a/src/test/ui/async-await/issue-72590-type-error-sized.stderr b/tests/ui/async-await/issue-72590-type-error-sized.stderr
index 778423578..778423578 100644
--- a/src/test/ui/async-await/issue-72590-type-error-sized.stderr
+++ b/tests/ui/async-await/issue-72590-type-error-sized.stderr
diff --git a/src/test/ui/async-await/issue-73050.rs b/tests/ui/async-await/issue-73050.rs
index 790f24a23..790f24a23 100644
--- a/src/test/ui/async-await/issue-73050.rs
+++ b/tests/ui/async-await/issue-73050.rs
diff --git a/src/test/ui/async-await/issue-73137.rs b/tests/ui/async-await/issue-73137.rs
index dcbe7765a..dcbe7765a 100644
--- a/src/test/ui/async-await/issue-73137.rs
+++ b/tests/ui/async-await/issue-73137.rs
diff --git a/src/test/ui/async-await/issue-73541-1.rs b/tests/ui/async-await/issue-73541-1.rs
index 7fb0d6c39..7fb0d6c39 100644
--- a/src/test/ui/async-await/issue-73541-1.rs
+++ b/tests/ui/async-await/issue-73541-1.rs
diff --git a/src/test/ui/async-await/issue-73541-1.stderr b/tests/ui/async-await/issue-73541-1.stderr
index 80c1fdf00..80c1fdf00 100644
--- a/src/test/ui/async-await/issue-73541-1.stderr
+++ b/tests/ui/async-await/issue-73541-1.stderr
diff --git a/src/test/ui/async-await/issue-73541-2.rs b/tests/ui/async-await/issue-73541-2.rs
index 70b4ab253..70b4ab253 100644
--- a/src/test/ui/async-await/issue-73541-2.rs
+++ b/tests/ui/async-await/issue-73541-2.rs
diff --git a/src/test/ui/async-await/issue-73541-2.stderr b/tests/ui/async-await/issue-73541-2.stderr
index 4c9741f6f..4c9741f6f 100644
--- a/src/test/ui/async-await/issue-73541-2.stderr
+++ b/tests/ui/async-await/issue-73541-2.stderr
diff --git a/src/test/ui/async-await/issue-73541-3.rs b/tests/ui/async-await/issue-73541-3.rs
index 02ca02da8..02ca02da8 100644
--- a/src/test/ui/async-await/issue-73541-3.rs
+++ b/tests/ui/async-await/issue-73541-3.rs
diff --git a/src/test/ui/async-await/issue-73541-3.stderr b/tests/ui/async-await/issue-73541-3.stderr
index 53487aaca..53487aaca 100644
--- a/src/test/ui/async-await/issue-73541-3.stderr
+++ b/tests/ui/async-await/issue-73541-3.stderr
diff --git a/src/test/ui/async-await/issue-73541.rs b/tests/ui/async-await/issue-73541.rs
index 399a07cd3..399a07cd3 100644
--- a/src/test/ui/async-await/issue-73541.rs
+++ b/tests/ui/async-await/issue-73541.rs
diff --git a/src/test/ui/async-await/issue-73541.stderr b/tests/ui/async-await/issue-73541.stderr
index 4bb466ff1..4bb466ff1 100644
--- a/src/test/ui/async-await/issue-73541.stderr
+++ b/tests/ui/async-await/issue-73541.stderr
diff --git a/src/test/ui/async-await/issue-73741-type-err-drop-tracking.rs b/tests/ui/async-await/issue-73741-type-err-drop-tracking.rs
index c3423ad62..c3423ad62 100644
--- a/src/test/ui/async-await/issue-73741-type-err-drop-tracking.rs
+++ b/tests/ui/async-await/issue-73741-type-err-drop-tracking.rs
diff --git a/src/test/ui/async-await/issue-73741-type-err-drop-tracking.stderr b/tests/ui/async-await/issue-73741-type-err-drop-tracking.stderr
index d4e3b6c3b..d4e3b6c3b 100644
--- a/src/test/ui/async-await/issue-73741-type-err-drop-tracking.stderr
+++ b/tests/ui/async-await/issue-73741-type-err-drop-tracking.stderr
diff --git a/src/test/ui/async-await/issue-73741-type-err.rs b/tests/ui/async-await/issue-73741-type-err.rs
index c5b9e34ed..c5b9e34ed 100644
--- a/src/test/ui/async-await/issue-73741-type-err.rs
+++ b/tests/ui/async-await/issue-73741-type-err.rs
diff --git a/src/test/ui/async-await/issue-73741-type-err.stderr b/tests/ui/async-await/issue-73741-type-err.stderr
index 0b5343a98..0b5343a98 100644
--- a/src/test/ui/async-await/issue-73741-type-err.stderr
+++ b/tests/ui/async-await/issue-73741-type-err.stderr
diff --git a/src/test/ui/async-await/issue-74047.rs b/tests/ui/async-await/issue-74047.rs
index 2e4f3e675..2e4f3e675 100644
--- a/src/test/ui/async-await/issue-74047.rs
+++ b/tests/ui/async-await/issue-74047.rs
diff --git a/src/test/ui/async-await/issue-74047.stderr b/tests/ui/async-await/issue-74047.stderr
index 28174825d..28174825d 100644
--- a/src/test/ui/async-await/issue-74047.stderr
+++ b/tests/ui/async-await/issue-74047.stderr
diff --git a/src/test/ui/async-await/issue-74072-lifetime-name-annotations.rs b/tests/ui/async-await/issue-74072-lifetime-name-annotations.rs
index 95683241a..95683241a 100644
--- a/src/test/ui/async-await/issue-74072-lifetime-name-annotations.rs
+++ b/tests/ui/async-await/issue-74072-lifetime-name-annotations.rs
diff --git a/src/test/ui/async-await/issue-74072-lifetime-name-annotations.stderr b/tests/ui/async-await/issue-74072-lifetime-name-annotations.stderr
index b96cab9f0..b96cab9f0 100644
--- a/src/test/ui/async-await/issue-74072-lifetime-name-annotations.stderr
+++ b/tests/ui/async-await/issue-74072-lifetime-name-annotations.stderr
diff --git a/src/test/ui/async-await/issue-74497-lifetime-in-opaque.rs b/tests/ui/async-await/issue-74497-lifetime-in-opaque.rs
index 2d765eb41..2d765eb41 100644
--- a/src/test/ui/async-await/issue-74497-lifetime-in-opaque.rs
+++ b/tests/ui/async-await/issue-74497-lifetime-in-opaque.rs
diff --git a/src/test/ui/async-await/issue-74497-lifetime-in-opaque.stderr b/tests/ui/async-await/issue-74497-lifetime-in-opaque.stderr
index 4427014ae..4427014ae 100644
--- a/src/test/ui/async-await/issue-74497-lifetime-in-opaque.stderr
+++ b/tests/ui/async-await/issue-74497-lifetime-in-opaque.stderr
diff --git a/src/test/ui/async-await/issue-75785-confusing-named-region.rs b/tests/ui/async-await/issue-75785-confusing-named-region.rs
index 452614087..452614087 100644
--- a/src/test/ui/async-await/issue-75785-confusing-named-region.rs
+++ b/tests/ui/async-await/issue-75785-confusing-named-region.rs
diff --git a/src/test/ui/async-await/issue-75785-confusing-named-region.stderr b/tests/ui/async-await/issue-75785-confusing-named-region.stderr
index 3b731d9c6..3b731d9c6 100644
--- a/src/test/ui/async-await/issue-75785-confusing-named-region.stderr
+++ b/tests/ui/async-await/issue-75785-confusing-named-region.stderr
diff --git a/src/test/ui/async-await/issue-76547.rs b/tests/ui/async-await/issue-76547.rs
index 587feb624..587feb624 100644
--- a/src/test/ui/async-await/issue-76547.rs
+++ b/tests/ui/async-await/issue-76547.rs
diff --git a/src/test/ui/async-await/issue-76547.stderr b/tests/ui/async-await/issue-76547.stderr
index 4d96cce82..4d96cce82 100644
--- a/src/test/ui/async-await/issue-76547.stderr
+++ b/tests/ui/async-await/issue-76547.stderr
diff --git a/src/test/ui/async-await/issue-77993-2.rs b/tests/ui/async-await/issue-77993-2.rs
index 4d554a0a1..4d554a0a1 100644
--- a/src/test/ui/async-await/issue-77993-2.rs
+++ b/tests/ui/async-await/issue-77993-2.rs
diff --git a/src/test/ui/async-await/issue-77993-2.stderr b/tests/ui/async-await/issue-77993-2.stderr
index 64b378f83..64b378f83 100644
--- a/src/test/ui/async-await/issue-77993-2.stderr
+++ b/tests/ui/async-await/issue-77993-2.stderr
diff --git a/src/test/ui/async-await/issue-84841.rs b/tests/ui/async-await/issue-84841.rs
index ba3a1617b..ba3a1617b 100644
--- a/src/test/ui/async-await/issue-84841.rs
+++ b/tests/ui/async-await/issue-84841.rs
diff --git a/src/test/ui/async-await/issue-84841.stderr b/tests/ui/async-await/issue-84841.stderr
index 1e22373ba..1e22373ba 100644
--- a/src/test/ui/async-await/issue-84841.stderr
+++ b/tests/ui/async-await/issue-84841.stderr
diff --git a/src/test/ui/async-await/issue-86507.rs b/tests/ui/async-await/issue-86507.rs
index 317f03176..317f03176 100644
--- a/src/test/ui/async-await/issue-86507.rs
+++ b/tests/ui/async-await/issue-86507.rs
diff --git a/src/test/ui/async-await/issue-86507.stderr b/tests/ui/async-await/issue-86507.stderr
index 8c2c06da2..8c2c06da2 100644
--- a/src/test/ui/async-await/issue-86507.stderr
+++ b/tests/ui/async-await/issue-86507.stderr
diff --git a/src/test/ui/async-await/issue-93197.rs b/tests/ui/async-await/issue-93197.rs
index c627fe17a..c627fe17a 100644
--- a/src/test/ui/async-await/issue-93197.rs
+++ b/tests/ui/async-await/issue-93197.rs
diff --git a/src/test/ui/async-await/issue-93648.rs b/tests/ui/async-await/issue-93648.rs
index 4ce3ac1e8..4ce3ac1e8 100644
--- a/src/test/ui/async-await/issue-93648.rs
+++ b/tests/ui/async-await/issue-93648.rs
diff --git a/src/test/ui/async-await/issue-98634.rs b/tests/ui/async-await/issue-98634.rs
index b0d38687f..b0d38687f 100644
--- a/src/test/ui/async-await/issue-98634.rs
+++ b/tests/ui/async-await/issue-98634.rs
diff --git a/src/test/ui/async-await/issue-98634.stderr b/tests/ui/async-await/issue-98634.stderr
index 5160e48d8..5160e48d8 100644
--- a/src/test/ui/async-await/issue-98634.stderr
+++ b/tests/ui/async-await/issue-98634.stderr
diff --git a/src/test/ui/async-await/issues/auxiliary/issue-60674.rs b/tests/ui/async-await/issues/auxiliary/issue-60674.rs
index 680c6e55e..680c6e55e 100644
--- a/src/test/ui/async-await/issues/auxiliary/issue-60674.rs
+++ b/tests/ui/async-await/issues/auxiliary/issue-60674.rs
diff --git a/src/test/ui/async-await/issues/auxiliary/issue_67893.rs b/tests/ui/async-await/issues/auxiliary/issue_67893.rs
index 387966a50..387966a50 100644
--- a/src/test/ui/async-await/issues/auxiliary/issue_67893.rs
+++ b/tests/ui/async-await/issues/auxiliary/issue_67893.rs
diff --git a/tests/ui/async-await/issues/issue-102206.rs b/tests/ui/async-await/issues/issue-102206.rs
new file mode 100644
index 000000000..a3a2ebc58
--- /dev/null
+++ b/tests/ui/async-await/issues/issue-102206.rs
@@ -0,0 +1,8 @@
+// edition:2021
+
+async fn foo() {}
+
+fn main() {
+ std::mem::size_of_val(foo());
+ //~^ ERROR: mismatched types
+}
diff --git a/tests/ui/async-await/issues/issue-102206.stderr b/tests/ui/async-await/issues/issue-102206.stderr
new file mode 100644
index 000000000..2ab790ac7
--- /dev/null
+++ b/tests/ui/async-await/issues/issue-102206.stderr
@@ -0,0 +1,23 @@
+error[E0308]: mismatched types
+ --> $DIR/issue-102206.rs:6:27
+ |
+LL | std::mem::size_of_val(foo());
+ | --------------------- ^^^^^
+ | | |
+ | | expected reference, found opaque type
+ | | help: consider borrowing here: `&foo()`
+ | arguments to this function are incorrect
+ |
+note: while checking the return type of the `async fn`
+ --> $DIR/issue-102206.rs:3:16
+ |
+LL | async fn foo() {}
+ | ^ checked the `Output` of this `async fn`, found opaque type
+ = note: expected reference `&_`
+ found opaque type `impl Future<Output = ()>`
+note: function defined here
+ --> $SRC_DIR/core/src/mem/mod.rs:LL:COL
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/async-await/issues/issue-51719.rs b/tests/ui/async-await/issues/issue-51719.rs
index 09241f982..09241f982 100644
--- a/src/test/ui/async-await/issues/issue-51719.rs
+++ b/tests/ui/async-await/issues/issue-51719.rs
diff --git a/src/test/ui/async-await/issues/issue-51719.stderr b/tests/ui/async-await/issues/issue-51719.stderr
index f3ce5d1c8..f3ce5d1c8 100644
--- a/src/test/ui/async-await/issues/issue-51719.stderr
+++ b/tests/ui/async-await/issues/issue-51719.stderr
diff --git a/src/test/ui/async-await/issues/issue-51751.rs b/tests/ui/async-await/issues/issue-51751.rs
index bc85a96ce..bc85a96ce 100644
--- a/src/test/ui/async-await/issues/issue-51751.rs
+++ b/tests/ui/async-await/issues/issue-51751.rs
diff --git a/src/test/ui/async-await/issues/issue-51751.stderr b/tests/ui/async-await/issues/issue-51751.stderr
index 8696a5b79..8696a5b79 100644
--- a/src/test/ui/async-await/issues/issue-51751.stderr
+++ b/tests/ui/async-await/issues/issue-51751.stderr
diff --git a/src/test/ui/async-await/issues/issue-53249.rs b/tests/ui/async-await/issues/issue-53249.rs
index 3a33af2d2..3a33af2d2 100644
--- a/src/test/ui/async-await/issues/issue-53249.rs
+++ b/tests/ui/async-await/issues/issue-53249.rs
diff --git a/src/test/ui/async-await/issues/issue-54752-async-block.rs b/tests/ui/async-await/issues/issue-54752-async-block.rs
index a8165ae6c..a8165ae6c 100644
--- a/src/test/ui/async-await/issues/issue-54752-async-block.rs
+++ b/tests/ui/async-await/issues/issue-54752-async-block.rs
diff --git a/src/test/ui/async-await/issues/issue-54752-async-block.stderr b/tests/ui/async-await/issues/issue-54752-async-block.stderr
index 8cc849dd9..8cc849dd9 100644
--- a/src/test/ui/async-await/issues/issue-54752-async-block.stderr
+++ b/tests/ui/async-await/issues/issue-54752-async-block.stderr
diff --git a/src/test/ui/async-await/issues/issue-54974.rs b/tests/ui/async-await/issues/issue-54974.rs
index b602ef153..b602ef153 100644
--- a/src/test/ui/async-await/issues/issue-54974.rs
+++ b/tests/ui/async-await/issues/issue-54974.rs
diff --git a/src/test/ui/async-await/issues/issue-55324.rs b/tests/ui/async-await/issues/issue-55324.rs
index 9ecb3b129..9ecb3b129 100644
--- a/src/test/ui/async-await/issues/issue-55324.rs
+++ b/tests/ui/async-await/issues/issue-55324.rs
diff --git a/src/test/ui/async-await/issues/issue-55809.rs b/tests/ui/async-await/issues/issue-55809.rs
index 3b271775a..3b271775a 100644
--- a/src/test/ui/async-await/issues/issue-55809.rs
+++ b/tests/ui/async-await/issues/issue-55809.rs
diff --git a/src/test/ui/async-await/issues/issue-58885.rs b/tests/ui/async-await/issues/issue-58885.rs
index 11920b072..11920b072 100644
--- a/src/test/ui/async-await/issues/issue-58885.rs
+++ b/tests/ui/async-await/issues/issue-58885.rs
diff --git a/src/test/ui/async-await/issues/issue-59001.rs b/tests/ui/async-await/issues/issue-59001.rs
index 4ddebcf20..4ddebcf20 100644
--- a/src/test/ui/async-await/issues/issue-59001.rs
+++ b/tests/ui/async-await/issues/issue-59001.rs
diff --git a/src/test/ui/async-await/issues/issue-59972.rs b/tests/ui/async-await/issues/issue-59972.rs
index c2e24a96b..c2e24a96b 100644
--- a/src/test/ui/async-await/issues/issue-59972.rs
+++ b/tests/ui/async-await/issues/issue-59972.rs
diff --git a/src/test/ui/async-await/issues/issue-60518.rs b/tests/ui/async-await/issues/issue-60518.rs
index 69bbdd0e8..69bbdd0e8 100644
--- a/src/test/ui/async-await/issues/issue-60518.rs
+++ b/tests/ui/async-await/issues/issue-60518.rs
diff --git a/src/test/ui/async-await/issues/issue-60655-latebound-regions.rs b/tests/ui/async-await/issues/issue-60655-latebound-regions.rs
index 66a3b07c3..66a3b07c3 100644
--- a/src/test/ui/async-await/issues/issue-60655-latebound-regions.rs
+++ b/tests/ui/async-await/issues/issue-60655-latebound-regions.rs
diff --git a/src/test/ui/async-await/issues/issue-60674.rs b/tests/ui/async-await/issues/issue-60674.rs
index c0e34a8df..c0e34a8df 100644
--- a/src/test/ui/async-await/issues/issue-60674.rs
+++ b/tests/ui/async-await/issues/issue-60674.rs
diff --git a/src/test/ui/async-await/issues/issue-60674.stdout b/tests/ui/async-await/issues/issue-60674.stdout
index 6f980e606..6f980e606 100644
--- a/src/test/ui/async-await/issues/issue-60674.stdout
+++ b/tests/ui/async-await/issues/issue-60674.stdout
diff --git a/src/test/ui/async-await/issues/issue-61187.rs b/tests/ui/async-await/issues/issue-61187.rs
index 8585a4251..8585a4251 100644
--- a/src/test/ui/async-await/issues/issue-61187.rs
+++ b/tests/ui/async-await/issues/issue-61187.rs
diff --git a/tests/ui/async-await/issues/issue-61187.stderr b/tests/ui/async-await/issues/issue-61187.stderr
new file mode 100644
index 000000000..e58f74546
--- /dev/null
+++ b/tests/ui/async-await/issues/issue-61187.stderr
@@ -0,0 +1,14 @@
+error[E0596]: cannot borrow `data` as mutable, as it is not declared as mutable
+ --> $DIR/issue-61187.rs:6:5
+ |
+LL | data.reverse();
+ | ^^^^^^^^^^^^^^ cannot borrow as mutable
+ |
+help: consider changing this to be mutable
+ |
+LL | async fn response(mut data: Vec<u8>) {
+ | +++
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/async-await/issues/issue-61986.rs b/tests/ui/async-await/issues/issue-61986.rs
index 879bc6912..879bc6912 100644
--- a/src/test/ui/async-await/issues/issue-61986.rs
+++ b/tests/ui/async-await/issues/issue-61986.rs
diff --git a/src/test/ui/async-await/issues/issue-62009-1.rs b/tests/ui/async-await/issues/issue-62009-1.rs
index 40ccf2571..40ccf2571 100644
--- a/src/test/ui/async-await/issues/issue-62009-1.rs
+++ b/tests/ui/async-await/issues/issue-62009-1.rs
diff --git a/src/test/ui/async-await/issues/issue-62009-1.stderr b/tests/ui/async-await/issues/issue-62009-1.stderr
index 222afb2c7..222afb2c7 100644
--- a/src/test/ui/async-await/issues/issue-62009-1.stderr
+++ b/tests/ui/async-await/issues/issue-62009-1.stderr
diff --git a/src/test/ui/async-await/issues/issue-62009-2.rs b/tests/ui/async-await/issues/issue-62009-2.rs
index cb7336e61..cb7336e61 100644
--- a/src/test/ui/async-await/issues/issue-62009-2.rs
+++ b/tests/ui/async-await/issues/issue-62009-2.rs
diff --git a/src/test/ui/async-await/issues/issue-62009-2.stderr b/tests/ui/async-await/issues/issue-62009-2.stderr
index 92e9a8a69..92e9a8a69 100644
--- a/src/test/ui/async-await/issues/issue-62009-2.stderr
+++ b/tests/ui/async-await/issues/issue-62009-2.stderr
diff --git a/src/test/ui/async-await/issues/issue-62097.rs b/tests/ui/async-await/issues/issue-62097.rs
index a24c84cff..a24c84cff 100644
--- a/src/test/ui/async-await/issues/issue-62097.rs
+++ b/tests/ui/async-await/issues/issue-62097.rs
diff --git a/src/test/ui/async-await/issues/issue-62097.stderr b/tests/ui/async-await/issues/issue-62097.stderr
index 786f62132..786f62132 100644
--- a/src/test/ui/async-await/issues/issue-62097.stderr
+++ b/tests/ui/async-await/issues/issue-62097.stderr
diff --git a/src/test/ui/async-await/issues/issue-62517-1.rs b/tests/ui/async-await/issues/issue-62517-1.rs
index 4689ce36a..4689ce36a 100644
--- a/src/test/ui/async-await/issues/issue-62517-1.rs
+++ b/tests/ui/async-await/issues/issue-62517-1.rs
diff --git a/src/test/ui/async-await/issues/issue-62517-2.rs b/tests/ui/async-await/issues/issue-62517-2.rs
index aaf28d6c1..aaf28d6c1 100644
--- a/src/test/ui/async-await/issues/issue-62517-2.rs
+++ b/tests/ui/async-await/issues/issue-62517-2.rs
diff --git a/src/test/ui/async-await/issues/issue-63388-1.rs b/tests/ui/async-await/issues/issue-63388-1.rs
index 32bcbb111..32bcbb111 100644
--- a/src/test/ui/async-await/issues/issue-63388-1.rs
+++ b/tests/ui/async-await/issues/issue-63388-1.rs
diff --git a/src/test/ui/async-await/issues/issue-63388-1.stderr b/tests/ui/async-await/issues/issue-63388-1.stderr
index 88542315e..88542315e 100644
--- a/src/test/ui/async-await/issues/issue-63388-1.stderr
+++ b/tests/ui/async-await/issues/issue-63388-1.stderr
diff --git a/src/test/ui/async-await/issues/issue-63388-2.rs b/tests/ui/async-await/issues/issue-63388-2.rs
index 90b59f96e..90b59f96e 100644
--- a/src/test/ui/async-await/issues/issue-63388-2.rs
+++ b/tests/ui/async-await/issues/issue-63388-2.rs
diff --git a/src/test/ui/async-await/issues/issue-63388-2.stderr b/tests/ui/async-await/issues/issue-63388-2.stderr
index e515f227c..e515f227c 100644
--- a/src/test/ui/async-await/issues/issue-63388-2.stderr
+++ b/tests/ui/async-await/issues/issue-63388-2.stderr
diff --git a/src/test/ui/async-await/issues/issue-63388-3.rs b/tests/ui/async-await/issues/issue-63388-3.rs
index 1a9822e02..1a9822e02 100644
--- a/src/test/ui/async-await/issues/issue-63388-3.rs
+++ b/tests/ui/async-await/issues/issue-63388-3.rs
diff --git a/src/test/ui/async-await/issues/issue-63388-4.rs b/tests/ui/async-await/issues/issue-63388-4.rs
index 58f9dacb3..58f9dacb3 100644
--- a/src/test/ui/async-await/issues/issue-63388-4.rs
+++ b/tests/ui/async-await/issues/issue-63388-4.rs
diff --git a/src/test/ui/async-await/issues/issue-64391-2.rs b/tests/ui/async-await/issues/issue-64391-2.rs
index eef2c1fb2..eef2c1fb2 100644
--- a/src/test/ui/async-await/issues/issue-64391-2.rs
+++ b/tests/ui/async-await/issues/issue-64391-2.rs
diff --git a/src/test/ui/async-await/issues/issue-64433.rs b/tests/ui/async-await/issues/issue-64433.rs
index d900f8ed9..d900f8ed9 100644
--- a/src/test/ui/async-await/issues/issue-64433.rs
+++ b/tests/ui/async-await/issues/issue-64433.rs
diff --git a/src/test/ui/async-await/issues/issue-64477-2.rs b/tests/ui/async-await/issues/issue-64477-2.rs
index 2360b57cc..2360b57cc 100644
--- a/src/test/ui/async-await/issues/issue-64477-2.rs
+++ b/tests/ui/async-await/issues/issue-64477-2.rs
diff --git a/src/test/ui/async-await/issues/issue-64477.rs b/tests/ui/async-await/issues/issue-64477.rs
index 5bd52d44a..5bd52d44a 100644
--- a/src/test/ui/async-await/issues/issue-64477.rs
+++ b/tests/ui/async-await/issues/issue-64477.rs
diff --git a/src/test/ui/async-await/issues/issue-64964.rs b/tests/ui/async-await/issues/issue-64964.rs
index 6d6eff486..6d6eff486 100644
--- a/src/test/ui/async-await/issues/issue-64964.rs
+++ b/tests/ui/async-await/issues/issue-64964.rs
diff --git a/src/test/ui/async-await/issues/issue-65159.rs b/tests/ui/async-await/issues/issue-65159.rs
index df2ca0257..df2ca0257 100644
--- a/src/test/ui/async-await/issues/issue-65159.rs
+++ b/tests/ui/async-await/issues/issue-65159.rs
diff --git a/src/test/ui/async-await/issues/issue-65159.stderr b/tests/ui/async-await/issues/issue-65159.stderr
index 45f5ec40c..40c0e72b2 100644
--- a/src/test/ui/async-await/issues/issue-65159.stderr
+++ b/tests/ui/async-await/issues/issue-65159.stderr
@@ -6,11 +6,6 @@ LL | async fn copy() -> Result<()>
| |
| expected 2 generic arguments
|
-note: enum defined here, with 2 generic parameters: `T`, `E`
- --> $SRC_DIR/core/src/result.rs:LL:COL
- |
-LL | pub enum Result<T, E> {
- | ^^^^^^ - -
help: add missing generic argument
|
LL | async fn copy() -> Result<(), E>
diff --git a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs b/tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs
index ade386a60..ade386a60 100644
--- a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs
+++ b/tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-completion.rs
diff --git a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs b/tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs
index b4ea4c9f6..b4ea4c9f6 100644
--- a/src/test/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs
+++ b/tests/ui/async-await/issues/issue-65419/issue-65419-async-fn-resume-after-panic.rs
diff --git a/src/test/ui/async-await/issues/issue-65419/issue-65419-generator-resume-after-completion.rs b/tests/ui/async-await/issues/issue-65419/issue-65419-generator-resume-after-completion.rs
index 9fc5667d6..9fc5667d6 100644
--- a/src/test/ui/async-await/issues/issue-65419/issue-65419-generator-resume-after-completion.rs
+++ b/tests/ui/async-await/issues/issue-65419/issue-65419-generator-resume-after-completion.rs
diff --git a/src/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking.stderr b/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking.stderr
index ab196dca2..1033fa6cc 100644
--- a/src/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking.stderr
+++ b/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.no_drop_tracking.stderr
@@ -13,14 +13,10 @@ note: future is not `Send` as this value is used across an await
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:35
|
LL | bar(Foo(std::ptr::null())).await;
- | ---------------- ^^^^^^ await occurs here, with `std::ptr::null()` maybe used later
- | |
+ | ---------------- ^^^^^^- `std::ptr::null()` is later dropped here
+ | | |
+ | | await occurs here, with `std::ptr::null()` maybe used later
| has type `*const u8` which is not `Send`
-note: `std::ptr::null()` is later dropped here
- --> $DIR/issue-65436-raw-ptr-not-send.rs:18:41
- |
-LL | bar(Foo(std::ptr::null())).await;
- | ^
help: consider moving this into a `let` binding to create a shorter lived borrow
--> $DIR/issue-65436-raw-ptr-not-send.rs:18:13
|
diff --git a/src/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs b/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs
index 91edbc10d..91edbc10d 100644
--- a/src/test/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs
+++ b/tests/ui/async-await/issues/issue-65436-raw-ptr-not-send.rs
diff --git a/src/test/ui/async-await/issues/issue-66695-static-refs.rs b/tests/ui/async-await/issues/issue-66695-static-refs.rs
index f0609713b..f0609713b 100644
--- a/src/test/ui/async-await/issues/issue-66695-static-refs.rs
+++ b/tests/ui/async-await/issues/issue-66695-static-refs.rs
diff --git a/src/test/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.rs b/tests/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.rs
index b7a976a0a..b7a976a0a 100644
--- a/src/test/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.rs
+++ b/tests/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.rs
diff --git a/src/test/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.stderr b/tests/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.stderr
index e2a735398..e2a735398 100644
--- a/src/test/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.stderr
+++ b/tests/ui/async-await/issues/issue-66958-non-copy-infered-type-arg.stderr
diff --git a/src/test/ui/async-await/issues/issue-67611-static-mut-refs.rs b/tests/ui/async-await/issues/issue-67611-static-mut-refs.rs
index dda4a151d..dda4a151d 100644
--- a/src/test/ui/async-await/issues/issue-67611-static-mut-refs.rs
+++ b/tests/ui/async-await/issues/issue-67611-static-mut-refs.rs
diff --git a/src/test/ui/async-await/issues/issue-67893.rs b/tests/ui/async-await/issues/issue-67893.rs
index d73772e5f..d73772e5f 100644
--- a/src/test/ui/async-await/issues/issue-67893.rs
+++ b/tests/ui/async-await/issues/issue-67893.rs
diff --git a/tests/ui/async-await/issues/issue-67893.stderr b/tests/ui/async-await/issues/issue-67893.stderr
new file mode 100644
index 000000000..2ce68a782
--- /dev/null
+++ b/tests/ui/async-await/issues/issue-67893.stderr
@@ -0,0 +1,23 @@
+error: future cannot be sent between threads safely
+ --> $DIR/issue-67893.rs:9:7
+ |
+LL | g(issue_67893::run())
+ | ^^^^^^^^^^^^^^^^^^ future is not `Send`
+ |
+ = help: within `impl Future<Output = ()>`, the trait `Send` is not implemented for `MutexGuard<'_, ()>`
+note: future is not `Send` as this value is used across an await
+ --> $DIR/auxiliary/issue_67893.rs:9:26
+ |
+LL | f(*x.lock().unwrap()).await;
+ | ----------------- ^^^^^^- `x.lock().unwrap()` is later dropped here
+ | | |
+ | | await occurs here, with `x.lock().unwrap()` maybe used later
+ | has type `MutexGuard<'_, ()>` which is not `Send`
+note: required by a bound in `g`
+ --> $DIR/issue-67893.rs:6:14
+ |
+LL | fn g(_: impl Send) {}
+ | ^^^^ required by this bound in `g`
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/async-await/issues/issue-69307-nested.rs b/tests/ui/async-await/issues/issue-69307-nested.rs
index b7cdf3987..b7cdf3987 100644
--- a/src/test/ui/async-await/issues/issue-69307-nested.rs
+++ b/tests/ui/async-await/issues/issue-69307-nested.rs
diff --git a/src/test/ui/async-await/issues/issue-69307.rs b/tests/ui/async-await/issues/issue-69307.rs
index 59309a7f2..59309a7f2 100644
--- a/src/test/ui/async-await/issues/issue-69307.rs
+++ b/tests/ui/async-await/issues/issue-69307.rs
diff --git a/src/test/ui/async-await/issues/issue-72312.rs b/tests/ui/async-await/issues/issue-72312.rs
index 74122cf00..74122cf00 100644
--- a/src/test/ui/async-await/issues/issue-72312.rs
+++ b/tests/ui/async-await/issues/issue-72312.rs
diff --git a/src/test/ui/async-await/issues/issue-72312.stderr b/tests/ui/async-await/issues/issue-72312.stderr
index aa947b690..aa947b690 100644
--- a/src/test/ui/async-await/issues/issue-72312.stderr
+++ b/tests/ui/async-await/issues/issue-72312.stderr
diff --git a/src/test/ui/async-await/issues/issue-78600.rs b/tests/ui/async-await/issues/issue-78600.rs
index 8aaeaecf3..8aaeaecf3 100644
--- a/src/test/ui/async-await/issues/issue-78600.rs
+++ b/tests/ui/async-await/issues/issue-78600.rs
diff --git a/src/test/ui/async-await/issues/issue-78600.stderr b/tests/ui/async-await/issues/issue-78600.stderr
index 37eafa996..37eafa996 100644
--- a/src/test/ui/async-await/issues/issue-78600.stderr
+++ b/tests/ui/async-await/issues/issue-78600.stderr
diff --git a/src/test/ui/async-await/issues/issue-78654.full.stderr b/tests/ui/async-await/issues/issue-78654.full.stderr
index 0d12a948c..0d12a948c 100644
--- a/src/test/ui/async-await/issues/issue-78654.full.stderr
+++ b/tests/ui/async-await/issues/issue-78654.full.stderr
diff --git a/src/test/ui/async-await/issues/issue-78654.min.stderr b/tests/ui/async-await/issues/issue-78654.min.stderr
index 0d12a948c..0d12a948c 100644
--- a/src/test/ui/async-await/issues/issue-78654.min.stderr
+++ b/tests/ui/async-await/issues/issue-78654.min.stderr
diff --git a/src/test/ui/async-await/issues/issue-78654.rs b/tests/ui/async-await/issues/issue-78654.rs
index cc6dc3834..cc6dc3834 100644
--- a/src/test/ui/async-await/issues/issue-78654.rs
+++ b/tests/ui/async-await/issues/issue-78654.rs
diff --git a/src/test/ui/async-await/issues/issue-78938-async-block.rs b/tests/ui/async-await/issues/issue-78938-async-block.rs
index 36f716019..36f716019 100644
--- a/src/test/ui/async-await/issues/issue-78938-async-block.rs
+++ b/tests/ui/async-await/issues/issue-78938-async-block.rs
diff --git a/src/test/ui/async-await/issues/issue-78938-async-block.stderr b/tests/ui/async-await/issues/issue-78938-async-block.stderr
index c1a4b467f..c1a4b467f 100644
--- a/src/test/ui/async-await/issues/issue-78938-async-block.stderr
+++ b/tests/ui/async-await/issues/issue-78938-async-block.stderr
diff --git a/src/test/ui/async-await/issues/issue-95307.rs b/tests/ui/async-await/issues/issue-95307.rs
index f7e48070c..f7e48070c 100644
--- a/src/test/ui/async-await/issues/issue-95307.rs
+++ b/tests/ui/async-await/issues/issue-95307.rs
diff --git a/src/test/ui/async-await/issues/issue-95307.stderr b/tests/ui/async-await/issues/issue-95307.stderr
index a497cebe3..a497cebe3 100644
--- a/src/test/ui/async-await/issues/issue-95307.stderr
+++ b/tests/ui/async-await/issues/issue-95307.stderr
diff --git a/src/test/ui/async-await/issues/non-async-enclosing-span.rs b/tests/ui/async-await/issues/non-async-enclosing-span.rs
index d47c21377..d47c21377 100644
--- a/src/test/ui/async-await/issues/non-async-enclosing-span.rs
+++ b/tests/ui/async-await/issues/non-async-enclosing-span.rs
diff --git a/src/test/ui/async-await/issues/non-async-enclosing-span.stderr b/tests/ui/async-await/issues/non-async-enclosing-span.stderr
index 20b827479..20b827479 100644
--- a/src/test/ui/async-await/issues/non-async-enclosing-span.stderr
+++ b/tests/ui/async-await/issues/non-async-enclosing-span.stderr
diff --git a/src/test/ui/async-await/large_moves.attribute.stderr b/tests/ui/async-await/large_moves.attribute.stderr
index 0c5452475..0c5452475 100644
--- a/src/test/ui/async-await/large_moves.attribute.stderr
+++ b/tests/ui/async-await/large_moves.attribute.stderr
diff --git a/src/test/ui/async-await/large_moves.option.stderr b/tests/ui/async-await/large_moves.option.stderr
index 0c5452475..0c5452475 100644
--- a/src/test/ui/async-await/large_moves.option.stderr
+++ b/tests/ui/async-await/large_moves.option.stderr
diff --git a/src/test/ui/async-await/large_moves.rs b/tests/ui/async-await/large_moves.rs
index d43d0eec0..d43d0eec0 100644
--- a/src/test/ui/async-await/large_moves.rs
+++ b/tests/ui/async-await/large_moves.rs
diff --git a/src/test/ui/async-await/move-part-await-return-rest-struct.rs b/tests/ui/async-await/move-part-await-return-rest-struct.rs
index 39ea2aae5..39ea2aae5 100644
--- a/src/test/ui/async-await/move-part-await-return-rest-struct.rs
+++ b/tests/ui/async-await/move-part-await-return-rest-struct.rs
diff --git a/src/test/ui/async-await/move-part-await-return-rest-tuple.rs b/tests/ui/async-await/move-part-await-return-rest-tuple.rs
index 7b958b98b..7b958b98b 100644
--- a/src/test/ui/async-await/move-part-await-return-rest-tuple.rs
+++ b/tests/ui/async-await/move-part-await-return-rest-tuple.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/elided.rs b/tests/ui/async-await/multiple-lifetimes/elided.rs
index 8258e2eff..8258e2eff 100644
--- a/src/test/ui/async-await/multiple-lifetimes/elided.rs
+++ b/tests/ui/async-await/multiple-lifetimes/elided.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/fn-ptr.rs b/tests/ui/async-await/multiple-lifetimes/fn-ptr.rs
index 3912b8547..3912b8547 100644
--- a/src/test/ui/async-await/multiple-lifetimes/fn-ptr.rs
+++ b/tests/ui/async-await/multiple-lifetimes/fn-ptr.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/hrtb.rs b/tests/ui/async-await/multiple-lifetimes/hrtb.rs
index e788ca5ff..e788ca5ff 100644
--- a/src/test/ui/async-await/multiple-lifetimes/hrtb.rs
+++ b/tests/ui/async-await/multiple-lifetimes/hrtb.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/named.rs b/tests/ui/async-await/multiple-lifetimes/named.rs
index e8eb98102..e8eb98102 100644
--- a/src/test/ui/async-await/multiple-lifetimes/named.rs
+++ b/tests/ui/async-await/multiple-lifetimes/named.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/partial-relation.rs b/tests/ui/async-await/multiple-lifetimes/partial-relation.rs
index 02b105999..02b105999 100644
--- a/src/test/ui/async-await/multiple-lifetimes/partial-relation.rs
+++ b/tests/ui/async-await/multiple-lifetimes/partial-relation.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-fg.rs b/tests/ui/async-await/multiple-lifetimes/ret-impl-trait-fg.rs
index f1002947f..f1002947f 100644
--- a/src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-fg.rs
+++ b/tests/ui/async-await/multiple-lifetimes/ret-impl-trait-fg.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-one.rs b/tests/ui/async-await/multiple-lifetimes/ret-impl-trait-one.rs
index aebc77d26..aebc77d26 100644
--- a/src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-one.rs
+++ b/tests/ui/async-await/multiple-lifetimes/ret-impl-trait-one.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-one.stderr b/tests/ui/async-await/multiple-lifetimes/ret-impl-trait-one.stderr
index ae4d0d585..ae4d0d585 100644
--- a/src/test/ui/async-await/multiple-lifetimes/ret-impl-trait-one.stderr
+++ b/tests/ui/async-await/multiple-lifetimes/ret-impl-trait-one.stderr
diff --git a/src/test/ui/async-await/multiple-lifetimes/ret-ref.rs b/tests/ui/async-await/multiple-lifetimes/ret-ref.rs
index 149c020f9..149c020f9 100644
--- a/src/test/ui/async-await/multiple-lifetimes/ret-ref.rs
+++ b/tests/ui/async-await/multiple-lifetimes/ret-ref.rs
diff --git a/src/test/ui/async-await/multiple-lifetimes/ret-ref.stderr b/tests/ui/async-await/multiple-lifetimes/ret-ref.stderr
index d86e84033..d86e84033 100644
--- a/src/test/ui/async-await/multiple-lifetimes/ret-ref.stderr
+++ b/tests/ui/async-await/multiple-lifetimes/ret-ref.stderr
diff --git a/src/test/ui/async-await/multiple-lifetimes/variance.rs b/tests/ui/async-await/multiple-lifetimes/variance.rs
index 6ed8bef95..6ed8bef95 100644
--- a/src/test/ui/async-await/multiple-lifetimes/variance.rs
+++ b/tests/ui/async-await/multiple-lifetimes/variance.rs
diff --git a/src/test/ui/async-await/mutually-recursive-async-impl-trait-type.rs b/tests/ui/async-await/mutually-recursive-async-impl-trait-type.rs
index bb2a61f03..bb2a61f03 100644
--- a/src/test/ui/async-await/mutually-recursive-async-impl-trait-type.rs
+++ b/tests/ui/async-await/mutually-recursive-async-impl-trait-type.rs
diff --git a/src/test/ui/async-await/mutually-recursive-async-impl-trait-type.stderr b/tests/ui/async-await/mutually-recursive-async-impl-trait-type.stderr
index f789ad2a0..f789ad2a0 100644
--- a/src/test/ui/async-await/mutually-recursive-async-impl-trait-type.stderr
+++ b/tests/ui/async-await/mutually-recursive-async-impl-trait-type.stderr
diff --git a/src/test/ui/async-await/nested-in-impl.rs b/tests/ui/async-await/nested-in-impl.rs
index 76ed827d5..76ed827d5 100644
--- a/src/test/ui/async-await/nested-in-impl.rs
+++ b/tests/ui/async-await/nested-in-impl.rs
diff --git a/src/test/ui/async-await/no-async-const.rs b/tests/ui/async-await/no-async-const.rs
index 963460c11..963460c11 100644
--- a/src/test/ui/async-await/no-async-const.rs
+++ b/tests/ui/async-await/no-async-const.rs
diff --git a/src/test/ui/async-await/no-async-const.stderr b/tests/ui/async-await/no-async-const.stderr
index a51dc88a4..a51dc88a4 100644
--- a/src/test/ui/async-await/no-async-const.stderr
+++ b/tests/ui/async-await/no-async-const.stderr
diff --git a/src/test/ui/async-await/no-const-async.rs b/tests/ui/async-await/no-const-async.rs
index cfb0ef1b3..cfb0ef1b3 100644
--- a/src/test/ui/async-await/no-const-async.rs
+++ b/tests/ui/async-await/no-const-async.rs
diff --git a/src/test/ui/async-await/no-const-async.stderr b/tests/ui/async-await/no-const-async.stderr
index c5bd520aa..c5bd520aa 100644
--- a/src/test/ui/async-await/no-const-async.stderr
+++ b/tests/ui/async-await/no-const-async.stderr
diff --git a/src/test/ui/async-await/no-move-across-await-struct.rs b/tests/ui/async-await/no-move-across-await-struct.rs
index 51c9a42b3..51c9a42b3 100644
--- a/src/test/ui/async-await/no-move-across-await-struct.rs
+++ b/tests/ui/async-await/no-move-across-await-struct.rs
diff --git a/src/test/ui/async-await/no-move-across-await-struct.stderr b/tests/ui/async-await/no-move-across-await-struct.stderr
index 4eaed1cf1..4eaed1cf1 100644
--- a/src/test/ui/async-await/no-move-across-await-struct.stderr
+++ b/tests/ui/async-await/no-move-across-await-struct.stderr
diff --git a/src/test/ui/async-await/no-move-across-await-tuple.rs b/tests/ui/async-await/no-move-across-await-tuple.rs
index a65633269..a65633269 100644
--- a/src/test/ui/async-await/no-move-across-await-tuple.rs
+++ b/tests/ui/async-await/no-move-across-await-tuple.rs
diff --git a/src/test/ui/async-await/no-move-across-await-tuple.stderr b/tests/ui/async-await/no-move-across-await-tuple.stderr
index d750df991..d750df991 100644
--- a/src/test/ui/async-await/no-move-across-await-tuple.stderr
+++ b/tests/ui/async-await/no-move-across-await-tuple.stderr
diff --git a/src/test/ui/async-await/no-non-guaranteed-initialization.rs b/tests/ui/async-await/no-non-guaranteed-initialization.rs
index c4d81bf83..c4d81bf83 100644
--- a/src/test/ui/async-await/no-non-guaranteed-initialization.rs
+++ b/tests/ui/async-await/no-non-guaranteed-initialization.rs
diff --git a/src/test/ui/async-await/no-non-guaranteed-initialization.stderr b/tests/ui/async-await/no-non-guaranteed-initialization.stderr
index 12c15bf56..12c15bf56 100644
--- a/src/test/ui/async-await/no-non-guaranteed-initialization.stderr
+++ b/tests/ui/async-await/no-non-guaranteed-initialization.stderr
diff --git a/src/test/ui/async-await/no-params-non-move-async-closure.rs b/tests/ui/async-await/no-params-non-move-async-closure.rs
index 3b15f35c2..3b15f35c2 100644
--- a/src/test/ui/async-await/no-params-non-move-async-closure.rs
+++ b/tests/ui/async-await/no-params-non-move-async-closure.rs
diff --git a/src/test/ui/async-await/no-params-non-move-async-closure.stderr b/tests/ui/async-await/no-params-non-move-async-closure.stderr
index 1f589c516..1f589c516 100644
--- a/src/test/ui/async-await/no-params-non-move-async-closure.stderr
+++ b/tests/ui/async-await/no-params-non-move-async-closure.stderr
diff --git a/src/test/ui/async-await/no-std.rs b/tests/ui/async-await/no-std.rs
index 63e93cdff..63e93cdff 100644
--- a/src/test/ui/async-await/no-std.rs
+++ b/tests/ui/async-await/no-std.rs
diff --git a/src/test/ui/async-await/no-unsafe-async.rs b/tests/ui/async-await/no-unsafe-async.rs
index f40154e16..f40154e16 100644
--- a/src/test/ui/async-await/no-unsafe-async.rs
+++ b/tests/ui/async-await/no-unsafe-async.rs
diff --git a/src/test/ui/async-await/no-unsafe-async.stderr b/tests/ui/async-await/no-unsafe-async.stderr
index f23d17d6b..f23d17d6b 100644
--- a/src/test/ui/async-await/no-unsafe-async.stderr
+++ b/tests/ui/async-await/no-unsafe-async.stderr
diff --git a/src/test/ui/async-await/non-trivial-drop.rs b/tests/ui/async-await/non-trivial-drop.rs
index a3167215d..a3167215d 100644
--- a/src/test/ui/async-await/non-trivial-drop.rs
+++ b/tests/ui/async-await/non-trivial-drop.rs
diff --git a/src/test/ui/async-await/partial-drop-partial-reinit.drop_tracking.stderr b/tests/ui/async-await/partial-drop-partial-reinit.drop_tracking.stderr
index 17b4ef7bd..17b4ef7bd 100644
--- a/src/test/ui/async-await/partial-drop-partial-reinit.drop_tracking.stderr
+++ b/tests/ui/async-await/partial-drop-partial-reinit.drop_tracking.stderr
diff --git a/src/test/ui/async-await/partial-drop-partial-reinit.no_drop_tracking.stderr b/tests/ui/async-await/partial-drop-partial-reinit.no_drop_tracking.stderr
index 34d8a159f..34d8a159f 100644
--- a/src/test/ui/async-await/partial-drop-partial-reinit.no_drop_tracking.stderr
+++ b/tests/ui/async-await/partial-drop-partial-reinit.no_drop_tracking.stderr
diff --git a/src/test/ui/async-await/partial-drop-partial-reinit.rs b/tests/ui/async-await/partial-drop-partial-reinit.rs
index 7d097e72f..7d097e72f 100644
--- a/src/test/ui/async-await/partial-drop-partial-reinit.rs
+++ b/tests/ui/async-await/partial-drop-partial-reinit.rs
diff --git a/src/test/ui/async-await/partial-initialization-across-await.rs b/tests/ui/async-await/partial-initialization-across-await.rs
index 7577aee3f..7577aee3f 100644
--- a/src/test/ui/async-await/partial-initialization-across-await.rs
+++ b/tests/ui/async-await/partial-initialization-across-await.rs
diff --git a/src/test/ui/async-await/partial-initialization-across-await.stderr b/tests/ui/async-await/partial-initialization-across-await.stderr
index 6a0eeffb9..6a0eeffb9 100644
--- a/src/test/ui/async-await/partial-initialization-across-await.stderr
+++ b/tests/ui/async-await/partial-initialization-across-await.stderr
diff --git a/src/test/ui/async-await/pin-needed-to-poll-2.rs b/tests/ui/async-await/pin-needed-to-poll-2.rs
index 6ce70336d..6ce70336d 100644
--- a/src/test/ui/async-await/pin-needed-to-poll-2.rs
+++ b/tests/ui/async-await/pin-needed-to-poll-2.rs
diff --git a/src/test/ui/async-await/pin-needed-to-poll-2.stderr b/tests/ui/async-await/pin-needed-to-poll-2.stderr
index 83d1a02c8..0a6f705e2 100644
--- a/src/test/ui/async-await/pin-needed-to-poll-2.stderr
+++ b/tests/ui/async-await/pin-needed-to-poll-2.stderr
@@ -14,9 +14,6 @@ LL | struct Sleep(std::marker::PhantomPinned);
| ^^^^^
note: required by a bound in `Pin::<P>::new`
--> $SRC_DIR/core/src/pin.rs:LL:COL
- |
-LL | impl<P: Deref<Target: Unpin>> Pin<P> {
- | ^^^^^ required by this bound in `Pin::<P>::new`
error: aborting due to previous error
diff --git a/src/test/ui/async-await/pin-needed-to-poll.rs b/tests/ui/async-await/pin-needed-to-poll.rs
index 0d1fe684f..0d1fe684f 100644
--- a/src/test/ui/async-await/pin-needed-to-poll.rs
+++ b/tests/ui/async-await/pin-needed-to-poll.rs
diff --git a/tests/ui/async-await/pin-needed-to-poll.stderr b/tests/ui/async-await/pin-needed-to-poll.stderr
new file mode 100644
index 000000000..b1f4a73aa
--- /dev/null
+++ b/tests/ui/async-await/pin-needed-to-poll.stderr
@@ -0,0 +1,20 @@
+error[E0599]: no method named `poll` found for struct `Sleep` in the current scope
+ --> $DIR/pin-needed-to-poll.rs:42:20
+ |
+LL | struct Sleep;
+ | ------------ method `poll` not found for this struct
+...
+LL | self.sleep.poll(cx)
+ | ^^^^ method not found in `Sleep`
+ --> $SRC_DIR/core/src/future/future.rs:LL:COL
+ |
+ = note: the method is available for `Pin<&mut Sleep>` here
+ |
+help: consider wrapping the receiver expression with the appropriate type
+ |
+LL | Pin::new(&mut self.sleep).poll(cx)
+ | +++++++++++++ +
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/async-await/proper-span-for-type-error.fixed b/tests/ui/async-await/proper-span-for-type-error.fixed
index 7d43b575d..7d43b575d 100644
--- a/src/test/ui/async-await/proper-span-for-type-error.fixed
+++ b/tests/ui/async-await/proper-span-for-type-error.fixed
diff --git a/src/test/ui/async-await/proper-span-for-type-error.rs b/tests/ui/async-await/proper-span-for-type-error.rs
index 00ccde1bf..00ccde1bf 100644
--- a/src/test/ui/async-await/proper-span-for-type-error.rs
+++ b/tests/ui/async-await/proper-span-for-type-error.rs
diff --git a/src/test/ui/async-await/proper-span-for-type-error.stderr b/tests/ui/async-await/proper-span-for-type-error.stderr
index 25f05156c..25f05156c 100644
--- a/src/test/ui/async-await/proper-span-for-type-error.stderr
+++ b/tests/ui/async-await/proper-span-for-type-error.stderr
diff --git a/src/test/ui/async-await/recursive-async-impl-trait-type.rs b/tests/ui/async-await/recursive-async-impl-trait-type.rs
index edc4cb8ac..edc4cb8ac 100644
--- a/src/test/ui/async-await/recursive-async-impl-trait-type.rs
+++ b/tests/ui/async-await/recursive-async-impl-trait-type.rs
diff --git a/src/test/ui/async-await/recursive-async-impl-trait-type.stderr b/tests/ui/async-await/recursive-async-impl-trait-type.stderr
index 63f64f445..63f64f445 100644
--- a/src/test/ui/async-await/recursive-async-impl-trait-type.stderr
+++ b/tests/ui/async-await/recursive-async-impl-trait-type.stderr
diff --git a/src/test/ui/async-await/repeat_count_const_in_async_fn.rs b/tests/ui/async-await/repeat_count_const_in_async_fn.rs
index ebabc3fbf..ebabc3fbf 100644
--- a/src/test/ui/async-await/repeat_count_const_in_async_fn.rs
+++ b/tests/ui/async-await/repeat_count_const_in_async_fn.rs
diff --git a/src/test/ui/async-await/return-ty-raw-ptr-coercion.rs b/tests/ui/async-await/return-ty-raw-ptr-coercion.rs
index 9fe0869ca..9fe0869ca 100644
--- a/src/test/ui/async-await/return-ty-raw-ptr-coercion.rs
+++ b/tests/ui/async-await/return-ty-raw-ptr-coercion.rs
diff --git a/src/test/ui/async-await/return-ty-unsize-coercion.rs b/tests/ui/async-await/return-ty-unsize-coercion.rs
index 93832ef7e..93832ef7e 100644
--- a/src/test/ui/async-await/return-ty-unsize-coercion.rs
+++ b/tests/ui/async-await/return-ty-unsize-coercion.rs
diff --git a/src/test/ui/async-await/suggest-missing-await-closure.fixed b/tests/ui/async-await/suggest-missing-await-closure.fixed
index febcd0218..febcd0218 100644
--- a/src/test/ui/async-await/suggest-missing-await-closure.fixed
+++ b/tests/ui/async-await/suggest-missing-await-closure.fixed
diff --git a/src/test/ui/async-await/suggest-missing-await-closure.rs b/tests/ui/async-await/suggest-missing-await-closure.rs
index faabf6ee3..faabf6ee3 100644
--- a/src/test/ui/async-await/suggest-missing-await-closure.rs
+++ b/tests/ui/async-await/suggest-missing-await-closure.rs
diff --git a/src/test/ui/async-await/suggest-missing-await-closure.stderr b/tests/ui/async-await/suggest-missing-await-closure.stderr
index a5958baff..a5958baff 100644
--- a/src/test/ui/async-await/suggest-missing-await-closure.stderr
+++ b/tests/ui/async-await/suggest-missing-await-closure.stderr
diff --git a/src/test/ui/async-await/suggest-missing-await.rs b/tests/ui/async-await/suggest-missing-await.rs
index 796f82e77..796f82e77 100644
--- a/src/test/ui/async-await/suggest-missing-await.rs
+++ b/tests/ui/async-await/suggest-missing-await.rs
diff --git a/src/test/ui/async-await/suggest-missing-await.stderr b/tests/ui/async-await/suggest-missing-await.stderr
index 1196601ac..1196601ac 100644
--- a/src/test/ui/async-await/suggest-missing-await.stderr
+++ b/tests/ui/async-await/suggest-missing-await.stderr
diff --git a/src/test/ui/async-await/suggest-switching-edition-on-await-cargo.rs b/tests/ui/async-await/suggest-switching-edition-on-await-cargo.rs
index 4919e0a05..4919e0a05 100644
--- a/src/test/ui/async-await/suggest-switching-edition-on-await-cargo.rs
+++ b/tests/ui/async-await/suggest-switching-edition-on-await-cargo.rs
diff --git a/src/test/ui/async-await/suggest-switching-edition-on-await-cargo.stderr b/tests/ui/async-await/suggest-switching-edition-on-await-cargo.stderr
index 409eb179e..409eb179e 100644
--- a/src/test/ui/async-await/suggest-switching-edition-on-await-cargo.stderr
+++ b/tests/ui/async-await/suggest-switching-edition-on-await-cargo.stderr
diff --git a/src/test/ui/async-await/suggest-switching-edition-on-await.rs b/tests/ui/async-await/suggest-switching-edition-on-await.rs
index 9852e8fc9..9852e8fc9 100644
--- a/src/test/ui/async-await/suggest-switching-edition-on-await.rs
+++ b/tests/ui/async-await/suggest-switching-edition-on-await.rs
diff --git a/src/test/ui/async-await/suggest-switching-edition-on-await.stderr b/tests/ui/async-await/suggest-switching-edition-on-await.stderr
index ef3334381..ef3334381 100644
--- a/src/test/ui/async-await/suggest-switching-edition-on-await.stderr
+++ b/tests/ui/async-await/suggest-switching-edition-on-await.stderr
diff --git a/tests/ui/async-await/track-caller/async-block.rs b/tests/ui/async-await/track-caller/async-block.rs
new file mode 100644
index 000000000..8e81387c3
--- /dev/null
+++ b/tests/ui/async-await/track-caller/async-block.rs
@@ -0,0 +1,9 @@
+// edition:2021
+
+#![feature(closure_track_caller, stmt_expr_attributes)]
+
+fn main() {
+ let _ = #[track_caller] async {
+ //~^ ERROR attribute should be applied to a function definition [E0739]
+ };
+}
diff --git a/tests/ui/async-await/track-caller/async-block.stderr b/tests/ui/async-await/track-caller/async-block.stderr
new file mode 100644
index 000000000..407439921
--- /dev/null
+++ b/tests/ui/async-await/track-caller/async-block.stderr
@@ -0,0 +1,12 @@
+error[E0739]: attribute should be applied to a function definition
+ --> $DIR/async-block.rs:6:13
+ |
+LL | let _ = #[track_caller] async {
+ | _____________^^^^^^^^^^^^^^^_-
+LL | |
+LL | | };
+ | |_____- not a function definition
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0739`.
diff --git a/src/test/ui/async-await/track-caller/async-closure-gate.rs b/tests/ui/async-await/track-caller/async-closure-gate.rs
index d9d556855..d9d556855 100644
--- a/src/test/ui/async-await/track-caller/async-closure-gate.rs
+++ b/tests/ui/async-await/track-caller/async-closure-gate.rs
diff --git a/src/test/ui/async-await/track-caller/async-closure-gate.stderr b/tests/ui/async-await/track-caller/async-closure-gate.stderr
index 498f1b43b..498f1b43b 100644
--- a/src/test/ui/async-await/track-caller/async-closure-gate.stderr
+++ b/tests/ui/async-await/track-caller/async-closure-gate.stderr
diff --git a/src/test/ui/async-await/track-caller/issue-105134.rs b/tests/ui/async-await/track-caller/issue-105134.rs
index 4e52b8e25..4e52b8e25 100644
--- a/src/test/ui/async-await/track-caller/issue-105134.rs
+++ b/tests/ui/async-await/track-caller/issue-105134.rs
diff --git a/src/test/ui/async-await/track-caller/panic-track-caller.nofeat.stderr b/tests/ui/async-await/track-caller/panic-track-caller.nofeat.stderr
index 51ea225f4..51ea225f4 100644
--- a/src/test/ui/async-await/track-caller/panic-track-caller.nofeat.stderr
+++ b/tests/ui/async-await/track-caller/panic-track-caller.nofeat.stderr
diff --git a/src/test/ui/async-await/track-caller/panic-track-caller.rs b/tests/ui/async-await/track-caller/panic-track-caller.rs
index 118361d6c..f45243b0e 100644
--- a/src/test/ui/async-await/track-caller/panic-track-caller.rs
+++ b/tests/ui/async-await/track-caller/panic-track-caller.rs
@@ -69,6 +69,16 @@ async fn foo_assoc() {
Foo::bar_assoc().await
}
+// Since compilation is expected to fail for this fn when using
+// `nofeat`, we test that separately in `async-closure-gate.rs`
+#[cfg(feat)]
+async fn foo_closure() {
+ let c = #[track_caller] async || {
+ panic!();
+ };
+ c().await
+}
+
fn panicked_at(f: impl FnOnce() + panic::UnwindSafe) -> u32 {
let loc = Arc::new(Mutex::new(None));
@@ -97,4 +107,7 @@ fn main() {
assert_eq!(panicked_at(|| block_on(foo_assoc())), 69);
#[cfg(nofeat)]
assert_eq!(panicked_at(|| block_on(foo_assoc())), 64);
+
+ #[cfg(feat)]
+ assert_eq!(panicked_at(|| block_on(foo_closure())), 79);
}
diff --git a/src/test/ui/async-await/try-on-option-in-async.rs b/tests/ui/async-await/try-on-option-in-async.rs
index afaaed2ef..afaaed2ef 100644
--- a/src/test/ui/async-await/try-on-option-in-async.rs
+++ b/tests/ui/async-await/try-on-option-in-async.rs
diff --git a/src/test/ui/async-await/try-on-option-in-async.stderr b/tests/ui/async-await/try-on-option-in-async.stderr
index 4c7b4fa41..4c7b4fa41 100644
--- a/src/test/ui/async-await/try-on-option-in-async.stderr
+++ b/tests/ui/async-await/try-on-option-in-async.stderr
diff --git a/src/test/ui/async-await/type-parameter-send.rs b/tests/ui/async-await/type-parameter-send.rs
index ab2b62aa5..ab2b62aa5 100644
--- a/src/test/ui/async-await/type-parameter-send.rs
+++ b/tests/ui/async-await/type-parameter-send.rs
diff --git a/src/test/ui/async-await/unnecessary-await.rs b/tests/ui/async-await/unnecessary-await.rs
index 24673777b..24673777b 100644
--- a/src/test/ui/async-await/unnecessary-await.rs
+++ b/tests/ui/async-await/unnecessary-await.rs
diff --git a/src/test/ui/async-await/unnecessary-await.stderr b/tests/ui/async-await/unnecessary-await.stderr
index dc3089336..dc3089336 100644
--- a/src/test/ui/async-await/unnecessary-await.stderr
+++ b/tests/ui/async-await/unnecessary-await.stderr
diff --git a/src/test/ui/async-await/unreachable-lint-1.rs b/tests/ui/async-await/unreachable-lint-1.rs
index d63d643c4..d63d643c4 100644
--- a/src/test/ui/async-await/unreachable-lint-1.rs
+++ b/tests/ui/async-await/unreachable-lint-1.rs
diff --git a/src/test/ui/async-await/unreachable-lint-1.stderr b/tests/ui/async-await/unreachable-lint-1.stderr
index e93257889..e93257889 100644
--- a/src/test/ui/async-await/unreachable-lint-1.stderr
+++ b/tests/ui/async-await/unreachable-lint-1.stderr
diff --git a/src/test/ui/async-await/unreachable-lint.rs b/tests/ui/async-await/unreachable-lint.rs
index ca18cfde4..ca18cfde4 100644
--- a/src/test/ui/async-await/unreachable-lint.rs
+++ b/tests/ui/async-await/unreachable-lint.rs
diff --git a/src/test/ui/async-await/unresolved_type_param.rs b/tests/ui/async-await/unresolved_type_param.rs
index 6d6d80614..6d6d80614 100644
--- a/src/test/ui/async-await/unresolved_type_param.rs
+++ b/tests/ui/async-await/unresolved_type_param.rs
diff --git a/src/test/ui/async-await/unresolved_type_param.stderr b/tests/ui/async-await/unresolved_type_param.stderr
index 7236c681f..7236c681f 100644
--- a/src/test/ui/async-await/unresolved_type_param.stderr
+++ b/tests/ui/async-await/unresolved_type_param.stderr
diff --git a/src/test/ui/async-await/unused-lifetime.rs b/tests/ui/async-await/unused-lifetime.rs
index 6cfd36ba9..6cfd36ba9 100644
--- a/src/test/ui/async-await/unused-lifetime.rs
+++ b/tests/ui/async-await/unused-lifetime.rs
diff --git a/src/test/ui/async-await/unused-lifetime.stderr b/tests/ui/async-await/unused-lifetime.stderr
index 5c00501a6..5c00501a6 100644
--- a/src/test/ui/async-await/unused-lifetime.stderr
+++ b/tests/ui/async-await/unused-lifetime.stderr