From 0b18b4fbbc5c0a60a1d373b5a1b30d21f55923d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Le=C3=B3n=20Orell=20Valerian=20Liehr?= <me@fmease.dev>
Date: Mon, 27 Jan 2025 02:28:04 +0100
Subject: [PATCH 1/2] Remove all dead files inside tests/ui/

---
 src/tools/tidy/src/ui_tests.rs                |    2 +-
 .../equality.current.stderr                   |   17 -
 .../return-type-notation/equality.next.stderr |   17 -
 .../issue-110963-late.next.stderr             |   11 -
 .../super-method-bound.next.stderr            |   10 -
 tests/ui/cfg/disallowed-cli-cfgs.test_.stderr |    8 -
 ...ect-region-supply-region-2.polonius.stderr |   37 -
 .../trustzone-only.stderr                     |    9 -
 .../const-eval/ub-nonnull.chalk.64bit.stderr  |    9 -
 .../const-eval/ub-wide-ptr.chalk.64bit.stderr |    9 -
 .../consts/write_to_mut_ref_dest.stock.stderr |   23 -
 ...routine-region-requirements.migrate.stderr |   12 -
 .../gat-in-trait-path.base.stderr             |   52 -
 .../issue-67510-pass.base.stderr              |   19 -
 .../issue-76535.base.stderr                   |   57 -
 .../issue-76535.extended.stderr               |   19 -
 .../issue-78671.base.stderr                   |   36 -
 .../issue-78671.extended.stderr               |   19 -
 .../issue-79422.base.stderr                   |   53 -
 .../issue-79422.extended.stderr               |   36 -
 .../issue-90014-tait2.next-solver.stderr      |   15 -
 .../issue-91139.migrate.stderr                |    7 -
 .../issue-92096.migrate.stderr                |   24 -
 .../trait-objects.base.stderr                 |   51 -
 .../trait-objects.extended.stderr             |   19 -
 .../evaluatable-bounds.unconstrained.stderr   |   13 -
 .../hrtb-perfect-forwarding.polonius.stderr   |   71 --
 .../auto-trait-coherence.next.stderr          |   12 -
 .../auto-trait-coherence.old.stderr           |   12 -
 ...coherence-treats-tait-ambig.current.stderr |   13 -
 .../error-handling.polonius.stderr            |   15 -
 .../infinite-instantiation.polonius.stderr    |   15 -
 tests/ui/issues/issue-22638.polonius.stderr   |   15 -
 .../issue-37311.polonius.stderr               |   15 -
 tests/ui/issues/issue-48728.current.stderr    |   15 -
 tests/ui/issues/issue-67552.polonius.stderr   |   17 -
 tests/ui/issues/issue-8727.polonius.stderr    |   26 -
 tests/ui/json/json-multiple.polonius.stderr   |    1 -
 tests/ui/json/json-options.polonius.stderr    |    1 -
 .../inherent-impls-overflow.classic.stderr    |   43 -
 tests/ui/nll/get_default.polonius.stderr      |   18 -
 ...outlives-suggestion-simple.polonius.stderr |  124 --
 .../closure-substs.polonius.stderr            |   61 -
 .../empty-types.min_exh_pats.stderr           |  727 -----------
 ...ately-empty.min_exhaustive_patterns.stderr |   21 -
 ...ce_of_empty.min_exhaustive_patterns.stderr |   30 -
 ...n-regular-dropck-recursion.polonius.stderr |   15 -
 tests/ui/recursion/recursion.polonius.stderr  |   15 -
 .../unreachable.exh_pats.stderr               |   55 -
 .../unreachable.normal.stderr                 |   44 -
 .../issue-103052-2.current.stderr             |   15 -
 .../issue-103052-2.next.stderr                |   15 -
 .../disallowed-positions.nofeature.stderr     | 1111 -----------------
 ...mit-artifact-notifications.polonius.stderr |    1 -
 .../safe-outside-extern.gated.stderr          |   38 -
 .../safe-outside-extern.ungated.stderr        |   89 --
 .../safe-impl-trait.ungated.stderr            |    8 -
 .../safe-trait.gated.stderr                   |    8 -
 .../safe-trait.ungated.stderr                 |    8 -
 ...ault-items-drop-coherence.coherence.stderr |   12 -
 ...lization-overlap-projection.current.stderr |   30 -
 ...cialization-overlap-projection.next.stderr |   30 -
 .../coherence/issue-102048.next.stderr        |   16 -
 .../type-checking-test-3.polonius.stderr      |   18 -
 .../type-checking-test-4.polonius.stderr      |   52 -
 .../panic-causes-oom-112708.stderr            |   32 -
 .../wf-nested.fail.stderr                     |   17 -
 .../wf-nested.pass.stderr                     |   31 -
 .../wf-nested.pass_sound.stderr               |   46 -
 .../type/pattern_types/derives.noimpl.stderr  |   14 -
 tests/ui/type_length_limit.polonius.stderr    |   11 -
 ...irrefutable.min_exhaustive_patterns.stderr |   26 -
 72 files changed, 1 insertion(+), 3592 deletions(-)
 delete mode 100644 tests/ui/associated-type-bounds/return-type-notation/equality.current.stderr
 delete mode 100644 tests/ui/associated-type-bounds/return-type-notation/equality.next.stderr
 delete mode 100644 tests/ui/async-await/return-type-notation/issue-110963-late.next.stderr
 delete mode 100644 tests/ui/async-await/return-type-notation/super-method-bound.next.stderr
 delete mode 100644 tests/ui/cfg/disallowed-cli-cfgs.test_.stderr
 delete mode 100644 tests/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr
 delete mode 100644 tests/ui/cmse-nonsecure/cmse-nonsecure-entry/trustzone-only.stderr
 delete mode 100644 tests/ui/consts/const-eval/ub-nonnull.chalk.64bit.stderr
 delete mode 100644 tests/ui/consts/const-eval/ub-wide-ptr.chalk.64bit.stderr
 delete mode 100644 tests/ui/consts/write_to_mut_ref_dest.stock.stderr
 delete mode 100644 tests/ui/coroutine/coroutine-region-requirements.migrate.stderr
 delete mode 100644 tests/ui/generic-associated-types/gat-in-trait-path.base.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-67510-pass.base.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-76535.base.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-76535.extended.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-78671.base.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-78671.extended.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-79422.base.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-79422.extended.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-90014-tait2.next-solver.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-91139.migrate.stderr
 delete mode 100644 tests/ui/generic-associated-types/issue-92096.migrate.stderr
 delete mode 100644 tests/ui/generic-associated-types/trait-objects.base.stderr
 delete mode 100644 tests/ui/generic-associated-types/trait-objects.extended.stderr
 delete mode 100644 tests/ui/generic-const-items/evaluatable-bounds.unconstrained.stderr
 delete mode 100644 tests/ui/higher-ranked/trait-bounds/hrtb-perfect-forwarding.polonius.stderr
 delete mode 100644 tests/ui/impl-trait/auto-trait-coherence.next.stderr
 delete mode 100644 tests/ui/impl-trait/auto-trait-coherence.old.stderr
 delete mode 100644 tests/ui/impl-trait/coherence-treats-tait-ambig.current.stderr
 delete mode 100644 tests/ui/impl-trait/multiple-lifetimes/error-handling.polonius.stderr
 delete mode 100644 tests/ui/infinite/infinite-instantiation.polonius.stderr
 delete mode 100644 tests/ui/issues/issue-22638.polonius.stderr
 delete mode 100644 tests/ui/issues/issue-37311-type-length-limit/issue-37311.polonius.stderr
 delete mode 100644 tests/ui/issues/issue-48728.current.stderr
 delete mode 100644 tests/ui/issues/issue-67552.polonius.stderr
 delete mode 100644 tests/ui/issues/issue-8727.polonius.stderr
 delete mode 100644 tests/ui/json/json-multiple.polonius.stderr
 delete mode 100644 tests/ui/json/json-options.polonius.stderr
 delete mode 100644 tests/ui/lazy-type-alias/inherent-impls-overflow.classic.stderr
 delete mode 100644 tests/ui/nll/get_default.polonius.stderr
 delete mode 100644 tests/ui/nll/outlives-suggestion-simple.polonius.stderr
 delete mode 100644 tests/ui/nll/user-annotations/closure-substs.polonius.stderr
 delete mode 100644 tests/ui/pattern/usefulness/empty-types.min_exh_pats.stderr
 delete mode 100644 tests/ui/pattern/usefulness/match-privately-empty.min_exhaustive_patterns.stderr
 delete mode 100644 tests/ui/pattern/usefulness/slice_of_empty.min_exhaustive_patterns.stderr
 delete mode 100644 tests/ui/recursion/issue-38591-non-regular-dropck-recursion.polonius.stderr
 delete mode 100644 tests/ui/recursion/recursion.polonius.stderr
 delete mode 100644 tests/ui/rfcs/rfc-0000-never_patterns/unreachable.exh_pats.stderr
 delete mode 100644 tests/ui/rfcs/rfc-0000-never_patterns/unreachable.normal.stderr
 delete mode 100644 tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.current.stderr
 delete mode 100644 tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.next.stderr
 delete mode 100644 tests/ui/rfcs/rfc-2497-if-let-chains/disallowed-positions.nofeature.stderr
 delete mode 100644 tests/ui/rmeta/emit-artifact-notifications.polonius.stderr
 delete mode 100644 tests/ui/rust-2024/safe-outside-extern.gated.stderr
 delete mode 100644 tests/ui/rust-2024/safe-outside-extern.ungated.stderr
 delete mode 100644 tests/ui/rust-2024/unsafe-extern-blocks/safe-impl-trait.ungated.stderr
 delete mode 100644 tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.gated.stderr
 delete mode 100644 tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.ungated.stderr
 delete mode 100644 tests/ui/specialization/specialization-default-items-drop-coherence.coherence.stderr
 delete mode 100644 tests/ui/specialization/specialization-overlap-projection.current.stderr
 delete mode 100644 tests/ui/specialization/specialization-overlap-projection.next.stderr
 delete mode 100644 tests/ui/traits/next-solver/coherence/issue-102048.next.stderr
 delete mode 100644 tests/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr
 delete mode 100644 tests/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr
 delete mode 100644 tests/ui/treat-err-as-bug/panic-causes-oom-112708.stderr
 delete mode 100644 tests/ui/type-alias-impl-trait/wf-nested.fail.stderr
 delete mode 100644 tests/ui/type-alias-impl-trait/wf-nested.pass.stderr
 delete mode 100644 tests/ui/type-alias-impl-trait/wf-nested.pass_sound.stderr
 delete mode 100644 tests/ui/type/pattern_types/derives.noimpl.stderr
 delete mode 100644 tests/ui/type_length_limit.polonius.stderr
 delete mode 100644 tests/ui/uninhabited/uninhabited-irrefutable.min_exhaustive_patterns.stderr

diff --git a/src/tools/tidy/src/ui_tests.rs b/src/tools/tidy/src/ui_tests.rs
index 5ef07911429b0..d66ba157d1068 100644
--- a/src/tools/tidy/src/ui_tests.rs
+++ b/src/tools/tidy/src/ui_tests.rs
@@ -17,7 +17,7 @@ use ignore::Walk;
 const ENTRY_LIMIT: u32 = 901;
 // FIXME: The following limits should be reduced eventually.
 
-const ISSUES_ENTRY_LIMIT: u32 = 1662;
+const ISSUES_ENTRY_LIMIT: u32 = 1658;
 
 const EXPECTED_TEST_FILE_EXTENSIONS: &[&str] = &[
     "rs",     // test source files
diff --git a/tests/ui/associated-type-bounds/return-type-notation/equality.current.stderr b/tests/ui/associated-type-bounds/return-type-notation/equality.current.stderr
deleted file mode 100644
index 26b4d935ac7c6..0000000000000
--- a/tests/ui/associated-type-bounds/return-type-notation/equality.current.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/equality.rs:5:12
-   |
-LL | #![feature(return_type_notation)]
-   |            ^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-error: return type notation is not allowed to use type equality
-  --> $DIR/equality.rs:14:18
-   |
-LL | fn test<T: Trait<method() = Box<dyn Future<Output = ()>>>>() {}
-   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 1 previous error; 1 warning emitted
-
diff --git a/tests/ui/associated-type-bounds/return-type-notation/equality.next.stderr b/tests/ui/associated-type-bounds/return-type-notation/equality.next.stderr
deleted file mode 100644
index 26b4d935ac7c6..0000000000000
--- a/tests/ui/associated-type-bounds/return-type-notation/equality.next.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/equality.rs:5:12
-   |
-LL | #![feature(return_type_notation)]
-   |            ^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-error: return type notation is not allowed to use type equality
-  --> $DIR/equality.rs:14:18
-   |
-LL | fn test<T: Trait<method() = Box<dyn Future<Output = ()>>>>() {}
-   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 1 previous error; 1 warning emitted
-
diff --git a/tests/ui/async-await/return-type-notation/issue-110963-late.next.stderr b/tests/ui/async-await/return-type-notation/issue-110963-late.next.stderr
deleted file mode 100644
index 018f4f2207ae7..0000000000000
--- a/tests/ui/async-await/return-type-notation/issue-110963-late.next.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-110963-late.rs:6:12
-   |
-LL | #![feature(return_type_notation)]
-   |            ^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/async-await/return-type-notation/super-method-bound.next.stderr b/tests/ui/async-await/return-type-notation/super-method-bound.next.stderr
deleted file mode 100644
index 5f482b6087865..0000000000000
--- a/tests/ui/async-await/return-type-notation/super-method-bound.next.stderr
+++ /dev/null
@@ -1,10 +0,0 @@
-warning: the feature `return_type_notation` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/super-method-bound.rs:6:31
-   |
-LL | #![feature(return_type_notation)]   |                               ^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
-   = note: `#[warn(incomplete_features)]` on by default
-
-warning: 1 warning emitted
-
diff --git a/tests/ui/cfg/disallowed-cli-cfgs.test_.stderr b/tests/ui/cfg/disallowed-cli-cfgs.test_.stderr
deleted file mode 100644
index 96b5beb021062..0000000000000
--- a/tests/ui/cfg/disallowed-cli-cfgs.test_.stderr
+++ /dev/null
@@ -1,8 +0,0 @@
-error: unexpected `--cfg test` flag
-   |
-   = note: config `test` is only supposed to be controlled by `--test`
-   = note: see <https://github.com/rust-lang/rust/issues/xxxxx> for more information
-   = note: `#[deny(unexpected_builtin_cfgs)]` on by default
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr b/tests/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr
deleted file mode 100644
index 8846ccef34e2b..0000000000000
--- a/tests/ui/closures/closure-expected-type/expect-region-supply-region-2.polonius.stderr
+++ /dev/null
@@ -1,37 +0,0 @@
-error: lifetime may not live long enough
-  --> $DIR/expect-region-supply-region-2.rs:14:30
-   |
-LL | fn expect_bound_supply_named<'x>() {
-   |                              -- lifetime `'x` defined here
-...
-LL |     closure_expecting_bound(|x: &'x u32| {
-   |                              ^  - let's call the lifetime of this reference `'1`
-   |                              |
-   |                              requires that `'1` must outlive `'x`
-
-error[E0521]: borrowed data escapes outside of closure
-  --> $DIR/expect-region-supply-region-2.rs:20:9
-   |
-LL |     let mut f: Option<&u32> = None;
-   |         ----- `f` declared here, outside of the closure body
-...
-LL |     closure_expecting_bound(|x: &'x u32| {
-   |                              - `x` is a reference that is only valid in the closure body
-...
-LL |         f = Some(x);
-   |         ^^^^^^^^^^^ `x` escapes the closure body here
-
-error: lifetime may not live long enough
-  --> $DIR/expect-region-supply-region-2.rs:14:30
-   |
-LL | fn expect_bound_supply_named<'x>() {
-   |                              -- lifetime `'x` defined here
-...
-LL |     closure_expecting_bound(|x: &'x u32| {
-   |                              ^ requires that `'x` must outlive `'static`
-   |
-   = help: consider replacing `'x` with `'static`
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0521`.
diff --git a/tests/ui/cmse-nonsecure/cmse-nonsecure-entry/trustzone-only.stderr b/tests/ui/cmse-nonsecure/cmse-nonsecure-entry/trustzone-only.stderr
deleted file mode 100644
index 77379f7049d02..0000000000000
--- a/tests/ui/cmse-nonsecure/cmse-nonsecure-entry/trustzone-only.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0570]: `"C-cmse-nonsecure-entry"` is not a supported ABI for the current target
-  --> $DIR/trustzone-only.rs:5:1
-   |
-LL | pub extern "C-cmse-nonsecure-entry" fn entry_function(input: u32) -> u32 {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0570`.
diff --git a/tests/ui/consts/const-eval/ub-nonnull.chalk.64bit.stderr b/tests/ui/consts/const-eval/ub-nonnull.chalk.64bit.stderr
deleted file mode 100644
index fef6c92af9857..0000000000000
--- a/tests/ui/consts/const-eval/ub-nonnull.chalk.64bit.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0284]: type annotations needed: cannot satisfy `<usize as SliceIndex<[u8]>>::Output == _`
-  --> $DIR/ub-nonnull.rs:19:30
-   |
-LL |     let out_of_bounds_ptr = &ptr[255];
-   |                              ^^^^^^^^ cannot satisfy `<usize as SliceIndex<[u8]>>::Output == _`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0284`.
diff --git a/tests/ui/consts/const-eval/ub-wide-ptr.chalk.64bit.stderr b/tests/ui/consts/const-eval/ub-wide-ptr.chalk.64bit.stderr
deleted file mode 100644
index 533db90ce6c9e..0000000000000
--- a/tests/ui/consts/const-eval/ub-wide-ptr.chalk.64bit.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0282]: type annotations needed
-  --> $DIR/ub-wide-ptr.rs:90:67
-   |
-LL | const MYSLICE_SUFFIX_BAD: &MySliceBool = &MySlice(true, [unsafe { mem::transmute(3u8) }]);
-   |                                                                   ^^^^^^^^^^^^^^ cannot infer type for type parameter `U` declared on the function `transmute`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0282`.
diff --git a/tests/ui/consts/write_to_mut_ref_dest.stock.stderr b/tests/ui/consts/write_to_mut_ref_dest.stock.stderr
deleted file mode 100644
index 688d48ec707ca..0000000000000
--- a/tests/ui/consts/write_to_mut_ref_dest.stock.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-error[E0658]: mutable references are not allowed in constants
-  --> $DIR/write_to_mut_ref_dest.rs:11:27
-   |
-LL |         let b: *mut u32 = &mut a;
-   |                           ^^^^^^
-   |
-   = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
-   = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: dereferencing raw mutable pointers in constants is unstable
-  --> $DIR/write_to_mut_ref_dest.rs:12:18
-   |
-LL |         unsafe { *b = 5; }
-   |                  ^^^^^^
-   |
-   = note: see issue #57349 <https://github.com/rust-lang/rust/issues/57349> for more information
-   = help: add `#![feature(const_mut_refs)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/coroutine/coroutine-region-requirements.migrate.stderr b/tests/ui/coroutine/coroutine-region-requirements.migrate.stderr
deleted file mode 100644
index cfee8fc44fe09..0000000000000
--- a/tests/ui/coroutine/coroutine-region-requirements.migrate.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0621]: explicit lifetime required in the type of `x`
-  --> $DIR/generator-region-requirements.rs:16:51
-   |
-LL | fn dangle(x: &mut i32) -> &'static mut i32 {
-   |              -------- help: add explicit lifetime `'static` to the type of `x`: `&'static mut i32`
-...
-LL |             GeneratorState::Complete(c) => return c,
-   |                                                   ^ lifetime `'static` required
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0621`.
diff --git a/tests/ui/generic-associated-types/gat-in-trait-path.base.stderr b/tests/ui/generic-associated-types/gat-in-trait-path.base.stderr
deleted file mode 100644
index b2b569e6261b5..0000000000000
--- a/tests/ui/generic-associated-types/gat-in-trait-path.base.stderr
+++ /dev/null
@@ -1,52 +0,0 @@
-error[E0038]: the trait `Foo` is not dyn compatible
-  --> $DIR/gat-in-trait-path.rs:26:17
-   |
-LL | fn f(_arg : Box<dyn for<'a> Foo<A<'a> = &'a ()>>) {}
-   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Foo` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/gat-in-trait-path.rs:10:10
-   |
-LL | trait Foo {
-   |       --- this trait is not dyn compatible...
-LL |     type A<'a> where Self: 'a;
-   |          ^ ...because it contains the generic associated type `A`
-   = help: consider moving `A` to another trait
-
-error[E0038]: the trait `Foo` is not dyn compatible
-  --> $DIR/gat-in-trait-path.rs:32:5
-   |
-LL |   f(Box::new(foo));
-   |     ^^^^^^^^^^^^^ `Foo` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/gat-in-trait-path.rs:10:10
-   |
-LL | trait Foo {
-   |       --- this trait is not dyn compatible...
-LL |     type A<'a> where Self: 'a;
-   |          ^ ...because it contains the generic associated type `A`
-   = help: consider moving `A` to another trait
-
-error[E0038]: the trait `Foo` is not dyn compatible
-  --> $DIR/gat-in-trait-path.rs:32:5
-   |
-LL |   f(Box::new(foo));
-   |     ^^^^^^^^^^^^^ `Foo` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/gat-in-trait-path.rs:10:10
-   |
-LL | trait Foo {
-   |       --- this trait is not dyn compatible...
-LL |     type A<'a> where Self: 'a;
-   |          ^ ...because it contains the generic associated type `A`
-   = help: consider moving `A` to another trait
-   = note: required for the cast from `Box<Fooer<{integer}>>` to `Box<(dyn Foo<A<'a> = &'a ()> + 'static)>`
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0038`.
diff --git a/tests/ui/generic-associated-types/issue-67510-pass.base.stderr b/tests/ui/generic-associated-types/issue-67510-pass.base.stderr
deleted file mode 100644
index 5630894896946..0000000000000
--- a/tests/ui/generic-associated-types/issue-67510-pass.base.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0038]: the trait `X` is not dyn compatible
-  --> $DIR/issue-67510-pass.rs:12:23
-   |
-LL | fn _func1<'a>(_x: Box<dyn X<Y<'a>=&'a ()>>) {}
-   |                       ^^^^^^^^^^^^^^^^^^^ `X` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/issue-67510-pass.rs:9:10
-   |
-LL | trait X {
-   |       - this trait is not dyn compatible...
-LL |     type Y<'a>;
-   |          ^ ...because it contains the generic associated type `Y`
-   = help: consider moving `Y` to another trait
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0038`.
diff --git a/tests/ui/generic-associated-types/issue-76535.base.stderr b/tests/ui/generic-associated-types/issue-76535.base.stderr
deleted file mode 100644
index b503fad2d84fe..0000000000000
--- a/tests/ui/generic-associated-types/issue-76535.base.stderr
+++ /dev/null
@@ -1,57 +0,0 @@
-error[E0107]: missing generics for associated type `SuperTrait::SubType`
-  --> $DIR/issue-76535.rs:39:33
-   |
-LL |     let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0));
-   |                                 ^^^^^^^ expected 1 lifetime argument
-   |
-note: associated type defined here, with 1 lifetime parameter: `'a`
-  --> $DIR/issue-76535.rs:9:10
-   |
-LL |     type SubType<'a>: SubTrait where Self: 'a;
-   |          ^^^^^^^ --
-help: add missing lifetime argument
-   |
-LL |     let sub: Box<dyn SuperTrait<SubType<'a> = SubStruct>> = Box::new(SuperStruct::new(0));
-   |                                        ++++
-
-error[E0038]: the trait `SuperTrait` is not dyn compatible
-  --> $DIR/issue-76535.rs:39:14
-   |
-LL |     let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0));
-   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SuperTrait` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/issue-76535.rs:9:10
-   |
-LL | pub trait SuperTrait {
-   |           ---------- this trait is not dyn compatible...
-LL |     type SubType<'a>: SubTrait where Self: 'a;
-   |          ^^^^^^^ ...because it contains the generic associated type `SubType`
-   = help: consider moving `SubType` to another trait
-   = help: only type `SuperStruct` implements `SuperTrait` within this crate. Consider using it directly instead.
-   = note: `SuperTrait` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
-
-error[E0038]: the trait `SuperTrait` is not dyn compatible
-  --> $DIR/issue-76535.rs:39:57
-   |
-LL |     let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0));
-   |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SuperTrait` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/issue-76535.rs:9:10
-   |
-LL | pub trait SuperTrait {
-   |           ---------- this trait is not dyn compatible...
-LL |     type SubType<'a>: SubTrait where Self: 'a;
-   |          ^^^^^^^ ...because it contains the generic associated type `SubType`
-   = help: consider moving `SubType` to another trait
-   = help: only type `SuperStruct` implements `SuperTrait` within this crate. Consider using it directly instead.
-   = note: `SuperTrait` may be implemented in other crates; if you want to support your users passing their own types here, you can't refer to a specific type
-   = note: required for the cast from `Box<SuperStruct>` to `Box<dyn SuperTrait<SubType<'_> = SubStruct<'_>>>`
-
-error: aborting due to 3 previous errors
-
-Some errors have detailed explanations: E0038, E0107.
-For more information about an error, try `rustc --explain E0038`.
diff --git a/tests/ui/generic-associated-types/issue-76535.extended.stderr b/tests/ui/generic-associated-types/issue-76535.extended.stderr
deleted file mode 100644
index f6fe8b16902b1..0000000000000
--- a/tests/ui/generic-associated-types/issue-76535.extended.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0107]: missing generics for associated type `SuperTrait::SubType`
-  --> $DIR/issue-76535.rs:39:33
-   |
-LL |     let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0));
-   |                                 ^^^^^^^ expected 1 lifetime argument
-   |
-note: associated type defined here, with 1 lifetime parameter: `'a`
-  --> $DIR/issue-76535.rs:9:10
-   |
-LL |     type SubType<'a>: SubTrait where Self: 'a;
-   |          ^^^^^^^ --
-help: add missing lifetime argument
-   |
-LL |     let sub: Box<dyn SuperTrait<SubType<'a> = SubStruct>> = Box::new(SuperStruct::new(0));
-   |                                        ++++
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0107`.
diff --git a/tests/ui/generic-associated-types/issue-78671.base.stderr b/tests/ui/generic-associated-types/issue-78671.base.stderr
deleted file mode 100644
index 9bfe8c0b95612..0000000000000
--- a/tests/ui/generic-associated-types/issue-78671.base.stderr
+++ /dev/null
@@ -1,36 +0,0 @@
-error[E0107]: missing generics for associated type `CollectionFamily::Member`
-  --> $DIR/issue-78671.rs:10:47
-   |
-LL |     Box::new(Family) as &dyn CollectionFamily<Member=usize>
-   |                                               ^^^^^^ expected 1 generic argument
-   |
-note: associated type defined here, with 1 generic parameter: `T`
-  --> $DIR/issue-78671.rs:7:10
-   |
-LL |     type Member<T>;
-   |          ^^^^^^ -
-help: add missing generic argument
-   |
-LL |     Box::new(Family) as &dyn CollectionFamily<Member<T>=usize>
-   |                                                     +++
-
-error[E0038]: the trait `CollectionFamily` is not dyn compatible
-  --> $DIR/issue-78671.rs:10:25
-   |
-LL |     Box::new(Family) as &dyn CollectionFamily<Member=usize>
-   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `CollectionFamily` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/issue-78671.rs:7:10
-   |
-LL | trait CollectionFamily {
-   |       ---------------- this trait is not dyn compatible...
-LL |     type Member<T>;
-   |          ^^^^^^ ...because it contains the generic associated type `Member`
-   = help: consider moving `Member` to another trait
-
-error: aborting due to 2 previous errors
-
-Some errors have detailed explanations: E0038, E0107.
-For more information about an error, try `rustc --explain E0038`.
diff --git a/tests/ui/generic-associated-types/issue-78671.extended.stderr b/tests/ui/generic-associated-types/issue-78671.extended.stderr
deleted file mode 100644
index a5d56256d283b..0000000000000
--- a/tests/ui/generic-associated-types/issue-78671.extended.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0107]: missing generics for associated type `CollectionFamily::Member`
-  --> $DIR/issue-78671.rs:10:47
-   |
-LL |     Box::new(Family) as &dyn CollectionFamily<Member=usize>
-   |                                               ^^^^^^ expected 1 generic argument
-   |
-note: associated type defined here, with 1 generic parameter: `T`
-  --> $DIR/issue-78671.rs:7:10
-   |
-LL |     type Member<T>;
-   |          ^^^^^^ -
-help: add missing generic argument
-   |
-LL |     Box::new(Family) as &dyn CollectionFamily<Member<T>=usize>
-   |                                                     +++
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0107`.
diff --git a/tests/ui/generic-associated-types/issue-79422.base.stderr b/tests/ui/generic-associated-types/issue-79422.base.stderr
deleted file mode 100644
index c3de2b71762e4..0000000000000
--- a/tests/ui/generic-associated-types/issue-79422.base.stderr
+++ /dev/null
@@ -1,53 +0,0 @@
-error[E0107]: missing generics for associated type `MapLike::VRefCont`
-  --> $DIR/issue-79422.rs:47:36
-   |
-LL |         as Box<dyn MapLike<u8, u8, VRefCont = dyn RefCont<'_, u8>>>;
-   |                                    ^^^^^^^^ expected 1 lifetime argument
-   |
-note: associated type defined here, with 1 lifetime parameter: `'a`
-  --> $DIR/issue-79422.rs:23:10
-   |
-LL |     type VRefCont<'a>: RefCont<'a, V> where Self: 'a;
-   |          ^^^^^^^^ --
-help: add missing lifetime argument
-   |
-LL |         as Box<dyn MapLike<u8, u8, VRefCont<'a> = dyn RefCont<'_, u8>>>;
-   |                                            ++++
-
-error[E0038]: the trait `MapLike` is not dyn compatible
-  --> $DIR/issue-79422.rs:47:12
-   |
-LL |         as Box<dyn MapLike<u8, u8, VRefCont = dyn RefCont<'_, u8>>>;
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `MapLike` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/issue-79422.rs:23:10
-   |
-LL | trait MapLike<K, V> {
-   |       ------- this trait is not dyn compatible...
-LL |     type VRefCont<'a>: RefCont<'a, V> where Self: 'a;
-   |          ^^^^^^^^ ...because it contains the generic associated type `VRefCont`
-   = help: consider moving `VRefCont` to another trait
-
-error[E0038]: the trait `MapLike` is not dyn compatible
-  --> $DIR/issue-79422.rs:44:13
-   |
-LL |     let m = Box::new(std::collections::BTreeMap::<u8, u8>::new())
-   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `MapLike` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/issue-79422.rs:23:10
-   |
-LL | trait MapLike<K, V> {
-   |       ------- this trait is not dyn compatible...
-LL |     type VRefCont<'a>: RefCont<'a, V> where Self: 'a;
-   |          ^^^^^^^^ ...because it contains the generic associated type `VRefCont`
-   = help: consider moving `VRefCont` to another trait
-   = note: required for the cast from `Box<BTreeMap<u8, u8>>` to `Box<dyn MapLike<u8, u8, VRefCont<'_> = (dyn RefCont<'_, u8> + 'static)>>`
-
-error: aborting due to 3 previous errors
-
-Some errors have detailed explanations: E0038, E0107.
-For more information about an error, try `rustc --explain E0038`.
diff --git a/tests/ui/generic-associated-types/issue-79422.extended.stderr b/tests/ui/generic-associated-types/issue-79422.extended.stderr
deleted file mode 100644
index 031f8d8d851a1..0000000000000
--- a/tests/ui/generic-associated-types/issue-79422.extended.stderr
+++ /dev/null
@@ -1,36 +0,0 @@
-error[E0107]: missing generics for associated type `MapLike::VRefCont`
-  --> $DIR/issue-79422.rs:47:36
-   |
-LL |         as Box<dyn MapLike<u8, u8, VRefCont = dyn RefCont<'_, u8>>>;
-   |                                    ^^^^^^^^ expected 1 lifetime argument
-   |
-note: associated type defined here, with 1 lifetime parameter: `'a`
-  --> $DIR/issue-79422.rs:23:10
-   |
-LL |     type VRefCont<'a>: RefCont<'a, V> where Self: 'a;
-   |          ^^^^^^^^ --
-help: add missing lifetime argument
-   |
-LL |         as Box<dyn MapLike<u8, u8, VRefCont<'a> = dyn RefCont<'_, u8>>>;
-   |                                            ++++
-
-error[E0271]: type mismatch resolving `<BTreeMap<u8, u8> as MapLike<u8, u8>>::VRefCont<'_> == dyn RefCont<'_, u8>`
-  --> $DIR/issue-79422.rs:44:13
-   |
-LL |     let m = Box::new(std::collections::BTreeMap::<u8, u8>::new())
-   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ type mismatch resolving `<BTreeMap<u8, u8> as MapLike<u8, u8>>::VRefCont<'_> == dyn RefCont<'_, u8>`
-   |
-note: expected this to be `(dyn RefCont<'_, u8> + 'static)`
-  --> $DIR/issue-79422.rs:28:25
-   |
-LL |     type VRefCont<'a> = &'a V where Self: 'a;
-   |                         ^^^^^
-   = note: expected trait object `(dyn RefCont<'_, u8> + 'static)`
-                 found reference `&u8`
-   = help: `&u8` implements `RefCont` so you could box the found value and coerce it to the trait object `Box<dyn RefCont>`, you will have to change the expected type as well
-   = note: required for the cast from `Box<BTreeMap<u8, u8>>` to `Box<dyn MapLike<u8, u8, VRefCont<'_> = (dyn RefCont<'_, u8> + 'static)>>`
-
-error: aborting due to 2 previous errors
-
-Some errors have detailed explanations: E0107, E0271.
-For more information about an error, try `rustc --explain E0107`.
diff --git a/tests/ui/generic-associated-types/issue-90014-tait2.next-solver.stderr b/tests/ui/generic-associated-types/issue-90014-tait2.next-solver.stderr
deleted file mode 100644
index 85c5dad7fc01a..0000000000000
--- a/tests/ui/generic-associated-types/issue-90014-tait2.next-solver.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0308]: mismatched types
-  --> $DIR/issue-90014-tait2.rs:27:9
-   |
-LL |     fn make_fut(&self) -> Box<dyn for<'a> Trait<'a, Thing = Fut<'a>>> {
-   |                           ------------------------------------------- expected `Box<(dyn for<'a> Trait<'a, Thing = Fut<'a>> + 'static)>` because of return type
-LL |         Box::new((async { () },))
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Trait<'a, Thing = Fut<'_>>>`, found `Box<(...,)>`
-   |
-   = note: expected struct `Box<(dyn for<'a> Trait<'a, Thing = Fut<'a>> + 'static)>`
-              found struct `Box<({async block@$DIR/issue-90014-tait2.rs:27:19: 27:31},)>`
-   = help: `({async block@$DIR/issue-90014-tait2.rs:27:19: 27:31},)` implements `Trait` so you could box the found value and coerce it to the trait object `Box<dyn Trait>`, you will have to change the expected type as well
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/generic-associated-types/issue-91139.migrate.stderr b/tests/ui/generic-associated-types/issue-91139.migrate.stderr
deleted file mode 100644
index e3b658558e328..0000000000000
--- a/tests/ui/generic-associated-types/issue-91139.migrate.stderr
+++ /dev/null
@@ -1,7 +0,0 @@
-error: expected identifier, found `<<`
-  --> $DIR/issue-91139.rs:1:1
-   |
-   | ^^ expected identifier
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/generic-associated-types/issue-92096.migrate.stderr b/tests/ui/generic-associated-types/issue-92096.migrate.stderr
deleted file mode 100644
index ce1fd6dd9831f..0000000000000
--- a/tests/ui/generic-associated-types/issue-92096.migrate.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-error[E0311]: the parameter type `C` may not live long enough
-  --> $DIR/issue-92096.rs:19:33
-   |
-LL | fn call_connect<C>(c: &'_ C) -> impl '_ + Future + Send
-   |                                 ^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `C` will meet its required lifetime bounds
-   |
-help: consider adding an explicit lifetime bound...
-   |
-LL |     C: Client + Send + Sync + 'a,
-   |                             ++++
-
-error[E0311]: the parameter type `C` may not live long enough
-  --> $DIR/issue-92096.rs:19:33
-   |
-LL | fn call_connect<C>(c: &'_ C) -> impl '_ + Future + Send
-   |                                 ^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `C` will meet its required lifetime bounds
-   |
-help: consider adding an explicit lifetime bound...
-   |
-LL |     C: Client + Send + Sync + 'a,
-   |                             ++++
-
-error: aborting due to 2 previous errors
-
diff --git a/tests/ui/generic-associated-types/trait-objects.base.stderr b/tests/ui/generic-associated-types/trait-objects.base.stderr
deleted file mode 100644
index fe9ab165d4af4..0000000000000
--- a/tests/ui/generic-associated-types/trait-objects.base.stderr
+++ /dev/null
@@ -1,51 +0,0 @@
-error[E0038]: the trait `StreamingIterator` is not dyn compatible
-  --> $DIR/trait-objects.rs:13:21
-   |
-LL | fn min_size(x: &mut dyn for<'a> StreamingIterator<Item<'a> = &'a i32>) -> usize {
-   |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `StreamingIterator` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/trait-objects.rs:7:10
-   |
-LL | trait StreamingIterator {
-   |       ----------------- this trait is not dyn compatible...
-LL |     type Item<'a> where Self: 'a;
-   |          ^^^^ ...because it contains the generic associated type `Item`
-   = help: consider moving `Item` to another trait
-
-error[E0038]: the trait `StreamingIterator` is not dyn compatible
-  --> $DIR/trait-objects.rs:15:7
-   |
-LL |     x.size_hint().0
-   |       ^^^^^^^^^ `StreamingIterator` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/trait-objects.rs:7:10
-   |
-LL | trait StreamingIterator {
-   |       ----------------- this trait is not dyn compatible...
-LL |     type Item<'a> where Self: 'a;
-   |          ^^^^ ...because it contains the generic associated type `Item`
-   = help: consider moving `Item` to another trait
-
-error[E0038]: the trait `StreamingIterator` is not dyn compatible
-  --> $DIR/trait-objects.rs:15:5
-   |
-LL |     x.size_hint().0
-   |     ^^^^^^^^^^^^^ `StreamingIterator` is not dyn compatible
-   |
-note: for a trait to be dyn compatible it needs to allow building a vtable
-      for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
-  --> $DIR/trait-objects.rs:7:10
-   |
-LL | trait StreamingIterator {
-   |       ----------------- this trait is not dyn compatible...
-LL |     type Item<'a> where Self: 'a;
-   |          ^^^^ ...because it contains the generic associated type `Item`
-   = help: consider moving `Item` to another trait
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0038`.
diff --git a/tests/ui/generic-associated-types/trait-objects.extended.stderr b/tests/ui/generic-associated-types/trait-objects.extended.stderr
deleted file mode 100644
index 9f9418e20b9dc..0000000000000
--- a/tests/ui/generic-associated-types/trait-objects.extended.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0521]: borrowed data escapes outside of function
-  --> $DIR/trait-objects.rs:15:5
-   |
-LL | fn min_size(x: &mut dyn for<'a> StreamingIterator<Item<'a> = &'a i32>) -> usize {
-   |             -  - let's call the lifetime of this reference `'1`
-   |             |
-   |             `x` is a reference that is only valid in the function body
-LL |
-LL |     x.size_hint().0
-   |     ^^^^^^^^^^^^^
-   |     |
-   |     `x` escapes the function body here
-   |     argument requires that `'1` must outlive `'static`
-   |
-   = note: due to current limitations in the borrow checker, this implies a `'static` lifetime
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0521`.
diff --git a/tests/ui/generic-const-items/evaluatable-bounds.unconstrained.stderr b/tests/ui/generic-const-items/evaluatable-bounds.unconstrained.stderr
deleted file mode 100644
index b6f9bdce1cb7a..0000000000000
--- a/tests/ui/generic-const-items/evaluatable-bounds.unconstrained.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error: unconstrained generic constant
-  --> $DIR/evaluatable-bounds.rs:16:5
-   |
-LL |     const ARRAY: [i32; Self::LEN];
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-help: try adding a `where` bound
-   |
-LL |     const ARRAY: [i32; Self::LEN] where [(); Self::LEN]:;
-   |                                   ++++++++++++++++++++++
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/higher-ranked/trait-bounds/hrtb-perfect-forwarding.polonius.stderr b/tests/ui/higher-ranked/trait-bounds/hrtb-perfect-forwarding.polonius.stderr
deleted file mode 100644
index 795484f110884..0000000000000
--- a/tests/ui/higher-ranked/trait-bounds/hrtb-perfect-forwarding.polonius.stderr
+++ /dev/null
@@ -1,71 +0,0 @@
-warning: function cannot return without recursing
-  --> $DIR/hrtb-perfect-forwarding.rs:16:1
-   |
-LL | / fn no_hrtb<'b, T>(mut t: T)
-LL | | where
-LL | |     T: Bar<&'b isize>,
-LL | | {
-...  |
-LL | |     no_hrtb(&mut t);
-   | |     --------------- recursive call site
-LL | | }
-   | |_^ cannot return without recursing
-   |
-   = note: `#[warn(unconditional_recursion)]` on by default
-   = help: a `loop` may express intention better if this is on purpose
-
-warning: function cannot return without recursing
-  --> $DIR/hrtb-perfect-forwarding.rs:25:1
-   |
-LL | / fn bar_hrtb<T>(mut t: T)
-LL | | where
-LL | |     T: for<'b> Bar<&'b isize>,
-LL | | {
-...  |
-LL | |     bar_hrtb(&mut t);
-   | |     ---------------- recursive call site
-LL | | }
-   | |_^ cannot return without recursing
-   |
-   = help: a `loop` may express intention better if this is on purpose
-
-warning: function cannot return without recursing
-  --> $DIR/hrtb-perfect-forwarding.rs:35:1
-   |
-LL | / fn foo_hrtb_bar_not<'b, T>(mut t: T)
-LL | | where
-LL | |     T: for<'a> Foo<&'a isize> + Bar<&'b isize>,
-LL | | {
-...  |
-LL | |     foo_hrtb_bar_not(&mut t);
-   | |     ------------------------ recursive call site
-LL | |
-LL | |
-LL | | }
-   | |_^ cannot return without recursing
-   |
-   = help: a `loop` may express intention better if this is on purpose
-
-error: higher-ranked subtype error
-  --> $DIR/hrtb-perfect-forwarding.rs:43:5
-   |
-LL |     foo_hrtb_bar_not(&mut t);
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: function cannot return without recursing
-  --> $DIR/hrtb-perfect-forwarding.rs:48:1
-   |
-LL | / fn foo_hrtb_bar_hrtb<T>(mut t: T)
-LL | | where
-LL | |     T: for<'a> Foo<&'a isize> + for<'b> Bar<&'b isize>,
-LL | | {
-LL | |     // OK -- now we have `T : for<'b> Bar<&'b isize>`.
-LL | |     foo_hrtb_bar_hrtb(&mut t);
-   | |     ------------------------- recursive call site
-LL | | }
-   | |_^ cannot return without recursing
-   |
-   = help: a `loop` may express intention better if this is on purpose
-
-error: aborting due to 1 previous error; 4 warnings emitted
-
diff --git a/tests/ui/impl-trait/auto-trait-coherence.next.stderr b/tests/ui/impl-trait/auto-trait-coherence.next.stderr
deleted file mode 100644
index cd91bfcb48d73..0000000000000
--- a/tests/ui/impl-trait/auto-trait-coherence.next.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<_>`
-  --> $DIR/auto-trait-coherence.rs:24:1
-   |
-LL | impl<T: Send> AnotherTrait for T {}
-   | -------------------------------- first implementation here
-...
-LL | impl AnotherTrait for D<OpaqueType> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `D<_>`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/impl-trait/auto-trait-coherence.old.stderr b/tests/ui/impl-trait/auto-trait-coherence.old.stderr
deleted file mode 100644
index cd91bfcb48d73..0000000000000
--- a/tests/ui/impl-trait/auto-trait-coherence.old.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<_>`
-  --> $DIR/auto-trait-coherence.rs:24:1
-   |
-LL | impl<T: Send> AnotherTrait for T {}
-   | -------------------------------- first implementation here
-...
-LL | impl AnotherTrait for D<OpaqueType> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `D<_>`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/impl-trait/coherence-treats-tait-ambig.current.stderr b/tests/ui/impl-trait/coherence-treats-tait-ambig.current.stderr
deleted file mode 100644
index 444f3d6689f20..0000000000000
--- a/tests/ui/impl-trait/coherence-treats-tait-ambig.current.stderr
+++ /dev/null
@@ -1,13 +0,0 @@
-error[E0119]: conflicting implementations of trait `Into<T>` for type `Foo`
-  --> $DIR/coherence-treats-tait-ambig.rs:10:1
-   |
-LL | impl Into<T> for Foo {
-   | ^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: conflicting implementation in crate `core`:
-           - impl<T, U> Into<U> for T
-             where U: From<T>;
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/impl-trait/multiple-lifetimes/error-handling.polonius.stderr b/tests/ui/impl-trait/multiple-lifetimes/error-handling.polonius.stderr
deleted file mode 100644
index c511081a86fff..0000000000000
--- a/tests/ui/impl-trait/multiple-lifetimes/error-handling.polonius.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error: lifetime may not live long enough
-  --> $DIR/error-handling.rs:22:16
-   |
-LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
-   |        --  -- lifetime `'b` defined here
-   |        |
-   |        lifetime `'a` defined here
-...
-LL |         let _: &'b i32 = *u.0;
-   |                ^^^^^^^ type annotation requires that `'a` must outlive `'b`
-   |
-   = help: consider adding the following bound: `'a: 'b`
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/infinite/infinite-instantiation.polonius.stderr b/tests/ui/infinite/infinite-instantiation.polonius.stderr
deleted file mode 100644
index f048c942f1a7b..0000000000000
--- a/tests/ui/infinite/infinite-instantiation.polonius.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error: reached the recursion limit while instantiating `function::<Option<Option<Option<...>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
-  --> $DIR/infinite-instantiation.rs:22:9
-   |
-LL |         function(counter - 1, t.to_option());
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-note: `function` defined here
-  --> $DIR/infinite-instantiation.rs:20:1
-   |
-LL | fn function<T:ToOpt + Clone>(counter: usize, t: T) {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   = note: the full type name has been written to '$TEST_BUILD_DIR/infinite/infinite-instantiation.polonius/infinite-instantiation.long-type.txt'
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/issues/issue-22638.polonius.stderr b/tests/ui/issues/issue-22638.polonius.stderr
deleted file mode 100644
index 3a94ed7bd3da2..0000000000000
--- a/tests/ui/issues/issue-22638.polonius.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error: reached the recursion limit while instantiating `A::matches::$CLOSURE`
-  --> $DIR/issue-22638.rs:56:9
-   |
-LL |         a.matches(f)
-   |         ^^^^^^^^^^^^
-   |
-note: `A::matches` defined here
-  --> $DIR/issue-22638.rs:15:5
-   |
-LL |     pub fn matches<F: Fn()>(&self, f: &F) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   = note: the full type name has been written to '$TEST_BUILD_DIR/issues/issue-22638.polonius/issue-22638.long-type.txt'
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/issues/issue-37311-type-length-limit/issue-37311.polonius.stderr b/tests/ui/issues/issue-37311-type-length-limit/issue-37311.polonius.stderr
deleted file mode 100644
index 08b4573dd0b81..0000000000000
--- a/tests/ui/issues/issue-37311-type-length-limit/issue-37311.polonius.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error: reached the recursion limit while instantiating `<(&(&(&(&(&(&(&(&(&(&(&(&(&(&(&(.....), ...), ...) as Foo>::recurse`
-  --> $DIR/issue-37311.rs:17:9
-   |
-LL |         (self, self).recurse();
-   |         ^^^^^^^^^^^^^^^^^^^^^^
-   |
-note: `<T as Foo>::recurse` defined here
-  --> $DIR/issue-37311.rs:16:5
-   |
-LL |     fn recurse(&self) {
-   |     ^^^^^^^^^^^^^^^^^
-   = note: the full type name has been written to '$TEST_BUILD_DIR/issues/issue-37311-type-length-limit/issue-37311.polonius/issue-37311.long-type.txt'
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/issues/issue-48728.current.stderr b/tests/ui/issues/issue-48728.current.stderr
deleted file mode 100644
index 2a1b4ff781854..0000000000000
--- a/tests/ui/issues/issue-48728.current.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0119]: conflicting implementations of trait `Clone` for type `Node<[_]>`
-  --> $DIR/issue-48728.rs:9:10
-   |
-LL | #[derive(Clone)]
-   |          ^^^^^ conflicting implementation for `Node<[_]>`
-...
-LL | impl<T: Clone + ?Sized> Clone for Node<[T]> {
-   | ------------------------------------------- first implementation here
-   |
-   = note: upstream crates may add a new impl of trait `std::clone::Clone` for type `[_]` in future versions
-   = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info)
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/issues/issue-67552.polonius.stderr b/tests/ui/issues/issue-67552.polonius.stderr
deleted file mode 100644
index ca42f87e81942..0000000000000
--- a/tests/ui/issues/issue-67552.polonius.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-error: reached the recursion limit while instantiating `rec::<&mut &mut &mut &mut &mut &... &mut &mut &mut &mut &mut Empty>`
-  --> $DIR/issue-67552.rs:28:9
-   |
-LL |         rec(identity(&mut it))
-   |         ^^^^^^^^^^^^^^^^^^^^^^
-   |
-note: `rec` defined here
-  --> $DIR/issue-67552.rs:21:1
-   |
-LL | / fn rec<T>(mut it: T)
-LL | | where
-LL | |     T: Iterator,
-   | |________________^
-   = note: the full type name has been written to '$TEST_BUILD_DIR/issues/issue-67552.polonius/issue-67552.long-type.txt'
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/issues/issue-8727.polonius.stderr b/tests/ui/issues/issue-8727.polonius.stderr
deleted file mode 100644
index 4fb8c2b3aff1c..0000000000000
--- a/tests/ui/issues/issue-8727.polonius.stderr
+++ /dev/null
@@ -1,26 +0,0 @@
-warning: function cannot return without recursing
-  --> $DIR/issue-8727.rs:7:1
-   |
-LL | fn generic<T>() {
-   | ^^^^^^^^^^^^^^^ cannot return without recursing
-LL |     generic::<Option<T>>();
-   |     ---------------------- recursive call site
-   |
-   = note: `#[warn(unconditional_recursion)]` on by default
-   = help: a `loop` may express intention better if this is on purpose
-
-error: reached the recursion limit while instantiating `generic::<Option<Option<Option<O...>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
-  --> $DIR/issue-8727.rs:8:5
-   |
-LL |     generic::<Option<T>>();
-   |     ^^^^^^^^^^^^^^^^^^^^^^
-   |
-note: `generic` defined here
-  --> $DIR/issue-8727.rs:7:1
-   |
-LL | fn generic<T>() {
-   | ^^^^^^^^^^^^^^^
-   = note: the full type name has been written to '$TEST_BUILD_DIR/issues/issue-8727.polonius/issue-8727.long-type.txt'
-
-error: aborting due to 1 previous error; 1 warning emitted
-
diff --git a/tests/ui/json/json-multiple.polonius.stderr b/tests/ui/json/json-multiple.polonius.stderr
deleted file mode 100644
index 0e4d442f299c3..0000000000000
--- a/tests/ui/json/json-multiple.polonius.stderr
+++ /dev/null
@@ -1 +0,0 @@
-{"artifact":"$TEST_BUILD_DIR/json-multiple.polonius/libjson_multiple.rlib","emit":"link"}
diff --git a/tests/ui/json/json-options.polonius.stderr b/tests/ui/json/json-options.polonius.stderr
deleted file mode 100644
index e21f6f85d162d..0000000000000
--- a/tests/ui/json/json-options.polonius.stderr
+++ /dev/null
@@ -1 +0,0 @@
-{"artifact":"$TEST_BUILD_DIR/json-options.polonius/libjson_options.rlib","emit":"link"}
diff --git a/tests/ui/lazy-type-alias/inherent-impls-overflow.classic.stderr b/tests/ui/lazy-type-alias/inherent-impls-overflow.classic.stderr
deleted file mode 100644
index 2f00a877142c0..0000000000000
--- a/tests/ui/lazy-type-alias/inherent-impls-overflow.classic.stderr
+++ /dev/null
@@ -1,43 +0,0 @@
-error[E0275]: overflow normalizing the type alias `Loop`
-  --> $DIR/inherent-impls-overflow.rs:7:13
-   |
-LL | type Loop = Loop;
-   |             ^^^^
-   |
-   = note: in case this is a recursive type alias, consider using a struct, enum, or union instead
-
-error[E0275]: overflow normalizing the type alias `Loop`
-  --> $DIR/inherent-impls-overflow.rs:9:1
-   |
-LL | impl Loop {}
-   | ^^^^^^^^^^^^
-   |
-   = note: in case this is a recursive type alias, consider using a struct, enum, or union instead
-
-error[E0275]: overflow normalizing the type alias `Poly0<(((((((...,),),),),),),)>`
-  --> $DIR/inherent-impls-overflow.rs:13:17
-   |
-LL | type Poly0<T> = Poly1<(T,)>;
-   |                 ^^^^^^^^^^^
-   |
-   = note: in case this is a recursive type alias, consider using a struct, enum, or union instead
-
-error[E0275]: overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>`
-  --> $DIR/inherent-impls-overflow.rs:16:17
-   |
-LL | type Poly1<T> = Poly0<(T,)>;
-   |                 ^^^^^^^^^^^
-   |
-   = note: in case this is a recursive type alias, consider using a struct, enum, or union instead
-
-error[E0275]: overflow normalizing the type alias `Poly1<(((((((...,),),),),),),)>`
-  --> $DIR/inherent-impls-overflow.rs:20:1
-   |
-LL | impl Poly0<()> {}
-   | ^^^^^^^^^^^^^^^^^
-   |
-   = note: in case this is a recursive type alias, consider using a struct, enum, or union instead
-
-error: aborting due to 5 previous errors
-
-For more information about this error, try `rustc --explain E0275`.
diff --git a/tests/ui/nll/get_default.polonius.stderr b/tests/ui/nll/get_default.polonius.stderr
deleted file mode 100644
index 613d06cce9156..0000000000000
--- a/tests/ui/nll/get_default.polonius.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable
-  --> $DIR/get_default.rs:32:17
-   |
-LL | fn err(map: &mut Map) -> &String {
-   |             - let's call the lifetime of this reference `'1`
-LL |     loop {
-LL |         match map.get() {
-   |               --- immutable borrow occurs here
-LL |             Some(v) => {
-LL |                 map.set(String::new()); // Both AST and MIR error here
-   |                 ^^^ mutable borrow occurs here
-LL |
-LL |                 return v;
-   |                        - returning this value requires that `*map` is borrowed for `'1`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0502`.
diff --git a/tests/ui/nll/outlives-suggestion-simple.polonius.stderr b/tests/ui/nll/outlives-suggestion-simple.polonius.stderr
deleted file mode 100644
index c00288f2e3c73..0000000000000
--- a/tests/ui/nll/outlives-suggestion-simple.polonius.stderr
+++ /dev/null
@@ -1,124 +0,0 @@
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:6:5
-   |
-LL | fn foo1<'a, 'b>(x: &'a usize) -> &'b usize {
-   |         --  -- lifetime `'b` defined here
-   |         |
-   |         lifetime `'a` defined here
-LL |     x
-   |     ^ returning this value requires that `'a` must outlive `'b`
-   |
-   = help: consider adding the following bound: `'a: 'b`
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:10:5
-   |
-LL | fn foo2<'a>(x: &'a usize) -> &'static usize {
-   |         -- lifetime `'a` defined here
-LL |     x
-   |     ^ returning this value requires that `'a` must outlive `'static`
-   |
-   = help: consider replacing `'a` with `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:14:5
-   |
-LL | fn foo3<'a, 'b>(x: &'a usize, y: &'b usize) -> (&'b usize, &'a usize) {
-   |         --  -- lifetime `'b` defined here
-   |         |
-   |         lifetime `'a` defined here
-LL |     (x, y)
-   |     ^^^^^^ function was supposed to return data with lifetime `'b` but it is returning data with lifetime `'a`
-   |
-   = help: consider adding the following bound: `'a: 'b`
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:14:5
-   |
-LL | fn foo3<'a, 'b>(x: &'a usize, y: &'b usize) -> (&'b usize, &'a usize) {
-   |         --  -- lifetime `'b` defined here
-   |         |
-   |         lifetime `'a` defined here
-LL |     (x, y)
-   |     ^^^^^^ function was supposed to return data with lifetime `'a` but it is returning data with lifetime `'b`
-   |
-   = help: consider adding the following bound: `'b: 'a`
-
-help: `'a` and `'b` must be the same: replace one with the other
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:22:5
-   |
-LL | fn foo4<'a, 'b, 'c>(x: &'a usize) -> (&'b usize, &'c usize) {
-   |         --  -- lifetime `'b` defined here
-   |         |
-   |         lifetime `'a` defined here
-...
-LL |     (x, x)
-   |     ^^^^^^ returning this value requires that `'a` must outlive `'b`
-   |
-   = help: consider adding the following bound: `'a: 'b`
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:22:5
-   |
-LL | fn foo4<'a, 'b, 'c>(x: &'a usize) -> (&'b usize, &'c usize) {
-   |         --      -- lifetime `'c` defined here
-   |         |
-   |         lifetime `'a` defined here
-...
-LL |     (x, x)
-   |     ^^^^^^ returning this value requires that `'a` must outlive `'c`
-   |
-   = help: consider adding the following bound: `'a: 'c`
-
-help: add bound `'a: 'b + 'c`
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:31:9
-   |
-LL |     pub fn foo<'a>(x: &'a usize) -> Self {
-   |                -- lifetime `'a` defined here
-LL |         Foo { x }
-   |         ^^^^^^^^^ returning this value requires that `'a` must outlive `'static`
-   |
-   = help: consider replacing `'a` with `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:41:9
-   |
-LL | impl<'a> Bar<'a> {
-   |      -- lifetime `'a` defined here
-LL |     pub fn get<'b>(&self) -> &'b usize {
-   |                -- lifetime `'b` defined here
-LL |         self.x
-   |         ^^^^^^ returning this value requires that `'a` must outlive `'b`
-   |
-   = help: consider adding the following bound: `'a: 'b`
-
-error: lifetime may not live long enough
-  --> $DIR/outlives-suggestion-simple.rs:52:9
-   |
-LL | impl<'a> Baz<'a> {
-   |      -- lifetime `'a` defined here
-LL |     fn get<'b>(&'b self) -> &'a i32 {
-   |            -- lifetime `'b` defined here
-LL |         self.x
-   |         ^^^^^^ returning this value requires that `'b` must outlive `'a`
-   |
-   = help: consider adding the following bound: `'b: 'a`
-
-error[E0521]: borrowed data escapes outside of associated function
-  --> $DIR/outlives-suggestion-simple.rs:73:9
-   |
-LL |     fn get_bar(&self) -> Bar2 {
-   |                -----
-   |                |
-   |                `self` declared here, outside of the associated function body
-   |                `self` is a reference that is only valid in the associated function body
-LL |         Bar2::new(&self)
-   |         ^^^^^^^^^^^^^^^^ `self` escapes the associated function body here
-
-error: aborting due to 10 previous errors
-
-For more information about this error, try `rustc --explain E0521`.
diff --git a/tests/ui/nll/user-annotations/closure-substs.polonius.stderr b/tests/ui/nll/user-annotations/closure-substs.polonius.stderr
deleted file mode 100644
index af159a6cd1b85..0000000000000
--- a/tests/ui/nll/user-annotations/closure-substs.polonius.stderr
+++ /dev/null
@@ -1,61 +0,0 @@
-error: lifetime may not live long enough
-  --> $DIR/closure-substs.rs:8:16
-   |
-LL | fn foo<'a>() {
-   |        -- lifetime `'a` defined here
-...
-LL |         return x;
-   |                ^ returning this value requires that `'a` must outlive `'static`
-   |
-   = help: consider replacing `'a` with `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/closure-substs.rs:15:16
-   |
-LL |     |x: &i32| -> &'static i32 {
-   |         - let's call the lifetime of this reference `'1`
-LL |         return x;
-   |                ^ returning this value requires that `'1` must outlive `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/closure-substs.rs:15:16
-   |
-LL |     |x: &i32| -> &'static i32 {
-   |         -        - let's call the lifetime of this reference `'2`
-   |         |
-   |         let's call the lifetime of this reference `'1`
-LL |         return x;
-   |                ^ returning this value requires that `'1` must outlive `'2`
-
-error: lifetime may not live long enough
-  --> $DIR/closure-substs.rs:22:9
-   |
-LL | fn bar<'a>() {
-   |        -- lifetime `'a` defined here
-...
-LL |         b(x);
-   |         ^^^^ argument requires that `'a` must outlive `'static`
-   |
-   = help: consider replacing `'a` with `'static`
-
-error[E0521]: borrowed data escapes outside of closure
-  --> $DIR/closure-substs.rs:29:9
-   |
-LL |     |x: &i32, b: fn(&'static i32)| {
-   |      - `x` is a reference that is only valid in the closure body
-LL |         b(x);
-   |         ^^^^ `x` escapes the closure body here
-
-error[E0521]: borrowed data escapes outside of closure
-  --> $DIR/closure-substs.rs:29:9
-   |
-LL |     |x: &i32, b: fn(&'static i32)| {
-   |      -        - `b` declared here, outside of the closure body
-   |      |
-   |      `x` is a reference that is only valid in the closure body
-LL |         b(x);
-   |         ^^^^ `x` escapes the closure body here
-
-error: aborting due to 6 previous errors
-
-For more information about this error, try `rustc --explain E0521`.
diff --git a/tests/ui/pattern/usefulness/empty-types.min_exh_pats.stderr b/tests/ui/pattern/usefulness/empty-types.min_exh_pats.stderr
deleted file mode 100644
index cf37bf67e860b..0000000000000
--- a/tests/ui/pattern/usefulness/empty-types.min_exh_pats.stderr
+++ /dev/null
@@ -1,727 +0,0 @@
-error: unreachable pattern
-  --> $DIR/empty-types.rs:51:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-note: the lint level is defined here
-  --> $DIR/empty-types.rs:17:9
-   |
-LL | #![deny(unreachable_patterns)]
-   |         ^^^^^^^^^^^^^^^^^^^^
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:54:9
-   |
-LL |         _x => {}
-   |         ^^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error[E0004]: non-exhaustive patterns: type `&!` is non-empty
-  --> $DIR/empty-types.rs:58:11
-   |
-LL |     match ref_never {}
-   |           ^^^^^^^^^
-   |
-   = note: the matched value is of type `&!`
-   = note: references are always considered inhabited
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match ref_never {
-LL +         _ => todo!(),
-LL +     }
-   |
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:73:9
-   |
-LL |         (_, _) => {}
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `(u32, !)` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:80:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `(!, !)` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:83:9
-   |
-LL |         (_, _) => {}
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `(!, !)` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:87:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error[E0004]: non-exhaustive patterns: `Ok(_)` not covered
-  --> $DIR/empty-types.rs:91:11
-   |
-LL |     match res_u32_never {}
-   |           ^^^^^^^^^^^^^ pattern `Ok(_)` not covered
-   |
-note: `Result<u32, !>` defined here
-  --> $SRC_DIR/core/src/result.rs:LL:COL
-  ::: $SRC_DIR/core/src/result.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Result<u32, !>`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~     match res_u32_never {
-LL +         Ok(_) => todo!(),
-LL +     }
-   |
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:99:9
-   |
-LL |         Err(_) => {}
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:104:9
-   |
-LL |         Err(_) => {}
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error[E0004]: non-exhaustive patterns: `Ok(1_u32..=u32::MAX)` not covered
-  --> $DIR/empty-types.rs:101:11
-   |
-LL |     match res_u32_never {
-   |           ^^^^^^^^^^^^^ pattern `Ok(1_u32..=u32::MAX)` not covered
-   |
-note: `Result<u32, !>` defined here
-  --> $SRC_DIR/core/src/result.rs:LL:COL
-  ::: $SRC_DIR/core/src/result.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Result<u32, !>`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         Err(_) => {},
-LL ~         Ok(1_u32..=u32::MAX) => todo!()
-   |
-
-error[E0005]: refutable pattern in local binding
-  --> $DIR/empty-types.rs:108:9
-   |
-LL |     let Ok(_x) = res_u32_never.as_ref();
-   |         ^^^^^^ pattern `Err(_)` not covered
-   |
-   = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
-   = note: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
-   = note: the matched value is of type `Result<&u32, &!>`
-help: you might want to use `let else` to handle the variant that isn't matched
-   |
-LL |     let Ok(_x) = res_u32_never.as_ref() else { todo!() };
-   |                                         ++++++++++++++++
-
-error[E0005]: refutable pattern in local binding
-  --> $DIR/empty-types.rs:112:9
-   |
-LL |     let Ok(_x) = &res_u32_never;
-   |         ^^^^^^ pattern `&Err(_)` not covered
-   |
-   = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
-   = note: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
-   = note: the matched value is of type `&Result<u32, !>`
-help: you might want to use `let else` to handle the variant that isn't matched
-   |
-LL |     let Ok(_x) = &res_u32_never else { todo!() };
-   |                                 ++++++++++++++++
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:119:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:123:9
-   |
-LL |         Ok(_) => {}
-   |         ^^^^^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:126:9
-   |
-LL |         Ok(_) => {}
-   |         ^^^^^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:127:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:130:9
-   |
-LL |         Ok(_) => {}
-   |         ^^^^^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:131:9
-   |
-LL |         Err(_) => {}
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:140:13
-   |
-LL |             _ => {}
-   |             ^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:143:13
-   |
-LL |             _ if false => {}
-   |             ^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:152:13
-   |
-LL |             Some(_) => {}
-   |             ^^^^^^^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:156:13
-   |
-LL |             None => {}
-   |             ---- matches all the values already
-LL |             _ => {}
-   |             ^ unreachable pattern
-
-error[E0004]: non-exhaustive patterns: `Some(_)` not covered
-  --> $DIR/empty-types.rs:165:15
-   |
-LL |         match *ref_opt_void {
-   |               ^^^^^^^^^^^^^ pattern `Some(_)` not covered
-   |
-note: `Option<Void>` defined here
-  --> $SRC_DIR/core/src/option.rs:LL:COL
-  ::: $SRC_DIR/core/src/option.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Option<Void>`
-   = note: `Void` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~             None => {},
-LL +             Some(_) => todo!()
-   |
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:208:13
-   |
-LL |             _ => {}
-   |             ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:213:13
-   |
-LL |             _ => {}
-   |             ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:218:13
-   |
-LL |             _ => {}
-   |             ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:223:13
-   |
-LL |             _ => {}
-   |             ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:229:13
-   |
-LL |             _ => {}
-   |             ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:288:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:291:9
-   |
-LL |         (_, _) => {}
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `(!, !)` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:294:9
-   |
-LL |         Ok(_) => {}
-   |         ^^^^^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:295:9
-   |
-LL |         Err(_) => {}
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `Result<!, !>` is uninhabited
-
-error[E0004]: non-exhaustive patterns: type `(u32, !)` is non-empty
-  --> $DIR/empty-types.rs:316:11
-   |
-LL |     match *x {}
-   |           ^^
-   |
-   = note: the matched value is of type `(u32, !)`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match *x {
-LL +         _ => todo!(),
-LL ~     }
-   |
-
-error[E0004]: non-exhaustive patterns: type `(!, !)` is non-empty
-  --> $DIR/empty-types.rs:318:11
-   |
-LL |     match *x {}
-   |           ^^
-   |
-   = note: the matched value is of type `(!, !)`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match *x {
-LL +         _ => todo!(),
-LL ~     }
-   |
-
-error[E0004]: non-exhaustive patterns: `Ok(_)` and `Err(_)` not covered
-  --> $DIR/empty-types.rs:320:11
-   |
-LL |     match *x {}
-   |           ^^ patterns `Ok(_)` and `Err(_)` not covered
-   |
-note: `Result<!, !>` defined here
-  --> $SRC_DIR/core/src/result.rs:LL:COL
-  ::: $SRC_DIR/core/src/result.rs:LL:COL
-   |
-   = note: not covered
-  ::: $SRC_DIR/core/src/result.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Result<!, !>`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
-   |
-LL ~     match *x {
-LL +         Ok(_) | Err(_) => todo!(),
-LL ~     }
-   |
-
-error[E0004]: non-exhaustive patterns: type `[!; 3]` is non-empty
-  --> $DIR/empty-types.rs:322:11
-   |
-LL |     match *x {}
-   |           ^^
-   |
-   = note: the matched value is of type `[!; 3]`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match *x {
-LL +         _ => todo!(),
-LL ~     }
-   |
-
-error[E0004]: non-exhaustive patterns: type `&[!]` is non-empty
-  --> $DIR/empty-types.rs:327:11
-   |
-LL |     match slice_never {}
-   |           ^^^^^^^^^^^
-   |
-   = note: the matched value is of type `&[!]`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match slice_never {
-LL +         _ => todo!(),
-LL +     }
-   |
-
-error[E0004]: non-exhaustive patterns: `&[_, ..]` not covered
-  --> $DIR/empty-types.rs:329:11
-   |
-LL |     match slice_never {
-   |           ^^^^^^^^^^^ pattern `&[_, ..]` not covered
-   |
-   = note: the matched value is of type `&[!]`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         [] => {},
-LL +         &[_, ..] => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: `&[]`, `&[_]` and `&[_, _]` not covered
-  --> $DIR/empty-types.rs:338:11
-   |
-LL |     match slice_never {
-   |           ^^^^^^^^^^^ patterns `&[]`, `&[_]` and `&[_, _]` not covered
-   |
-   = note: the matched value is of type `&[!]`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
-   |
-LL ~         [_, _, _, ..] => {},
-LL +         &[] | &[_] | &[_, _] => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: `&[]` and `&[_, ..]` not covered
-  --> $DIR/empty-types.rs:352:11
-   |
-LL |     match slice_never {
-   |           ^^^^^^^^^^^ patterns `&[]` and `&[_, ..]` not covered
-   |
-   = note: the matched value is of type `&[!]`
-   = note: match arms with guards don't count towards exhaustivity
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
-   |
-LL ~         &[..] if false => {},
-LL +         &[] | &[_, ..] => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: type `[!]` is non-empty
-  --> $DIR/empty-types.rs:359:11
-   |
-LL |     match *slice_never {}
-   |           ^^^^^^^^^^^^
-   |
-   = note: the matched value is of type `[!]`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match *slice_never {
-LL +         _ => todo!(),
-LL +     }
-   |
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:369:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `[!; 3]` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:372:9
-   |
-LL |         [_, _, _] => {}
-   |         ^^^^^^^^^
-   |
-   = note: this pattern matches no values because `[!; 3]` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:375:9
-   |
-LL |         [_, ..] => {}
-   |         ^^^^^^^
-   |
-   = note: this pattern matches no values because `[!; 3]` is uninhabited
-
-error[E0004]: non-exhaustive patterns: type `[!; 0]` is non-empty
-  --> $DIR/empty-types.rs:389:11
-   |
-LL |     match array_0_never {}
-   |           ^^^^^^^^^^^^^
-   |
-   = note: the matched value is of type `[!; 0]`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match array_0_never {
-LL +         _ => todo!(),
-LL +     }
-   |
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:396:9
-   |
-LL |         [] => {}
-   |         -- matches all the values already
-LL |         _ => {}
-   |         ^ unreachable pattern
-
-error[E0004]: non-exhaustive patterns: `[]` not covered
-  --> $DIR/empty-types.rs:398:11
-   |
-LL |     match array_0_never {
-   |           ^^^^^^^^^^^^^ pattern `[]` not covered
-   |
-   = note: the matched value is of type `[!; 0]`
-   = note: match arms with guards don't count towards exhaustivity
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         [..] if false => {},
-LL +         [] => todo!()
-   |
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:417:9
-   |
-LL |         Some(_) => {}
-   |         ^^^^^^^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:422:9
-   |
-LL |         Some(_a) => {}
-   |         ^^^^^^^^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:427:9
-   |
-LL |         None => {}
-   |         ---- matches all the values already
-LL |         // !useful, !reachable
-LL |         _ => {}
-   |         ^ unreachable pattern
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:432:9
-   |
-LL |         None => {}
-   |         ---- matches all the values already
-LL |         // !useful, !reachable
-LL |         _a => {}
-   |         ^^ unreachable pattern
-
-error[E0004]: non-exhaustive patterns: `&Some(_)` not covered
-  --> $DIR/empty-types.rs:452:11
-   |
-LL |     match ref_opt_never {
-   |           ^^^^^^^^^^^^^ pattern `&Some(_)` not covered
-   |
-note: `Option<!>` defined here
-  --> $SRC_DIR/core/src/option.rs:LL:COL
-  ::: $SRC_DIR/core/src/option.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `&Option<!>`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         &None => {},
-LL +         &Some(_) => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: `Some(_)` not covered
-  --> $DIR/empty-types.rs:493:11
-   |
-LL |     match *ref_opt_never {
-   |           ^^^^^^^^^^^^^^ pattern `Some(_)` not covered
-   |
-note: `Option<!>` defined here
-  --> $SRC_DIR/core/src/option.rs:LL:COL
-  ::: $SRC_DIR/core/src/option.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Option<!>`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         None => {},
-LL +         Some(_) => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: `Err(_)` not covered
-  --> $DIR/empty-types.rs:541:11
-   |
-LL |     match *ref_res_never {
-   |           ^^^^^^^^^^^^^^ pattern `Err(_)` not covered
-   |
-note: `Result<!, !>` defined here
-  --> $SRC_DIR/core/src/result.rs:LL:COL
-  ::: $SRC_DIR/core/src/result.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Result<!, !>`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         Ok(_) => {},
-LL +         Err(_) => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: `Err(_)` not covered
-  --> $DIR/empty-types.rs:552:11
-   |
-LL |     match *ref_res_never {
-   |           ^^^^^^^^^^^^^^ pattern `Err(_)` not covered
-   |
-note: `Result<!, !>` defined here
-  --> $SRC_DIR/core/src/result.rs:LL:COL
-  ::: $SRC_DIR/core/src/result.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Result<!, !>`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         Ok(_a) => {},
-LL +         Err(_) => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: type `(u32, !)` is non-empty
-  --> $DIR/empty-types.rs:571:11
-   |
-LL |     match *ref_tuple_half_never {}
-   |           ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the matched value is of type `(u32, !)`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
-   |
-LL ~     match *ref_tuple_half_never {
-LL +         _ => todo!(),
-LL +     }
-   |
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:604:9
-   |
-LL |         _ => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:607:9
-   |
-LL |         _x => {}
-   |         ^^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:610:9
-   |
-LL |         _ if false => {}
-   |         ^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/empty-types.rs:613:9
-   |
-LL |         _x if false => {}
-   |         ^^
-   |
-   = note: this pattern matches no values because `!` is uninhabited
-
-error[E0004]: non-exhaustive patterns: `&_` not covered
-  --> $DIR/empty-types.rs:638:11
-   |
-LL |     match ref_never {
-   |           ^^^^^^^^^ pattern `&_` not covered
-   |
-   = note: the matched value is of type `&!`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-   = note: references are always considered inhabited
-   = note: match arms with guards don't count towards exhaustivity
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         &_a if false => {},
-LL +         &_ => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: `Ok(_)` not covered
-  --> $DIR/empty-types.rs:654:11
-   |
-LL |     match *ref_result_never {
-   |           ^^^^^^^^^^^^^^^^^ pattern `Ok(_)` not covered
-   |
-note: `Result<!, !>` defined here
-  --> $SRC_DIR/core/src/result.rs:LL:COL
-  ::: $SRC_DIR/core/src/result.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Result<!, !>`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         Err(_) => {},
-LL +         Ok(_) => todo!()
-   |
-
-error[E0004]: non-exhaustive patterns: `Some(_)` not covered
-  --> $DIR/empty-types.rs:674:11
-   |
-LL |     match *x {
-   |           ^^ pattern `Some(_)` not covered
-   |
-note: `Option<Result<!, !>>` defined here
-  --> $SRC_DIR/core/src/option.rs:LL:COL
-  ::: $SRC_DIR/core/src/option.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Option<Result<!, !>>`
-   = note: `Result<!, !>` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         None => {},
-LL +         Some(_) => todo!()
-   |
-
-error: aborting due to 64 previous errors
-
-Some errors have detailed explanations: E0004, E0005.
-For more information about an error, try `rustc --explain E0004`.
diff --git a/tests/ui/pattern/usefulness/match-privately-empty.min_exhaustive_patterns.stderr b/tests/ui/pattern/usefulness/match-privately-empty.min_exhaustive_patterns.stderr
deleted file mode 100644
index 261a4b3353f23..0000000000000
--- a/tests/ui/pattern/usefulness/match-privately-empty.min_exhaustive_patterns.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0004]: non-exhaustive patterns: `Some(Private { misc: true, .. })` not covered
-  --> $DIR/match-privately-empty.rs:15:11
-   |
-LL |     match private::DATA {
-   |           ^^^^^^^^^^^^^ pattern `Some(Private { misc: true, .. })` not covered
-   |
-note: `Option<Private>` defined here
-  --> $SRC_DIR/core/src/option.rs:LL:COL
-  ::: $SRC_DIR/core/src/option.rs:LL:COL
-   |
-   = note: not covered
-   = note: the matched value is of type `Option<Private>`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         Some(private::Private { misc: false, .. }) => {},
-LL +         Some(Private { misc: true, .. }) => todo!()
-   |
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0004`.
diff --git a/tests/ui/pattern/usefulness/slice_of_empty.min_exhaustive_patterns.stderr b/tests/ui/pattern/usefulness/slice_of_empty.min_exhaustive_patterns.stderr
deleted file mode 100644
index f24ce154d149d..0000000000000
--- a/tests/ui/pattern/usefulness/slice_of_empty.min_exhaustive_patterns.stderr
+++ /dev/null
@@ -1,30 +0,0 @@
-error[E0004]: non-exhaustive patterns: `&[_, ..]` not covered
-  --> $DIR/slice_of_empty.rs:10:11
-   |
-LL |     match nevers {
-   |           ^^^^^^ pattern `&[_, ..]` not covered
-   |
-   = note: the matched value is of type `&[!]`
-   = note: `!` is uninhabited but is not being matched by value, so a wildcard `_` is required
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern or an explicit pattern as shown
-   |
-LL ~         &[] => (),
-LL ~         &[_, ..] => todo!(),
-   |
-
-error[E0004]: non-exhaustive patterns: `&[]` and `&[_, _, ..]` not covered
-  --> $DIR/slice_of_empty.rs:21:11
-   |
-LL |     match nevers {
-   |           ^^^^^^ patterns `&[]` and `&[_, _, ..]` not covered
-   |
-   = note: the matched value is of type `&[!]`
-help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern, a match arm with multiple or-patterns as shown, or multiple match arms
-   |
-LL ~         &[_] => (),
-LL ~         &[] | &[_, _, ..] => todo!(),
-   |
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0004`.
diff --git a/tests/ui/recursion/issue-38591-non-regular-dropck-recursion.polonius.stderr b/tests/ui/recursion/issue-38591-non-regular-dropck-recursion.polonius.stderr
deleted file mode 100644
index ff1a127e63e3e..0000000000000
--- a/tests/ui/recursion/issue-38591-non-regular-dropck-recursion.polonius.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error: reached the recursion limit while instantiating `std::ptr::drop_in_place::<S<fn(f...)))))))))))))))))))))))))))))>))`
-  --> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
-   |
-LL | pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-note: `std::ptr::drop_in_place` defined here
-  --> $SRC_DIR/core/src/ptr/mod.rs:LL:COL
-   |
-LL | pub unsafe fn drop_in_place<T: ?Sized>(to_drop: *mut T) {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   = note: the full type name has been written to '$TEST_BUILD_DIR/recursion/issue-38591-non-regular-dropck-recursion.polonius/issue-38591-non-regular-dropck-recursion.long-type.txt'
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/recursion/recursion.polonius.stderr b/tests/ui/recursion/recursion.polonius.stderr
deleted file mode 100644
index 737e71e884518..0000000000000
--- a/tests/ui/recursion/recursion.polonius.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error: reached the recursion limit while instantiating `test::<Cons<Cons<Cons<Cons<Cons<...>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>`
-  --> $DIR/recursion.rs:18:11
-   |
-LL |     _ => {test (n-1, i+1, Cons {head:2*i+1, tail:first}, Cons{head:i*i, tail:second})}
-   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-note: `test` defined here
-  --> $DIR/recursion.rs:16:1
-   |
-LL | fn test<T:Dot> (n:isize, i:isize, first:T, second:T) ->isize {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   = note: the full type name has been written to '$TEST_BUILD_DIR/recursion/recursion.polonius/recursion.long-type.txt'
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/rfcs/rfc-0000-never_patterns/unreachable.exh_pats.stderr b/tests/ui/rfcs/rfc-0000-never_patterns/unreachable.exh_pats.stderr
deleted file mode 100644
index d78f4a5f6ebb5..0000000000000
--- a/tests/ui/rfcs/rfc-0000-never_patterns/unreachable.exh_pats.stderr
+++ /dev/null
@@ -1,55 +0,0 @@
-error: unreachable pattern
-  --> $DIR/unreachable.rs:16:9
-   |
-LL |         Err(!),
-   |         ^^^^^^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-note: the lint level is defined here
-  --> $DIR/unreachable.rs:6:9
-   |
-LL | #![deny(unreachable_patterns)]
-   |         ^^^^^^^^^^^^^^^^^^^^
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:19:19
-   |
-LL |     let (Ok(_x) | Err(!)) = res_void;
-   |                   ^^^^^^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:21:12
-   |
-LL |     if let Err(!) = res_void {}
-   |            ^^^^^^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:23:24
-   |
-LL |     if let (Ok(true) | Err(!)) = res_void {}
-   |                        ^^^^^^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:25:23
-   |
-LL |     for (Ok(mut _x) | Err(!)) in [res_void] {}
-   |                       ^^^^^^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:29:18
-   |
-LL | fn foo((Ok(_x) | Err(!)): Result<bool, Void>) {}
-   |                  ^^^^^^
-   |
-   = note: this pattern matches no values because `Void` is uninhabited
-
-error: aborting due to 6 previous errors
-
diff --git a/tests/ui/rfcs/rfc-0000-never_patterns/unreachable.normal.stderr b/tests/ui/rfcs/rfc-0000-never_patterns/unreachable.normal.stderr
deleted file mode 100644
index a3bf8e80ecec7..0000000000000
--- a/tests/ui/rfcs/rfc-0000-never_patterns/unreachable.normal.stderr
+++ /dev/null
@@ -1,44 +0,0 @@
-error: unreachable pattern
-  --> $DIR/unreachable.rs:16:9
-   |
-LL |         Err(!),
-   |         ^^^^^^
-   |
-note: the lint level is defined here
-  --> $DIR/unreachable.rs:6:9
-   |
-LL | #![deny(unreachable_patterns)]
-   |         ^^^^^^^^^^^^^^^^^^^^
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:19:19
-   |
-LL |     let (Ok(_x) | Err(!)) = res_void;
-   |                   ^^^^^^
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:21:12
-   |
-LL |     if let Err(!) = res_void {}
-   |            ^^^^^^
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:23:24
-   |
-LL |     if let (Ok(true) | Err(!)) = res_void {}
-   |                        ^^^^^^
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:25:23
-   |
-LL |     for (Ok(mut _x) | Err(!)) in [res_void] {}
-   |                       ^^^^^^
-
-error: unreachable pattern
-  --> $DIR/unreachable.rs:29:18
-   |
-LL | fn foo((Ok(_x) | Err(!)): Result<bool, Void>) {}
-   |                  ^^^^^^
-
-error: aborting due to 6 previous errors
-
diff --git a/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.current.stderr b/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.current.stderr
deleted file mode 100644
index f2727336bc56b..0000000000000
--- a/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.current.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0277]: the trait bound `Something: Termination` is not satisfied
-  --> $DIR/issue-103052-2.rs:15:22
-   |
-LL |         fn main() -> Something {
-   |                      ^^^^^^^^^ the trait `Termination` is not implemented for `Something`
-   |
-note: required by a bound in `Main::main::{opaque#0}`
-  --> $DIR/issue-103052-2.rs:9:27
-   |
-LL |         fn main() -> impl std::process::Termination;
-   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Main::main::{opaque#0}`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.next.stderr b/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.next.stderr
deleted file mode 100644
index 4bb420664f7f4..0000000000000
--- a/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.next.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0277]: the trait bound `Something: Termination` is not satisfied
-  --> $DIR/issue-103052-2.rs:15:22
-   |
-LL |         fn main() -> Something {
-   |                      ^^^^^^^^^ the trait `Termination` is not implemented for `Something`
-   |
-note: required by a bound in `Main::{opaque#0}`
-  --> $DIR/issue-103052-2.rs:9:27
-   |
-LL |         fn main() -> impl std::process::Termination;
-   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Main::{opaque#0}`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/rfcs/rfc-2497-if-let-chains/disallowed-positions.nofeature.stderr b/tests/ui/rfcs/rfc-2497-if-let-chains/disallowed-positions.nofeature.stderr
deleted file mode 100644
index f556ecf7f91d3..0000000000000
--- a/tests/ui/rfcs/rfc-2497-if-let-chains/disallowed-positions.nofeature.stderr
+++ /dev/null
@@ -1,1111 +0,0 @@
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:31:9
-   |
-LL |     if (let 0 = 1) {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:31:9
-   |
-LL |     if (let 0 = 1) {}
-   |         ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:34:11
-   |
-LL |     if (((let 0 = 1))) {}
-   |           ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:34:11
-   |
-LL |     if (((let 0 = 1))) {}
-   |           ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:37:9
-   |
-LL |     if (let 0 = 1) && true {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:37:9
-   |
-LL |     if (let 0 = 1) && true {}
-   |         ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:40:17
-   |
-LL |     if true && (let 0 = 1) {}
-   |                 ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:40:17
-   |
-LL |     if true && (let 0 = 1) {}
-   |                 ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:43:9
-   |
-LL |     if (let 0 = 1) && (let 0 = 1) {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:43:9
-   |
-LL |     if (let 0 = 1) && (let 0 = 1) {}
-   |         ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:43:24
-   |
-LL |     if (let 0 = 1) && (let 0 = 1) {}
-   |                        ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:43:24
-   |
-LL |     if (let 0 = 1) && (let 0 = 1) {}
-   |                        ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:47:35
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                   ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:47:35
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:47:48
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                                ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:47:35
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:47:61
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                                             ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:47:35
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:56:12
-   |
-LL |     while (let 0 = 1) {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:56:12
-   |
-LL |     while (let 0 = 1) {}
-   |            ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:59:14
-   |
-LL |     while (((let 0 = 1))) {}
-   |              ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:59:14
-   |
-LL |     while (((let 0 = 1))) {}
-   |              ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:62:12
-   |
-LL |     while (let 0 = 1) && true {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:62:12
-   |
-LL |     while (let 0 = 1) && true {}
-   |            ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:65:20
-   |
-LL |     while true && (let 0 = 1) {}
-   |                    ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:65:20
-   |
-LL |     while true && (let 0 = 1) {}
-   |                    ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:68:12
-   |
-LL |     while (let 0 = 1) && (let 0 = 1) {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:68:12
-   |
-LL |     while (let 0 = 1) && (let 0 = 1) {}
-   |            ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:68:27
-   |
-LL |     while (let 0 = 1) && (let 0 = 1) {}
-   |                           ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:68:27
-   |
-LL |     while (let 0 = 1) && (let 0 = 1) {}
-   |                           ^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:72:38
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                      ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:72:38
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:72:51
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                                   ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:72:38
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:72:64
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                                                ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:72:38
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:95:9
-   |
-LL |     if &let 0 = 0 {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:98:9
-   |
-LL |     if !let 0 = 0 {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:100:9
-   |
-LL |     if *let 0 = 0 {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:102:9
-   |
-LL |     if -let 0 = 0 {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:110:9
-   |
-LL |     if (let 0 = 0)? {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:113:16
-   |
-LL |     if true || let 0 = 0 {}
-   |                ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `||` operators are not supported in let chain expressions
-  --> $DIR/disallowed-positions.rs:113:13
-   |
-LL |     if true || let 0 = 0 {}
-   |             ^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:115:17
-   |
-LL |     if (true || let 0 = 0) {}
-   |                 ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:117:25
-   |
-LL |     if true && (true || let 0 = 0) {}
-   |                         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:119:25
-   |
-LL |     if true || (true && let 0 = 0) {}
-   |                         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:123:12
-   |
-LL |     if x = let 0 = 0 {}
-   |            ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:126:15
-   |
-LL |     if true..(let 0 = 0) {}
-   |               ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:129:11
-   |
-LL |     if ..(let 0 = 0) {}
-   |           ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:131:9
-   |
-LL |     if (let 0 = 0).. {}
-   |         ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:135:8
-   |
-LL |     if let Range { start: _, end: _ } = true..true && false {}
-   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:138:8
-   |
-LL |     if let Range { start: _, end: _ } = true..true || false {}
-   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:144:8
-   |
-LL |     if let Range { start: F, end } = F..|| true {}
-   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:150:8
-   |
-LL |     if let Range { start: true, end } = t..&&false {}
-   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:154:19
-   |
-LL |     if let true = let true = true {}
-   |                   ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:160:12
-   |
-LL |     while &let 0 = 0 {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:163:12
-   |
-LL |     while !let 0 = 0 {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:165:12
-   |
-LL |     while *let 0 = 0 {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:167:12
-   |
-LL |     while -let 0 = 0 {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:175:12
-   |
-LL |     while (let 0 = 0)? {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:178:19
-   |
-LL |     while true || let 0 = 0 {}
-   |                   ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `||` operators are not supported in let chain expressions
-  --> $DIR/disallowed-positions.rs:178:16
-   |
-LL |     while true || let 0 = 0 {}
-   |                ^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:180:20
-   |
-LL |     while (true || let 0 = 0) {}
-   |                    ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:182:28
-   |
-LL |     while true && (true || let 0 = 0) {}
-   |                            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:184:28
-   |
-LL |     while true || (true && let 0 = 0) {}
-   |                            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:188:15
-   |
-LL |     while x = let 0 = 0 {}
-   |               ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:191:18
-   |
-LL |     while true..(let 0 = 0) {}
-   |                  ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:194:14
-   |
-LL |     while ..(let 0 = 0) {}
-   |              ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:196:12
-   |
-LL |     while (let 0 = 0).. {}
-   |            ^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:200:11
-   |
-LL |     while let Range { start: _, end: _ } = true..true && false {}
-   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:203:11
-   |
-LL |     while let Range { start: _, end: _ } = true..true || false {}
-   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:209:11
-   |
-LL |     while let Range { start: F, end } = F..|| true {}
-   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:215:11
-   |
-LL |     while let Range { start: true, end } = t..&&false {}
-   |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:219:22
-   |
-LL |     while let true = let true = true {}
-   |                      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:236:6
-   |
-LL |     &let 0 = 0;
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:239:6
-   |
-LL |     !let 0 = 0;
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:241:6
-   |
-LL |     *let 0 = 0;
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:243:6
-   |
-LL |     -let 0 = 0;
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:245:13
-   |
-LL |     let _ = let _ = 3;
-   |             ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:253:6
-   |
-LL |     (let 0 = 0)?;
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:256:13
-   |
-LL |     true || let 0 = 0;
-   |             ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:258:14
-   |
-LL |     (true || let 0 = 0);
-   |              ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:260:22
-   |
-LL |     true && (true || let 0 = 0);
-   |                      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:264:9
-   |
-LL |     x = let 0 = 0;
-   |         ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:267:12
-   |
-LL |     true..(let 0 = 0);
-   |            ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:269:8
-   |
-LL |     ..(let 0 = 0);
-   |        ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:271:6
-   |
-LL |     (let 0 = 0)..;
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:274:6
-   |
-LL |     (let Range { start: _, end: _ } = true..true || false);
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:278:6
-   |
-LL |     (let true = let true = true);
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:278:17
-   |
-LL |     (let true = let true = true);
-   |                 ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:284:25
-   |
-LL |         let x = true && let y = 1;
-   |                         ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:290:19
-   |
-LL |         [1, 2, 3][let _ = ()]
-   |                   ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:295:6
-   |
-LL |     &let 0 = 0
-   |      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:306:17
-   |
-LL |         true && let 1 = 1
-   |                 ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:311:17
-   |
-LL |         true && let 1 = 1
-   |                 ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:316:17
-   |
-LL |         true && let 1 = 1
-   |                 ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:327:17
-   |
-LL |         true && let 1 = 1
-   |                 ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expressions must be enclosed in braces to be used as const generic arguments
-  --> $DIR/disallowed-positions.rs:327:9
-   |
-LL |         true && let 1 = 1
-   |         ^^^^^^^^^^^^^^^^^
-   |
-help: enclose the `const` expression in braces
-   |
-LL |         { true && let 1 = 1 }
-   |         +                   +
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:337:9
-   |
-LL |     if (let Some(a) = opt && true) {
-   |         ^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:337:9
-   |
-LL |     if (let Some(a) = opt && true) {
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:341:9
-   |
-LL |     if (let Some(a) = opt) && true {
-   |         ^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:341:9
-   |
-LL |     if (let Some(a) = opt) && true {
-   |         ^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:344:9
-   |
-LL |     if (let Some(a) = opt) && (let Some(b) = a) {
-   |         ^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:344:9
-   |
-LL |     if (let Some(a) = opt) && (let Some(b) = a) {
-   |         ^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:344:32
-   |
-LL |     if (let Some(a) = opt) && (let Some(b) = a) {
-   |                                ^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:344:32
-   |
-LL |     if (let Some(a) = opt) && (let Some(b) = a) {
-   |                                ^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:351:9
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && b == 1 {
-   |         ^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:351:9
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && b == 1 {
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:351:31
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && b == 1 {
-   |                               ^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:351:31
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && b == 1 {
-   |                               ^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:355:9
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && true {
-   |         ^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:355:9
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && true {
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:355:31
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && true {
-   |                               ^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:355:31
-   |
-LL |     if (let Some(a) = opt && (let Some(b) = a)) && true {
-   |                               ^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:359:9
-   |
-LL |     if (let Some(a) = opt && (true)) && true {
-   |         ^^^^^^^^^^^^^^^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-note: `let`s wrapped in parentheses are not supported in a context with let chains
-  --> $DIR/disallowed-positions.rs:359:9
-   |
-LL |     if (let Some(a) = opt && (true)) && true {
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:375:22
-   |
-LL |     let x = (true && let y = 1);
-   |                      ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:380:20
-   |
-LL |         ([1, 2, 3][let _ = ()])
-   |                    ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:87:16
-   |
-LL |     use_expr!((let 0 = 1 && 0 == 0));
-   |                ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error: expected expression, found `let` statement
-  --> $DIR/disallowed-positions.rs:89:16
-   |
-LL |     use_expr!((let 0 = 1));
-   |                ^^^
-   |
-   = note: only supported directly in conditions of `if` and `while` expressions
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:47:8
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |        ^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:47:21
-   |
-LL |     if let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                     ^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:72:11
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |           ^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:72:24
-   |
-LL |     while let 0 = 1 && let 1 = 2 && (let 2 = 3 && let 3 = 4 && let 4 = 5) {}
-   |                        ^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:348:8
-   |
-LL |     if let Some(a) = opt && (true && true) {
-   |        ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:363:28
-   |
-LL |     if (true && (true)) && let Some(a) = opt {
-   |                            ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:365:18
-   |
-LL |     if (true) && let Some(a) = opt {
-   |                  ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:367:16
-   |
-LL |     if true && let Some(a) = opt {
-   |                ^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `let` expressions in this position are unstable
-  --> $DIR/disallowed-positions.rs:371:8
-   |
-LL |     if let true = (true && fun()) && (true) {
-   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #53667 <https://github.com/rust-lang/rust/issues/53667> for more information
-   = help: add `#![feature(let_chains)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:126:8
-   |
-LL |     if true..(let 0 = 0) {}
-   |        ^^^^^^^^^^^^^^^^^ expected `bool`, found `Range<bool>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<bool>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:135:12
-   |
-LL |     if let Range { start: _, end: _ } = true..true && false {}
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this expression has type `bool`
-   |            |
-   |            expected `bool`, found `Range<_>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<_>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:138:12
-   |
-LL |     if let Range { start: _, end: _ } = true..true || false {}
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this expression has type `bool`
-   |            |
-   |            expected `bool`, found `Range<_>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<_>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:144:12
-   |
-LL |     if let Range { start: F, end } = F..|| true {}
-   |            ^^^^^^^^^^^^^^^^^^^^^^^   - this expression has type `fn() -> bool`
-   |            |
-   |            expected fn pointer, found `Range<_>`
-   |
-   = note: expected fn pointer `fn() -> bool`
-                  found struct `std::ops::Range<_>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:150:12
-   |
-LL |     if let Range { start: true, end } = t..&&false {}
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^   - this expression has type `&&bool`
-   |            |
-   |            expected `bool`, found `Range<_>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<_>`
-
-error[E0277]: the `?` operator can only be applied to values that implement `Try`
-  --> $DIR/disallowed-positions.rs:106:20
-   |
-LL |         if let 0 = 0? {}
-   |                    ^^ the `?` operator cannot be applied to type `{integer}`
-   |
-   = help: the trait `Try` is not implemented for `{integer}`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:191:11
-   |
-LL |     while true..(let 0 = 0) {}
-   |           ^^^^^^^^^^^^^^^^^ expected `bool`, found `Range<bool>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<bool>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:200:15
-   |
-LL |     while let Range { start: _, end: _ } = true..true && false {}
-   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this expression has type `bool`
-   |               |
-   |               expected `bool`, found `Range<_>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<_>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:203:15
-   |
-LL |     while let Range { start: _, end: _ } = true..true || false {}
-   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this expression has type `bool`
-   |               |
-   |               expected `bool`, found `Range<_>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<_>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:209:15
-   |
-LL |     while let Range { start: F, end } = F..|| true {}
-   |               ^^^^^^^^^^^^^^^^^^^^^^^   - this expression has type `fn() -> bool`
-   |               |
-   |               expected fn pointer, found `Range<_>`
-   |
-   = note: expected fn pointer `fn() -> bool`
-                  found struct `std::ops::Range<_>`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:215:15
-   |
-LL |     while let Range { start: true, end } = t..&&false {}
-   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^   - this expression has type `&&bool`
-   |               |
-   |               expected `bool`, found `Range<_>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<_>`
-
-error[E0277]: the `?` operator can only be applied to values that implement `Try`
-  --> $DIR/disallowed-positions.rs:171:23
-   |
-LL |         while let 0 = 0? {}
-   |                       ^^ the `?` operator cannot be applied to type `{integer}`
-   |
-   = help: the trait `Try` is not implemented for `{integer}`
-
-error[E0308]: mismatched types
-  --> $DIR/disallowed-positions.rs:274:10
-   |
-LL |     (let Range { start: _, end: _ } = true..true || false);
-   |          ^^^^^^^^^^^^^^^^^^^^^^^^^^   ---- this expression has type `bool`
-   |          |
-   |          expected `bool`, found `Range<_>`
-   |
-   = note: expected type `bool`
-            found struct `std::ops::Range<_>`
-
-error[E0277]: the `?` operator can only be applied to values that implement `Try`
-  --> $DIR/disallowed-positions.rs:249:17
-   |
-LL |         let 0 = 0?;
-   |                 ^^ the `?` operator cannot be applied to type `{integer}`
-   |
-   = help: the trait `Try` is not implemented for `{integer}`
-
-error: aborting due to 114 previous errors
-
-Some errors have detailed explanations: E0277, E0308, E0658.
-For more information about an error, try `rustc --explain E0277`.
diff --git a/tests/ui/rmeta/emit-artifact-notifications.polonius.stderr b/tests/ui/rmeta/emit-artifact-notifications.polonius.stderr
deleted file mode 100644
index 255c7b370f9fd..0000000000000
--- a/tests/ui/rmeta/emit-artifact-notifications.polonius.stderr
+++ /dev/null
@@ -1 +0,0 @@
-{"artifact":"$TEST_BUILD_DIR/rmeta/emit-artifact-notifications.polonius/libemit_artifact_notifications.rmeta","emit":"metadata"}
diff --git a/tests/ui/rust-2024/safe-outside-extern.gated.stderr b/tests/ui/rust-2024/safe-outside-extern.gated.stderr
deleted file mode 100644
index e0b218281f365..0000000000000
--- a/tests/ui/rust-2024/safe-outside-extern.gated.stderr
+++ /dev/null
@@ -1,38 +0,0 @@
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:4:1
-   |
-LL | safe fn foo() {}
-   | ^^^^^^^^^^^^^^^^
-
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:8:1
-   |
-LL | safe static FOO: i32 = 1;
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:13:5
-   |
-LL |     safe fn foo();
-   |     ^^^^^^^^^^^^^^
-
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:19:5
-   |
-LL |     safe fn foo() {}
-   |     ^^^^^^^^^^^^^^^^
-
-error: function pointers cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:24:14
-   |
-LL | type FnPtr = safe fn(i32, i32) -> i32;
-   |              ^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: static items cannot be declared with `unsafe` safety qualifier outside of `extern` block
-  --> $DIR/safe-outside-extern.rs:28:1
-   |
-LL | unsafe static LOL: u8 = 0;
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 6 previous errors
-
diff --git a/tests/ui/rust-2024/safe-outside-extern.ungated.stderr b/tests/ui/rust-2024/safe-outside-extern.ungated.stderr
deleted file mode 100644
index 98a4c0eab921a..0000000000000
--- a/tests/ui/rust-2024/safe-outside-extern.ungated.stderr
+++ /dev/null
@@ -1,89 +0,0 @@
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:4:1
-   |
-LL | safe fn foo() {}
-   | ^^^^^^^^^^^^^^^^
-
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:8:1
-   |
-LL | safe static FOO: i32 = 1;
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:13:5
-   |
-LL |     safe fn foo();
-   |     ^^^^^^^^^^^^^^
-
-error: items outside of `unsafe extern { }` cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:19:5
-   |
-LL |     safe fn foo() {}
-   |     ^^^^^^^^^^^^^^^^
-
-error: function pointers cannot be declared with `safe` safety qualifier
-  --> $DIR/safe-outside-extern.rs:24:14
-   |
-LL | type FnPtr = safe fn(i32, i32) -> i32;
-   |              ^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: static items cannot be declared with `unsafe` safety qualifier outside of `extern` block
-  --> $DIR/safe-outside-extern.rs:28:1
-   |
-LL | unsafe static LOL: u8 = 0;
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
-  --> $DIR/safe-outside-extern.rs:4:1
-   |
-LL | safe fn foo() {}
-   | ^^^^
-   |
-   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
-   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
-  --> $DIR/safe-outside-extern.rs:8:1
-   |
-LL | safe static FOO: i32 = 1;
-   | ^^^^
-   |
-   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
-   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
-  --> $DIR/safe-outside-extern.rs:13:5
-   |
-LL |     safe fn foo();
-   |     ^^^^
-   |
-   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
-   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
-  --> $DIR/safe-outside-extern.rs:19:5
-   |
-LL |     safe fn foo() {}
-   |     ^^^^
-   |
-   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
-   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
-  --> $DIR/safe-outside-extern.rs:24:14
-   |
-LL | type FnPtr = safe fn(i32, i32) -> i32;
-   |              ^^^^
-   |
-   = note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
-   = help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
-   = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
-
-error: aborting due to 11 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/safe-impl-trait.ungated.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/safe-impl-trait.ungated.stderr
deleted file mode 100644
index 80e7a45f57e79..0000000000000
--- a/tests/ui/rust-2024/unsafe-extern-blocks/safe-impl-trait.ungated.stderr
+++ /dev/null
@@ -1,8 +0,0 @@
-error: expected one of `!` or `::`, found keyword `impl`
-  --> $DIR/safe-impl-trait.rs:5:6
-   |
-LL | safe impl Bar for () { }
-   |      ^^^^ expected one of `!` or `::`
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.gated.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.gated.stderr
deleted file mode 100644
index de84037f28c58..0000000000000
--- a/tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.gated.stderr
+++ /dev/null
@@ -1,8 +0,0 @@
-error: expected one of `!` or `::`, found keyword `trait`
-  --> $DIR/safe-trait.rs:4:6
-   |
-LL | safe trait Foo {}
-   |      ^^^^^ expected one of `!` or `::`
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.ungated.stderr b/tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.ungated.stderr
deleted file mode 100644
index de84037f28c58..0000000000000
--- a/tests/ui/rust-2024/unsafe-extern-blocks/safe-trait.ungated.stderr
+++ /dev/null
@@ -1,8 +0,0 @@
-error: expected one of `!` or `::`, found keyword `trait`
-  --> $DIR/safe-trait.rs:4:6
-   |
-LL | safe trait Foo {}
-   |      ^^^^^ expected one of `!` or `::`
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/specialization/specialization-default-items-drop-coherence.coherence.stderr b/tests/ui/specialization/specialization-default-items-drop-coherence.coherence.stderr
deleted file mode 100644
index e9498a003179b..0000000000000
--- a/tests/ui/specialization/specialization-default-items-drop-coherence.coherence.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0119]: conflicting implementations of trait `Overlap` for type `u32`
-  --> $DIR/specialization-default-items-drop-coherence.rs:29:1
-   |
-LL | impl Overlap for u32 {
-   | -------------------- first implementation here
-...
-LL | impl Overlap for <u32 as Default>::Id {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/specialization/specialization-overlap-projection.current.stderr b/tests/ui/specialization/specialization-overlap-projection.current.stderr
deleted file mode 100644
index 4e77cb17fbb0a..0000000000000
--- a/tests/ui/specialization/specialization-overlap-projection.current.stderr
+++ /dev/null
@@ -1,30 +0,0 @@
-warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/specialization-overlap-projection.rs:4:12
-   |
-LL | #![feature(specialization)]
-   |            ^^^^^^^^^^^^^^
-   |
-   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
-   = help: consider using `min_specialization` instead, which is more stable and complete
-   = note: `#[warn(incomplete_features)]` on by default
-
-error[E0119]: conflicting implementations of trait `Foo` for type `u32`
-  --> $DIR/specialization-overlap-projection.rs:19:1
-   |
-LL | impl Foo for u32 {}
-   | ---------------- first implementation here
-LL | impl Foo for <u8 as Assoc>::Output {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`
-
-error[E0119]: conflicting implementations of trait `Foo` for type `u32`
-  --> $DIR/specialization-overlap-projection.rs:21:1
-   |
-LL | impl Foo for u32 {}
-   | ---------------- first implementation here
-...
-LL | impl Foo for <u16 as Assoc>::Output {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/specialization/specialization-overlap-projection.next.stderr b/tests/ui/specialization/specialization-overlap-projection.next.stderr
deleted file mode 100644
index 4e77cb17fbb0a..0000000000000
--- a/tests/ui/specialization/specialization-overlap-projection.next.stderr
+++ /dev/null
@@ -1,30 +0,0 @@
-warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/specialization-overlap-projection.rs:4:12
-   |
-LL | #![feature(specialization)]
-   |            ^^^^^^^^^^^^^^
-   |
-   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
-   = help: consider using `min_specialization` instead, which is more stable and complete
-   = note: `#[warn(incomplete_features)]` on by default
-
-error[E0119]: conflicting implementations of trait `Foo` for type `u32`
-  --> $DIR/specialization-overlap-projection.rs:19:1
-   |
-LL | impl Foo for u32 {}
-   | ---------------- first implementation here
-LL | impl Foo for <u8 as Assoc>::Output {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`
-
-error[E0119]: conflicting implementations of trait `Foo` for type `u32`
-  --> $DIR/specialization-overlap-projection.rs:21:1
-   |
-LL | impl Foo for u32 {}
-   | ---------------- first implementation here
-...
-LL | impl Foo for <u16 as Assoc>::Output {}
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/traits/next-solver/coherence/issue-102048.next.stderr b/tests/ui/traits/next-solver/coherence/issue-102048.next.stderr
deleted file mode 100644
index 39fde307f23f1..0000000000000
--- a/tests/ui/traits/next-solver/coherence/issue-102048.next.stderr
+++ /dev/null
@@ -1,16 +0,0 @@
-error[E0119]: conflicting implementations of trait `Trait<for<'a> fn(<_ as WithAssoc1<'a>>::Assoc, <_ as WithAssoc2<'a>>::Assoc)>` for type `(_, _)`
-  --> $DIR/issue-102048.rs:44:1
-   |
-LL | / impl<T, U> Trait<for<'a> fn(<T as WithAssoc1<'a>>::Assoc, <U as WithAssoc2<'a>>::Assoc)> for (T, U)
-LL | | where
-LL | |     T: for<'a> WithAssoc1<'a> + for<'a> WithAssoc2<'a, Assoc = i32>,
-LL | |     U: for<'a> WithAssoc2<'a>,
-   | |______________________________- first implementation here
-...
-LL | / impl<T, U> Trait<for<'a> fn(<U as WithAssoc1<'a>>::Assoc, u32)> for (T, U) where
-LL | |     U: for<'a> WithAssoc1<'a>
-   | |_____________________________^ conflicting implementation for `(_, _)`
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/tests/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr b/tests/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr
deleted file mode 100644
index e6cb6a753998f..0000000000000
--- a/tests/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-3.rs:11:13
-   |
-LL | fn test_wrong1<'a>(x: &dyn Foo<'static>, y: &'a u32) {
-   |                -- lifetime `'a` defined here
-LL |     let _ = x as &dyn Bar<'a>; // Error
-   |             ^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-3.rs:16:13
-   |
-LL | fn test_wrong2<'a>(x: &dyn Foo<'a>) {
-   |                -- lifetime `'a` defined here
-LL |     let _ = x as &dyn Bar<'static>; // Error
-   |             ^^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
-
-error: aborting due to 2 previous errors
-
diff --git a/tests/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr b/tests/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr
deleted file mode 100644
index 8d506e5807ece..0000000000000
--- a/tests/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr
+++ /dev/null
@@ -1,52 +0,0 @@
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-4.rs:15:13
-   |
-LL | fn test_wrong1<'a>(x: &dyn Foo<'static>, y: &'a u32) {
-   |                -- lifetime `'a` defined here
-LL |     let _ = x as &dyn Bar<'static, 'a>; // Error
-   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-4.rs:20:13
-   |
-LL | fn test_wrong2<'a>(x: &dyn Foo<'static>, y: &'a u32) {
-   |                -- lifetime `'a` defined here
-LL |     let _ = x as &dyn Bar<'a, 'static>; // Error
-   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-4.rs:26:5
-   |
-LL | fn test_wrong3<'a>(x: &dyn Foo<'a>) -> Option<&'static u32> {
-   |                -- lifetime `'a` defined here
-LL |     let y = x as &dyn Bar<'_, '_>;
-LL |     y.get_b() // ERROR
-   |     ^^^^^^^^^ returning this value requires that `'a` must outlive `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-4.rs:31:5
-   |
-LL | fn test_wrong4<'a>(x: &dyn Foo<'a>) -> Option<&'static u32> {
-   |                -- lifetime `'a` defined here
-LL |     <_ as Bar>::get_b(x) // ERROR
-   |     ^^^^^^^^^^^^^^^^^^^^ returning this value requires that `'a` must outlive `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-4.rs:36:5
-   |
-LL | fn test_wrong5<'a>(x: &dyn Foo<'a>) -> Option<&'static u32> {
-   |                -- lifetime `'a` defined here
-LL |     <_ as Bar<'_, '_>>::get_b(x) // ERROR
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returning this value requires that `'a` must outlive `'static`
-
-error: lifetime may not live long enough
-  --> $DIR/type-checking-test-4.rs:44:5
-   |
-LL | fn test_wrong6<'a>(x: &dyn Foo<'a>) -> Option<&'static u32> {
-   |                -- lifetime `'a` defined here
-...
-LL |     z.get_b() // ERROR
-   |     ^^^^^^^^^ returning this value requires that `'a` must outlive `'static`
-
-error: aborting due to 6 previous errors
-
diff --git a/tests/ui/treat-err-as-bug/panic-causes-oom-112708.stderr b/tests/ui/treat-err-as-bug/panic-causes-oom-112708.stderr
deleted file mode 100644
index 2d49071ac49cf..0000000000000
--- a/tests/ui/treat-err-as-bug/panic-causes-oom-112708.stderr
+++ /dev/null
@@ -1,32 +0,0 @@
-error: denote infinite loops with `loop { ... }`
-  --> $DIR/panic-causes-oom-112708.rs:13:5
-   |
-LL |     while true {}
-   |     ^^^^^^^^^^ help: use `loop`
-   |
-note: the lint level is defined here
-  --> $DIR/panic-causes-oom-112708.rs:12:12
-   |
-LL |     #[deny(while_true)]
-   |            ^^^^^^^^^^
-
-
-query stack during panic:
-#0 [early_lint_checks] perform lints prior to macro expansion
-#1 [hir_crate] getting the crate HIR
-end of query stack
-
-error: the compiler unexpectedly panicked. this is a bug.
-
-query stack during panic:
-#0 [early_lint_checks] perform lints prior to macro expansion
-#1 [hir_crate] getting the crate HIR
-end of query stack
-
-error: the compiler unexpectedly panicked. this is a bug.
-
-query stack during panic:
-#0 [early_lint_checks] perform lints prior to macro expansion
-#1 [hir_crate] getting the crate HIR
-end of query stack
-thread caused non-unwinding panic. aborting.
diff --git a/tests/ui/type-alias-impl-trait/wf-nested.fail.stderr b/tests/ui/type-alias-impl-trait/wf-nested.fail.stderr
deleted file mode 100644
index 79b726f83dde0..0000000000000
--- a/tests/ui/type-alias-impl-trait/wf-nested.fail.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/wf-nested.rs:64:38
-   |
-LL |     fn define<T>() -> OuterOpaque<T> {}
-   |                                      ^^
-   |                                      |
-   |                                      the parameter type `T` must be valid for the static lifetime...
-   |                                      ...so that the type `T` will meet its required lifetime bounds
-   |
-help: consider adding an explicit lifetime bound
-   |
-LL |     fn define<T: 'static>() -> OuterOpaque<T> {}
-   |                +++++++++
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0310`.
diff --git a/tests/ui/type-alias-impl-trait/wf-nested.pass.stderr b/tests/ui/type-alias-impl-trait/wf-nested.pass.stderr
deleted file mode 100644
index b61b69d8e407e..0000000000000
--- a/tests/ui/type-alias-impl-trait/wf-nested.pass.stderr
+++ /dev/null
@@ -1,31 +0,0 @@
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/wf-nested.rs:34:38
-   |
-LL |     fn define<T>() -> OuterOpaque<T> {}
-   |                                      ^^
-   |                                      |
-   |                                      the parameter type `T` must be valid for the static lifetime...
-   |                                      ...so that the type `T` will meet its required lifetime bounds
-   |
-help: consider adding an explicit lifetime bound
-   |
-LL |     fn define<T: 'static>() -> OuterOpaque<T> {}
-   |                +++++++++
-
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/wf-nested.rs:37:69
-   |
-LL |     fn define_rpit<T>() -> impl Trait<&'static T, Out = impl Sized> {}
-   |                                                                     ^^
-   |                                                                     |
-   |                                                                     the parameter type `T` must be valid for the static lifetime...
-   |                                                                     ...so that the type `T` will meet its required lifetime bounds
-   |
-help: consider adding an explicit lifetime bound
-   |
-LL |     fn define_rpit<T: 'static>() -> impl Trait<&'static T, Out = impl Sized> {}
-   |                     +++++++++
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0310`.
diff --git a/tests/ui/type-alias-impl-trait/wf-nested.pass_sound.stderr b/tests/ui/type-alias-impl-trait/wf-nested.pass_sound.stderr
deleted file mode 100644
index dbd3a1394f89b..0000000000000
--- a/tests/ui/type-alias-impl-trait/wf-nested.pass_sound.stderr
+++ /dev/null
@@ -1,46 +0,0 @@
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/wf-nested.rs:46:38
-   |
-LL |     fn define<T>() -> OuterOpaque<T> {}
-   |                                      ^^
-   |                                      |
-   |                                      the parameter type `T` must be valid for the static lifetime...
-   |                                      ...so that the type `T` will meet its required lifetime bounds
-   |
-help: consider adding an explicit lifetime bound
-   |
-LL |     fn define<T: 'static>() -> OuterOpaque<T> {}
-   |                +++++++++
-
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/wf-nested.rs:51:17
-   |
-LL |         let _ = outer.get();
-   |                 ^^^^^^^^^^^
-   |                 |
-   |                 the parameter type `T` must be valid for the static lifetime...
-   |                 ...so that the type `T` will meet its required lifetime bounds
-   |
-help: consider adding an explicit lifetime bound
-   |
-LL |     fn test<T: 'static>() {
-   |              +++++++++
-
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/wf-nested.rs:51:17
-   |
-LL |         let _ = outer.get();
-   |                 ^^^^^^^^^^^
-   |                 |
-   |                 the parameter type `T` must be valid for the static lifetime...
-   |                 ...so that the type `T` will meet its required lifetime bounds
-   |
-   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
-help: consider adding an explicit lifetime bound
-   |
-LL |     fn test<T: 'static>() {
-   |              +++++++++
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0310`.
diff --git a/tests/ui/type/pattern_types/derives.noimpl.stderr b/tests/ui/type/pattern_types/derives.noimpl.stderr
deleted file mode 100644
index 9450e5753446b..0000000000000
--- a/tests/ui/type/pattern_types/derives.noimpl.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error[E0369]: binary operation `==` cannot be applied to type `(i32) is 0..=999999999`
-  --> $DIR/derives.rs:14:20
-   |
-LL | #[derive(Clone, Copy, PartialEq)]
-   |                       --------- in this derive macro expansion
-LL | #[repr(transparent)]
-LL | struct Nanoseconds(NanoI32);
-   |                    ^^^^^^^
-   |
-   = note: this error originates in the derive macro `PartialEq` (in Nightly builds, run with -Z macro-backtrace for more info)
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0369`.
diff --git a/tests/ui/type_length_limit.polonius.stderr b/tests/ui/type_length_limit.polonius.stderr
deleted file mode 100644
index bc09f15918328..0000000000000
--- a/tests/ui/type_length_limit.polonius.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-error: reached the type-length limit while instantiating `std::mem::drop::<Option<((((...,....., ...), ..., ...), ..., ...)>>`
-  --> $SRC_DIR/core/src/mem/mod.rs:LL:COL
-   |
-LL | pub fn drop<T>(_x: T) {}
-   | ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the full type name has been written to '$TEST_BUILD_DIR/type_length_limit.polonius/type_length_limit.long-type.txt'
-   = help: consider adding a `#![type_length_limit="8"]` attribute to your crate
-
-error: aborting due to 1 previous error
-
diff --git a/tests/ui/uninhabited/uninhabited-irrefutable.min_exhaustive_patterns.stderr b/tests/ui/uninhabited/uninhabited-irrefutable.min_exhaustive_patterns.stderr
deleted file mode 100644
index 67527ce1ac452..0000000000000
--- a/tests/ui/uninhabited/uninhabited-irrefutable.min_exhaustive_patterns.stderr
+++ /dev/null
@@ -1,26 +0,0 @@
-error[E0005]: refutable pattern in local binding
-  --> $DIR/uninhabited-irrefutable.rs:31:9
-   |
-LL |     let Foo::D(_y, _z) = x;
-   |         ^^^^^^^^^^^^^^ pattern `Foo::A(_)` not covered
-   |
-   = note: `let` bindings require an "irrefutable pattern", like a `struct` or an `enum` with only one variant
-   = note: for more information, visit https://doc.rust-lang.org/book/ch19-02-refutability.html
-note: `Foo` defined here
-  --> $DIR/uninhabited-irrefutable.rs:20:6
-   |
-LL | enum Foo {
-   |      ^^^
-LL |
-LL |     A(foo::SecretlyEmpty),
-   |     - not covered
-   = note: pattern `Foo::A(_)` is currently uninhabited, but this variant contains private fields which may become inhabited in the future
-   = note: the matched value is of type `Foo`
-help: you might want to use `let else` to handle the variant that isn't matched
-   |
-LL |     let Foo::D(_y, _z) = x else { todo!() };
-   |                            ++++++++++++++++
-
-error: aborting due to 1 previous error
-
-For more information about this error, try `rustc --explain E0005`.

From c38951b28064f09ab73901b1de244654e1520072 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Le=C3=B3n=20Orell=20Valerian=20Liehr?= <me@fmease.dev>
Date: Mon, 27 Jan 2025 00:29:25 +0100
Subject: [PATCH 2/2] Make a previously unreachable UI test reachable

---
 src/tools/tidy/src/issues.txt                 |  1 -
 tests/ui/issues/auxiliary/issue-111011.stderr | 34 ---------------
 ...dont-suggest-boxing-async-closure-body.rs} |  4 +-
 ...t-suggest-boxing-async-closure-body.stderr | 41 +++++++++++++++++++
 4 files changed, 44 insertions(+), 36 deletions(-)
 delete mode 100644 tests/ui/issues/auxiliary/issue-111011.stderr
 rename tests/ui/{issues/auxiliary/issue-111011.rs => suggestions/dont-suggest-boxing-async-closure-body.rs} (53%)
 create mode 100644 tests/ui/suggestions/dont-suggest-boxing-async-closure-body.stderr

diff --git a/src/tools/tidy/src/issues.txt b/src/tools/tidy/src/issues.txt
index 5865664fc894d..839d23fb9a78c 100644
--- a/src/tools/tidy/src/issues.txt
+++ b/src/tools/tidy/src/issues.txt
@@ -1385,7 +1385,6 @@ ui/issue-18502.rs
 ui/issue-24106.rs
 ui/issue-76387-llvm-miscompile.rs
 ui/issues-71798.rs
-ui/issues/auxiliary/issue-111011.rs
 ui/issues/auxiliary/issue-11224.rs
 ui/issues/auxiliary/issue-11508.rs
 ui/issues/auxiliary/issue-11529.rs
diff --git a/tests/ui/issues/auxiliary/issue-111011.stderr b/tests/ui/issues/auxiliary/issue-111011.stderr
deleted file mode 100644
index c0b48c5842f4a..0000000000000
--- a/tests/ui/issues/auxiliary/issue-111011.stderr
+++ /dev/null
@@ -1,34 +0,0 @@
-error[E0308]: mismatched types
-  --> $DIR/issue-111011.rs:10:23
-   |
-LL |     foo(async move || {});
-   |                       ^^ expected `Box<_>`, found `async` closure body
-   |
-   = note:            expected struct `Box<_>`
-           found `async` closure body `[async closure body@$DIR/issue-111011.rs:10:23: 10:25]`
-   = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
-
-error[E0308]: mismatched types
-  --> $DIR/issue-111011.rs:11:9
-   |
-LL |     bar(async move || {});
-   |     --- ^^^^^^^^^^^^^^^^ expected `Box<dyn FnOnce() -> _>`, found closure
-   |     |
-   |     arguments to this function are incorrect
-   |
-   = note: expected struct `Box<(dyn FnOnce() -> _ + 'static)>`
-             found closure `{closure@$DIR/issue-111011.rs:11:9: 11:22}`
-   = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
-note: function defined here
-  --> $DIR/issue-111011.rs:7:4
-   |
-LL | fn bar<X>(x: Box<dyn FnOnce() -> X>) {}
-   |    ^^^    -------------------------
-help: store this in the heap by calling `Box::new`
-   |
-LL |     bar(Box::new(async move || {}));
-   |         +++++++++                +
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/tests/ui/issues/auxiliary/issue-111011.rs b/tests/ui/suggestions/dont-suggest-boxing-async-closure-body.rs
similarity index 53%
rename from tests/ui/issues/auxiliary/issue-111011.rs
rename to tests/ui/suggestions/dont-suggest-boxing-async-closure-body.rs
index 0c1a8ce1cf6e7..47a590668dde2 100644
--- a/tests/ui/issues/auxiliary/issue-111011.rs
+++ b/tests/ui/suggestions/dont-suggest-boxing-async-closure-body.rs
@@ -1,10 +1,12 @@
 //@ edition:2021
+// issue: https://github.com/rust-lang/rust/issues/111011
 
 fn foo<X>(x: impl FnOnce() -> Box<X>) {}
 // just to make sure async closures can still be suggested for boxing.
 fn bar<X>(x: Box<dyn FnOnce() -> X>) {}
 
 fn main() {
-    foo(async move || {}); //~ ERROR mismatched types
+    foo(async move || {});
+    //~^ ERROR expected `{async closure@dont-suggest-boxing-async-closure-body.rs:9:9}` to be a closure that returns `Box<_>`
     bar(async move || {}); //~ ERROR mismatched types
 }
diff --git a/tests/ui/suggestions/dont-suggest-boxing-async-closure-body.stderr b/tests/ui/suggestions/dont-suggest-boxing-async-closure-body.stderr
new file mode 100644
index 0000000000000..db2a3b9a9c15f
--- /dev/null
+++ b/tests/ui/suggestions/dont-suggest-boxing-async-closure-body.stderr
@@ -0,0 +1,41 @@
+error[E0271]: expected `{async closure@dont-suggest-boxing-async-closure-body.rs:9:9}` to be a closure that returns `Box<_>`, but it returns `{async closure body@$DIR/dont-suggest-boxing-async-closure-body.rs:9:23: 9:25}`
+  --> $DIR/dont-suggest-boxing-async-closure-body.rs:9:9
+   |
+LL |     foo(async move || {});
+   |     --- ^^^^^^^^^^^^^^^^ expected `Box<_>`, found `async` closure body
+   |     |
+   |     required by a bound introduced by this call
+   |
+   = note:            expected struct `Box<_>`
+           found `async` closure body `{async closure body@$DIR/dont-suggest-boxing-async-closure-body.rs:9:23: 9:25}`
+note: required by a bound in `foo`
+  --> $DIR/dont-suggest-boxing-async-closure-body.rs:4:31
+   |
+LL | fn foo<X>(x: impl FnOnce() -> Box<X>) {}
+   |                               ^^^^^^ required by this bound in `foo`
+
+error[E0308]: mismatched types
+  --> $DIR/dont-suggest-boxing-async-closure-body.rs:11:9
+   |
+LL |     bar(async move || {});
+   |     --- ^^^^^^^^^^^^^^^^ expected `Box<dyn FnOnce() -> _>`, found `{async closure@dont-suggest-boxing-async-closure-body.rs:11:9}`
+   |     |
+   |     arguments to this function are incorrect
+   |
+   = note: expected struct `Box<(dyn FnOnce() -> _ + 'static)>`
+             found closure `{async closure@$DIR/dont-suggest-boxing-async-closure-body.rs:11:9: 11:22}`
+   = note: for more on the distinction between the stack and the heap, read https://doc.rust-lang.org/book/ch15-01-box.html, https://doc.rust-lang.org/rust-by-example/std/box.html, and https://doc.rust-lang.org/std/boxed/index.html
+note: function defined here
+  --> $DIR/dont-suggest-boxing-async-closure-body.rs:6:4
+   |
+LL | fn bar<X>(x: Box<dyn FnOnce() -> X>) {}
+   |    ^^^    -------------------------
+help: store this in the heap by calling `Box::new`
+   |
+LL |     bar(Box::new(async move || {}));
+   |         +++++++++                +
+
+error: aborting due to 2 previous errors
+
+Some errors have detailed explanations: E0271, E0308.
+For more information about an error, try `rustc --explain E0271`.