about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-10-25 04:24:40 +0000
committerbors <bors@rust-lang.org>2019-10-25 04:24:40 +0000
commitdd2df8f97db8319e0eea433bfbc68244150d7bea (patch)
treec67f37c945de42d499f93dc17cc8500557f77e81 /src/test
parentd54111afc061ef398cd8ce28984f9e8d70001b24 (diff)
parent100c924527f461f1fe0d9365a476455ce544c3c7 (diff)
downloadrust-dd2df8f97db8319e0eea433bfbc68244150d7bea.tar.gz
rust-dd2df8f97db8319e0eea433bfbc68244150d7bea.zip
Auto merge of #65793 - Centril:rollup-v40xke9, r=Centril
Rollup of 9 pull requests

Successful merges:

 - #62959 (Add by-value iterator for arrays )
 - #65390 (Add long error explanation for E0576)
 - #65408 (reorder config.toml.example options and add one missing option)
 - #65414 (ignore uninhabited non-exhaustive variant fields)
 - #65666 (Deprecated proc_macro doesn't trigger warning on build library)
 - #65742 (Pre-expansion gate most of the things)
 - #65747 (Adjust the tracking issue for `untagged_unions`.)
 - #65763 (Changed APIT with explicit generic args span to specific arg spans)
 - #65775 (Fix more `ReEmpty` ICEs)

Failed merges:

 - #65519 (trait-based structural match implementation)

r? @ghost
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/const-generics/array-impls/into-iter-impls-length-32.rs41
-rw-r--r--src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.rs53
-rw-r--r--src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.stderr122
-rw-r--r--src/test/ui/const-generics/const-param-in-trait-ungated.stderr4
-rw-r--r--src/test/ui/const-generics/const-param-type-depends-on-type-param-ungated.stderr4
-rw-r--r--src/test/ui/const-generics/issues/issue-60263.stderr4
-rw-r--r--src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs4
-rw-r--r--src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr11
-rw-r--r--src/test/ui/feature-gates/feature-gate-box_patterns.rs3
-rw-r--r--src/test/ui/feature-gates/feature-gate-box_patterns.stderr11
-rw-r--r--src/test/ui/feature-gates/feature-gate-box_syntax.rs5
-rw-r--r--src/test/ui/feature-gates/feature-gate-box_syntax.stderr2
-rw-r--r--src/test/ui/feature-gates/feature-gate-const_generics-ptr.stderr8
-rw-r--r--src/test/ui/feature-gates/feature-gate-const_generics.rs5
-rw-r--r--src/test/ui/feature-gates/feature-gate-const_generics.stderr19
-rw-r--r--src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.rs3
-rw-r--r--src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.stderr11
-rw-r--r--src/test/ui/feature-gates/feature-gate-decl_macro.rs4
-rw-r--r--src/test/ui/feature-gates/feature-gate-decl_macro.stderr11
-rw-r--r--src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.rs6
-rw-r--r--src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.stderr15
-rw-r--r--src/test/ui/feature-gates/feature-gate-label_break_value.rs5
-rw-r--r--src/test/ui/feature-gates/feature-gate-label_break_value.stderr2
-rw-r--r--src/test/ui/feature-gates/feature-gate-trait-alias.rs9
-rw-r--r--src/test/ui/feature-gates/feature-gate-trait-alias.stderr11
-rw-r--r--src/test/ui/feature-gates/feature-gate-try_blocks.rs7
-rw-r--r--src/test/ui/feature-gates/feature-gate-try_blocks.stderr4
-rw-r--r--src/test/ui/feature-gates/feature-gate-type_ascription.rs5
-rw-r--r--src/test/ui/feature-gates/feature-gate-type_ascription.stderr2
-rw-r--r--src/test/ui/feature-gates/feature-gate-untagged_unions.stderr6
-rw-r--r--src/test/ui/impl-trait/issues/universal-issue-48703.stderr4
-rw-r--r--src/test/ui/impl-trait/issues/universal-turbofish-in-method-issue-50950.stderr6
-rw-r--r--src/test/ui/issues/issue-19883.stderr1
-rw-r--r--src/test/ui/issues/issue-22037.stderr1
-rw-r--r--src/test/ui/issues/issue-22384.stderr1
-rw-r--r--src/test/ui/nll/empty-type-predicate-2.rs18
-rw-r--r--src/test/ui/nll/empty-type-predicate.rs4
-rw-r--r--src/test/ui/or-patterns/or-patterns-syntactic-pass.rs1
-rw-r--r--src/test/ui/parser/pat-tuple-4.rs1
-rw-r--r--src/test/ui/parser/pat-tuple-4.stderr16
-rw-r--r--src/test/ui/parser/pat-tuple-5.stderr4
-rw-r--r--src/test/ui/pattern/rest-pat-syntactic.rs2
-rw-r--r--src/test/ui/proc-macro/proc-macro-deprecated-attr.rs16
-rw-r--r--src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.rs22
-rw-r--r--src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.stderr14
-rw-r--r--src/test/ui/synthetic-param.stderr12
-rw-r--r--src/test/ui/traits/trait-alias/trait-alias-syntax-fail.rs3
-rw-r--r--src/test/ui/traits/trait-alias/trait-alias-syntax-fail.stderr22
-rw-r--r--src/test/ui/type/type-path-err-node-types.stderr2
-rw-r--r--src/test/ui/ufcs/ufcs-partially-resolved.stderr2
50 files changed, 477 insertions, 72 deletions
diff --git a/src/test/ui/const-generics/array-impls/into-iter-impls-length-32.rs b/src/test/ui/const-generics/array-impls/into-iter-impls-length-32.rs
new file mode 100644
index 00000000000..0aeba8607e8
--- /dev/null
+++ b/src/test/ui/const-generics/array-impls/into-iter-impls-length-32.rs
@@ -0,0 +1,41 @@
+// check-pass
+
+#![feature(array_value_iter)]
+#![feature(trusted_len)]
+
+use std::{
+    array::IntoIter,
+    fmt::Debug,
+    iter::{ExactSizeIterator, FusedIterator, TrustedLen},
+};
+
+pub fn yes_iterator() -> impl Iterator<Item = i32> {
+    IntoIter::new([0i32; 32])
+}
+
+pub fn yes_double_ended_iterator() -> impl DoubleEndedIterator {
+    IntoIter::new([0i32; 32])
+}
+
+pub fn yes_exact_size_iterator() -> impl ExactSizeIterator {
+    IntoIter::new([0i32; 32])
+}
+
+pub fn yes_fused_iterator() -> impl FusedIterator {
+    IntoIter::new([0i32; 32])
+}
+
+pub fn yes_trusted_len() -> impl TrustedLen {
+    IntoIter::new([0i32; 32])
+}
+
+pub fn yes_clone() -> impl Clone {
+    IntoIter::new([0i32; 32])
+}
+
+pub fn yes_debug() -> impl Debug {
+    IntoIter::new([0i32; 32])
+}
+
+
+fn main() {}
diff --git a/src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.rs b/src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.rs
new file mode 100644
index 00000000000..a0bbd2ce64a
--- /dev/null
+++ b/src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.rs
@@ -0,0 +1,53 @@
+#![feature(array_value_iter)]
+#![feature(trusted_len)]
+
+use std::{
+    array::IntoIter,
+    fmt::Debug,
+    iter::{ExactSizeIterator, FusedIterator, TrustedLen},
+};
+
+pub fn no_iterator() -> impl Iterator<Item = i32> {
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+    IntoIter::new([0i32; 33])
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+}
+
+pub fn no_double_ended_iterator() -> impl DoubleEndedIterator {
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+    IntoIter::new([0i32; 33])
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+}
+
+pub fn no_exact_size_iterator() -> impl ExactSizeIterator {
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+    IntoIter::new([0i32; 33])
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+}
+
+pub fn no_fused_iterator() -> impl FusedIterator {
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+    IntoIter::new([0i32; 33])
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+}
+
+pub fn no_trusted_len() -> impl TrustedLen {
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+    IntoIter::new([0i32; 33])
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+}
+
+pub fn no_clone() -> impl Clone {
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+    IntoIter::new([0i32; 33])
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+}
+
+pub fn no_debug() -> impl Debug {
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+    IntoIter::new([0i32; 33])
+    //~^ ERROR arrays only have std trait implementations for lengths 0..=32
+}
+
+
+fn main() {}
diff --git a/src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.stderr b/src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.stderr
new file mode 100644
index 00000000000..bfdff8e3bbe
--- /dev/null
+++ b/src/test/ui/const-generics/array-impls/into-iter-no-impls-length-33.stderr
@@ -0,0 +1,122 @@
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:12:5
+   |
+LL |     IntoIter::new([0i32; 33])
+   |     ^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required by `std::array::IntoIter::<T, N>::new`
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:10:25
+   |
+LL | pub fn no_iterator() -> impl Iterator<Item = i32> {
+   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required because of the requirements on the impl of `std::iter::Iterator` for `std::array::IntoIter<i32, 33usize>`
+   = note: the return type of a function must have a statically known size
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:18:5
+   |
+LL |     IntoIter::new([0i32; 33])
+   |     ^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required by `std::array::IntoIter::<T, N>::new`
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:16:38
+   |
+LL | pub fn no_double_ended_iterator() -> impl DoubleEndedIterator {
+   |                                      ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required because of the requirements on the impl of `std::iter::DoubleEndedIterator` for `std::array::IntoIter<i32, 33usize>`
+   = note: the return type of a function must have a statically known size
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:24:5
+   |
+LL |     IntoIter::new([0i32; 33])
+   |     ^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required by `std::array::IntoIter::<T, N>::new`
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:22:36
+   |
+LL | pub fn no_exact_size_iterator() -> impl ExactSizeIterator {
+   |                                    ^^^^^^^^^^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required because of the requirements on the impl of `std::iter::ExactSizeIterator` for `std::array::IntoIter<i32, 33usize>`
+   = note: the return type of a function must have a statically known size
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:30:5
+   |
+LL |     IntoIter::new([0i32; 33])
+   |     ^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required by `std::array::IntoIter::<T, N>::new`
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:28:31
+   |
+LL | pub fn no_fused_iterator() -> impl FusedIterator {
+   |                               ^^^^^^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required because of the requirements on the impl of `std::iter::FusedIterator` for `std::array::IntoIter<i32, 33usize>`
+   = note: the return type of a function must have a statically known size
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:36:5
+   |
+LL |     IntoIter::new([0i32; 33])
+   |     ^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required by `std::array::IntoIter::<T, N>::new`
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:34:28
+   |
+LL | pub fn no_trusted_len() -> impl TrustedLen {
+   |                            ^^^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required because of the requirements on the impl of `std::iter::TrustedLen` for `std::array::IntoIter<i32, 33usize>`
+   = note: the return type of a function must have a statically known size
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:42:5
+   |
+LL |     IntoIter::new([0i32; 33])
+   |     ^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required by `std::array::IntoIter::<T, N>::new`
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:40:22
+   |
+LL | pub fn no_clone() -> impl Clone {
+   |                      ^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required because of the requirements on the impl of `std::clone::Clone` for `std::array::IntoIter<i32, 33usize>`
+   = note: the return type of a function must have a statically known size
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:48:5
+   |
+LL |     IntoIter::new([0i32; 33])
+   |     ^^^^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required by `std::array::IntoIter::<T, N>::new`
+
+error[E0277]: arrays only have std trait implementations for lengths 0..=32
+  --> $DIR/into-iter-no-impls-length-33.rs:46:22
+   |
+LL | pub fn no_debug() -> impl Debug {
+   |                      ^^^^^^^^^^ the trait `std::array::LengthAtMost32` is not implemented for `[i32; 33]`
+   |
+   = note: required because of the requirements on the impl of `std::fmt::Debug` for `std::array::IntoIter<i32, 33usize>`
+   = note: the return type of a function must have a statically known size
+
+error: aborting due to 14 previous errors
+
+For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/const-generics/const-param-in-trait-ungated.stderr b/src/test/ui/const-generics/const-param-in-trait-ungated.stderr
index cfb1f8b581c..330c93e83b5 100644
--- a/src/test/ui/const-generics/const-param-in-trait-ungated.stderr
+++ b/src/test/ui/const-generics/const-param-in-trait-ungated.stderr
@@ -1,8 +1,8 @@
 error[E0658]: const generics are unstable
-  --> $DIR/const-param-in-trait-ungated.rs:1:19
+  --> $DIR/const-param-in-trait-ungated.rs:1:13
    |
 LL | trait Trait<const T: ()> {}
-   |                   ^
+   |             ^^^^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/44580
    = help: add `#![feature(const_generics)]` to the crate attributes to enable
diff --git a/src/test/ui/const-generics/const-param-type-depends-on-type-param-ungated.stderr b/src/test/ui/const-generics/const-param-type-depends-on-type-param-ungated.stderr
index a2872ab982d..e34a2da24ce 100644
--- a/src/test/ui/const-generics/const-param-type-depends-on-type-param-ungated.stderr
+++ b/src/test/ui/const-generics/const-param-type-depends-on-type-param-ungated.stderr
@@ -1,8 +1,8 @@
 error[E0658]: const generics are unstable
-  --> $DIR/const-param-type-depends-on-type-param-ungated.rs:3:19
+  --> $DIR/const-param-type-depends-on-type-param-ungated.rs:3:13
    |
 LL | struct B<T, const N: T>(PhantomData<[T; N]>);
-   |                   ^
+   |             ^^^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/44580
    = help: add `#![feature(const_generics)]` to the crate attributes to enable
diff --git a/src/test/ui/const-generics/issues/issue-60263.stderr b/src/test/ui/const-generics/issues/issue-60263.stderr
index fe7b6fdb190..5223c8c5137 100644
--- a/src/test/ui/const-generics/issues/issue-60263.stderr
+++ b/src/test/ui/const-generics/issues/issue-60263.stderr
@@ -1,8 +1,8 @@
 error[E0658]: const generics are unstable
-  --> $DIR/issue-60263.rs:1:16
+  --> $DIR/issue-60263.rs:1:10
    |
 LL | struct B<const I: u8>;
-   |                ^
+   |          ^^^^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/44580
    = help: add `#![feature(const_generics)]` to the crate attributes to enable
diff --git a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs
index 0faa9090f4e..00737d8428b 100644
--- a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs
+++ b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.rs
@@ -70,3 +70,7 @@ fn main() {
     // FIXME: uncomment when `impl_trait_in_bindings` feature is fixed.
     // let _: &dyn Tr1<As1: Copy> = &S1;
 }
+
+macro_rules! accept_path { ($p:path) => {} }
+accept_path!(Iterator<Item: Ord>);
+//~^ ERROR associated type bounds are unstable
diff --git a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr
index 84af2a0163a..a7ab7614d7b 100644
--- a/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr
+++ b/src/test/ui/feature-gates/feature-gate-associated_type_bounds.stderr
@@ -115,6 +115,15 @@ LL |     let _: impl Tr1<As1: Copy> = S1;
    = note: for more information, see https://github.com/rust-lang/rust/issues/52662
    = help: add `#![feature(associated_type_bounds)]` to the crate attributes to enable
 
+error[E0658]: associated type bounds are unstable
+  --> $DIR/feature-gate-associated_type_bounds.rs:75:23
+   |
+LL | accept_path!(Iterator<Item: Ord>);
+   |                       ^^^^^^^^^
+   |
+   = note: for more information, see https://github.com/rust-lang/rust/issues/52662
+   = help: add `#![feature(associated_type_bounds)]` to the crate attributes to enable
+
 error[E0562]: `impl Trait` not allowed outside of function and inherent method return types
   --> $DIR/feature-gate-associated_type_bounds.rs:54:14
    |
@@ -139,7 +148,7 @@ LL |     let _: impl Tr1<As1: Copy> = S1;
    |
    = help: add `#![feature(impl_trait_in_bindings)]` to the crate attributes to enable
 
-error: aborting due to 16 previous errors
+error: aborting due to 17 previous errors
 
 Some errors have detailed explanations: E0562, E0658.
 For more information about an error, try `rustc --explain E0562`.
diff --git a/src/test/ui/feature-gates/feature-gate-box_patterns.rs b/src/test/ui/feature-gates/feature-gate-box_patterns.rs
index 8bec16a974e..c5b926d5af2 100644
--- a/src/test/ui/feature-gates/feature-gate-box_patterns.rs
+++ b/src/test/ui/feature-gates/feature-gate-box_patterns.rs
@@ -2,3 +2,6 @@ fn main() {
     let box x = Box::new('c'); //~ ERROR box pattern syntax is experimental
     println!("x: {}", x);
 }
+
+macro_rules! accept_pat { ($p:pat) => {} }
+accept_pat!(box 0); //~ ERROR box pattern syntax is experimental
diff --git a/src/test/ui/feature-gates/feature-gate-box_patterns.stderr b/src/test/ui/feature-gates/feature-gate-box_patterns.stderr
index d2dafe93a86..1e47bd41e88 100644
--- a/src/test/ui/feature-gates/feature-gate-box_patterns.stderr
+++ b/src/test/ui/feature-gates/feature-gate-box_patterns.stderr
@@ -7,6 +7,15 @@ LL |     let box x = Box::new('c');
    = note: for more information, see https://github.com/rust-lang/rust/issues/29641
    = help: add `#![feature(box_patterns)]` to the crate attributes to enable
 
-error: aborting due to previous error
+error[E0658]: box pattern syntax is experimental
+  --> $DIR/feature-gate-box_patterns.rs:7:13
+   |
+LL | accept_pat!(box 0);
+   |             ^^^^^
+   |
+   = note: for more information, see https://github.com/rust-lang/rust/issues/29641
+   = help: add `#![feature(box_patterns)]` to the crate attributes to enable
+
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-box_syntax.rs b/src/test/ui/feature-gates/feature-gate-box_syntax.rs
index 778660cc0b5..c23953a9e09 100644
--- a/src/test/ui/feature-gates/feature-gate-box_syntax.rs
+++ b/src/test/ui/feature-gates/feature-gate-box_syntax.rs
@@ -1,6 +1,9 @@
 // Test that the use of the box syntax is gated by `box_syntax` feature gate.
 
-fn main() {
+#[cfg(FALSE)]
+fn foo() {
     let x = box 3;
     //~^ ERROR box expression syntax is experimental; you can call `Box::new` instead
 }
+
+fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-box_syntax.stderr b/src/test/ui/feature-gates/feature-gate-box_syntax.stderr
index 61b0534d2dc..cbafa502577 100644
--- a/src/test/ui/feature-gates/feature-gate-box_syntax.stderr
+++ b/src/test/ui/feature-gates/feature-gate-box_syntax.stderr
@@ -1,5 +1,5 @@
 error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
-  --> $DIR/feature-gate-box_syntax.rs:4:13
+  --> $DIR/feature-gate-box_syntax.rs:5:13
    |
 LL |     let x = box 3;
    |             ^^^^^
diff --git a/src/test/ui/feature-gates/feature-gate-const_generics-ptr.stderr b/src/test/ui/feature-gates/feature-gate-const_generics-ptr.stderr
index 935f84b9163..790bc33e268 100644
--- a/src/test/ui/feature-gates/feature-gate-const_generics-ptr.stderr
+++ b/src/test/ui/feature-gates/feature-gate-const_generics-ptr.stderr
@@ -1,17 +1,17 @@
 error[E0658]: const generics are unstable
-  --> $DIR/feature-gate-const_generics-ptr.rs:1:22
+  --> $DIR/feature-gate-const_generics-ptr.rs:1:16
    |
 LL | struct ConstFn<const F: fn()>;
-   |                      ^
+   |                ^^^^^^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/44580
    = help: add `#![feature(const_generics)]` to the crate attributes to enable
 
 error[E0658]: const generics are unstable
-  --> $DIR/feature-gate-const_generics-ptr.rs:5:23
+  --> $DIR/feature-gate-const_generics-ptr.rs:5:17
    |
 LL | struct ConstPtr<const P: *const u32>;
-   |                       ^
+   |                 ^^^^^^^^^^^^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/44580
    = help: add `#![feature(const_generics)]` to the crate attributes to enable
diff --git a/src/test/ui/feature-gates/feature-gate-const_generics.rs b/src/test/ui/feature-gates/feature-gate-const_generics.rs
index fe1ded1c4bb..0adc9902a69 100644
--- a/src/test/ui/feature-gates/feature-gate-const_generics.rs
+++ b/src/test/ui/feature-gates/feature-gate-const_generics.rs
@@ -2,4 +2,9 @@ fn foo<const X: ()>() {} //~ ERROR const generics are unstable
 
 struct Foo<const X: usize>([(); X]); //~ ERROR const generics are unstable
 
+macro_rules! accept_item { ($i:item) => {} }
+accept_item! {
+    impl<const X: ()> A {} //~ ERROR const generics are unstable
+}
+
 fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-const_generics.stderr b/src/test/ui/feature-gates/feature-gate-const_generics.stderr
index 468e9c31d37..f0154ed289f 100644
--- a/src/test/ui/feature-gates/feature-gate-const_generics.stderr
+++ b/src/test/ui/feature-gates/feature-gate-const_generics.stderr
@@ -1,21 +1,30 @@
 error[E0658]: const generics are unstable
-  --> $DIR/feature-gate-const_generics.rs:1:14
+  --> $DIR/feature-gate-const_generics.rs:1:8
    |
 LL | fn foo<const X: ()>() {}
-   |              ^
+   |        ^^^^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/44580
    = help: add `#![feature(const_generics)]` to the crate attributes to enable
 
 error[E0658]: const generics are unstable
-  --> $DIR/feature-gate-const_generics.rs:3:18
+  --> $DIR/feature-gate-const_generics.rs:3:12
    |
 LL | struct Foo<const X: usize>([(); X]);
-   |                  ^
+   |            ^^^^^^^^^^^^^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/44580
    = help: add `#![feature(const_generics)]` to the crate attributes to enable
 
-error: aborting due to 2 previous errors
+error[E0658]: const generics are unstable
+  --> $DIR/feature-gate-const_generics.rs:7:10
+   |
+LL |     impl<const X: ()> A {}
+   |          ^^^^^^^^^^^
+   |
+   = note: for more information, see https://github.com/rust-lang/rust/issues/44580
+   = help: add `#![feature(const_generics)]` to the crate attributes to enable
+
+error: aborting due to 3 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.rs b/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.rs
index 0e3f6b168be..7517fb280ea 100644
--- a/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.rs
+++ b/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.rs
@@ -5,4 +5,7 @@ crate struct Bender { //~ ERROR `crate` visibility modifier is experimental
     water: bool,
 }
 
+macro_rules! accept_vis { ($v:vis) => {} }
+accept_vis!(crate);  //~ ERROR `crate` visibility modifier is experimental
+
 fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.stderr b/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.stderr
index 1e061eced36..b317872cea8 100644
--- a/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.stderr
+++ b/src/test/ui/feature-gates/feature-gate-crate_visibility_modifier.stderr
@@ -7,6 +7,15 @@ LL | crate struct Bender {
    = note: for more information, see https://github.com/rust-lang/rust/issues/53120
    = help: add `#![feature(crate_visibility_modifier)]` to the crate attributes to enable
 
-error: aborting due to previous error
+error[E0658]: `crate` visibility modifier is experimental
+  --> $DIR/feature-gate-crate_visibility_modifier.rs:9:13
+   |
+LL | accept_vis!(crate);
+   |             ^^^^^
+   |
+   = note: for more information, see https://github.com/rust-lang/rust/issues/53120
+   = help: add `#![feature(crate_visibility_modifier)]` to the crate attributes to enable
+
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-decl_macro.rs b/src/test/ui/feature-gates/feature-gate-decl_macro.rs
index d002c5dbbd2..b208a047481 100644
--- a/src/test/ui/feature-gates/feature-gate-decl_macro.rs
+++ b/src/test/ui/feature-gates/feature-gate-decl_macro.rs
@@ -2,4 +2,8 @@
 
 macro m() {} //~ ERROR `macro` is experimental
 
+macro_rules! accept_item { ($i:item) => {} }
+accept_item! {
+    macro m() {} //~ ERROR `macro` is experimental
+}
 fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-decl_macro.stderr b/src/test/ui/feature-gates/feature-gate-decl_macro.stderr
index 905a1b15310..c6690ebd4d9 100644
--- a/src/test/ui/feature-gates/feature-gate-decl_macro.stderr
+++ b/src/test/ui/feature-gates/feature-gate-decl_macro.stderr
@@ -7,6 +7,15 @@ LL | macro m() {}
    = note: for more information, see https://github.com/rust-lang/rust/issues/39412
    = help: add `#![feature(decl_macro)]` to the crate attributes to enable
 
-error: aborting due to previous error
+error[E0658]: `macro` is experimental
+  --> $DIR/feature-gate-decl_macro.rs:7:5
+   |
+LL |     macro m() {}
+   |     ^^^^^^^^^^^^
+   |
+   = note: for more information, see https://github.com/rust-lang/rust/issues/39412
+   = help: add `#![feature(decl_macro)]` to the crate attributes to enable
+
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.rs b/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.rs
index ded08b93fe8..594ec73fe26 100644
--- a/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.rs
+++ b/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.rs
@@ -1,6 +1,10 @@
-pub fn main() {
+#[cfg(FALSE)]
+fn foo() {
     match 22 {
         0 .. 3 => {} //~ ERROR exclusive range pattern syntax is experimental
+        PATH .. 3 => {} //~ ERROR exclusive range pattern syntax is experimental
         _ => {}
     }
 }
+
+fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.stderr b/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.stderr
index ee20408d178..075fdbed90d 100644
--- a/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.stderr
+++ b/src/test/ui/feature-gates/feature-gate-exclusive-range-pattern.stderr
@@ -1,12 +1,21 @@
 error[E0658]: exclusive range pattern syntax is experimental
-  --> $DIR/feature-gate-exclusive-range-pattern.rs:3:9
+  --> $DIR/feature-gate-exclusive-range-pattern.rs:4:11
    |
 LL |         0 .. 3 => {}
-   |         ^^^^^^
+   |           ^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/37854
    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
 
-error: aborting due to previous error
+error[E0658]: exclusive range pattern syntax is experimental
+  --> $DIR/feature-gate-exclusive-range-pattern.rs:5:14
+   |
+LL |         PATH .. 3 => {}
+   |              ^^
+   |
+   = note: for more information, see https://github.com/rust-lang/rust/issues/37854
+   = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
+
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-label_break_value.rs b/src/test/ui/feature-gates/feature-gate-label_break_value.rs
index 6fc38f45517..8d7ecd27b45 100644
--- a/src/test/ui/feature-gates/feature-gate-label_break_value.rs
+++ b/src/test/ui/feature-gates/feature-gate-label_break_value.rs
@@ -1,5 +1,8 @@
-pub fn main() {
+#[cfg(FALSE)]
+pub fn foo() {
     'a: { //~ ERROR labels on blocks are unstable
         break 'a;
     }
 }
+
+fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-label_break_value.stderr b/src/test/ui/feature-gates/feature-gate-label_break_value.stderr
index a417e0eec22..6a861d3e04f 100644
--- a/src/test/ui/feature-gates/feature-gate-label_break_value.stderr
+++ b/src/test/ui/feature-gates/feature-gate-label_break_value.stderr
@@ -1,5 +1,5 @@
 error[E0658]: labels on blocks are unstable
-  --> $DIR/feature-gate-label_break_value.rs:2:5
+  --> $DIR/feature-gate-label_break_value.rs:3:5
    |
 LL |     'a: {
    |     ^^
diff --git a/src/test/ui/feature-gates/feature-gate-trait-alias.rs b/src/test/ui/feature-gates/feature-gate-trait-alias.rs
index 819085addda..4b94d7d6d3b 100644
--- a/src/test/ui/feature-gates/feature-gate-trait-alias.rs
+++ b/src/test/ui/feature-gates/feature-gate-trait-alias.rs
@@ -1,4 +1,13 @@
 trait Foo = Default;
 //~^ ERROR trait aliases are experimental
 
+macro_rules! accept_item {
+    ($i:item) => {}
+}
+
+accept_item! {
+    trait Foo = Ord + Eq;
+    //~^ ERROR trait aliases are experimental
+}
+
 fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-trait-alias.stderr b/src/test/ui/feature-gates/feature-gate-trait-alias.stderr
index 9250e27d158..b1bf6ad3491 100644
--- a/src/test/ui/feature-gates/feature-gate-trait-alias.stderr
+++ b/src/test/ui/feature-gates/feature-gate-trait-alias.stderr
@@ -7,6 +7,15 @@ LL | trait Foo = Default;
    = note: for more information, see https://github.com/rust-lang/rust/issues/41517
    = help: add `#![feature(trait_alias)]` to the crate attributes to enable
 
-error: aborting due to previous error
+error[E0658]: trait aliases are experimental
+  --> $DIR/feature-gate-trait-alias.rs:9:5
+   |
+LL |     trait Foo = Ord + Eq;
+   |     ^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: for more information, see https://github.com/rust-lang/rust/issues/41517
+   = help: add `#![feature(trait_alias)]` to the crate attributes to enable
+
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/feature-gates/feature-gate-try_blocks.rs b/src/test/ui/feature-gates/feature-gate-try_blocks.rs
index 06cadd82c07..b451ba84a15 100644
--- a/src/test/ui/feature-gates/feature-gate-try_blocks.rs
+++ b/src/test/ui/feature-gates/feature-gate-try_blocks.rs
@@ -1,9 +1,12 @@
 // compile-flags: --edition 2018
 
-pub fn main() {
-    let try_result: Option<_> = try { //~ ERROR `try` expression is experimental
+#[cfg(FALSE)]
+fn foo() {
+    let try_result: Option<_> = try { //~ ERROR `try` blocks are unstable
         let x = 5;
         x
     };
     assert_eq!(try_result, Some(5));
 }
+
+fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-try_blocks.stderr b/src/test/ui/feature-gates/feature-gate-try_blocks.stderr
index 565f3610a2e..44a7d9b9043 100644
--- a/src/test/ui/feature-gates/feature-gate-try_blocks.stderr
+++ b/src/test/ui/feature-gates/feature-gate-try_blocks.stderr
@@ -1,5 +1,5 @@
-error[E0658]: `try` expression is experimental
-  --> $DIR/feature-gate-try_blocks.rs:4:33
+error[E0658]: `try` blocks are unstable
+  --> $DIR/feature-gate-try_blocks.rs:5:33
    |
 LL |       let try_result: Option<_> = try {
    |  _________________________________^
diff --git a/src/test/ui/feature-gates/feature-gate-type_ascription.rs b/src/test/ui/feature-gates/feature-gate-type_ascription.rs
index 7a597157300..655891d802c 100644
--- a/src/test/ui/feature-gates/feature-gate-type_ascription.rs
+++ b/src/test/ui/feature-gates/feature-gate-type_ascription.rs
@@ -1,5 +1,8 @@
 // Type ascription is unstable
 
-fn main() {
+#[cfg(FALSE)]
+fn foo() {
     let a = 10: u8; //~ ERROR type ascription is experimental
 }
+
+fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-type_ascription.stderr b/src/test/ui/feature-gates/feature-gate-type_ascription.stderr
index 83f95529f0d..d63d624c6c1 100644
--- a/src/test/ui/feature-gates/feature-gate-type_ascription.stderr
+++ b/src/test/ui/feature-gates/feature-gate-type_ascription.stderr
@@ -1,5 +1,5 @@
 error[E0658]: type ascription is experimental
-  --> $DIR/feature-gate-type_ascription.rs:4:13
+  --> $DIR/feature-gate-type_ascription.rs:5:13
    |
 LL |     let a = 10: u8;
    |             ^^^^^^
diff --git a/src/test/ui/feature-gates/feature-gate-untagged_unions.stderr b/src/test/ui/feature-gates/feature-gate-untagged_unions.stderr
index 1885518a458..2182b3a313e 100644
--- a/src/test/ui/feature-gates/feature-gate-untagged_unions.stderr
+++ b/src/test/ui/feature-gates/feature-gate-untagged_unions.stderr
@@ -6,7 +6,7 @@ LL | |     a: String,
 LL | | }
    | |_^
    |
-   = note: for more information, see https://github.com/rust-lang/rust/issues/32836
+   = note: for more information, see https://github.com/rust-lang/rust/issues/55149
    = help: add `#![feature(untagged_unions)]` to the crate attributes to enable
 
 error[E0658]: unions with non-`Copy` fields are unstable
@@ -17,7 +17,7 @@ LL | |     a: T,
 LL | | }
    | |_^
    |
-   = note: for more information, see https://github.com/rust-lang/rust/issues/32836
+   = note: for more information, see https://github.com/rust-lang/rust/issues/55149
    = help: add `#![feature(untagged_unions)]` to the crate attributes to enable
 
 error[E0658]: unions with `Drop` implementations are unstable
@@ -28,7 +28,7 @@ LL | |     a: u8,
 LL | | }
    | |_^
    |
-   = note: for more information, see https://github.com/rust-lang/rust/issues/32836
+   = note: for more information, see https://github.com/rust-lang/rust/issues/55149
    = help: add `#![feature(untagged_unions)]` to the crate attributes to enable
 
 error[E0740]: unions may not contain fields that need dropping
diff --git a/src/test/ui/impl-trait/issues/universal-issue-48703.stderr b/src/test/ui/impl-trait/issues/universal-issue-48703.stderr
index a51302dce29..8f05ab3c494 100644
--- a/src/test/ui/impl-trait/issues/universal-issue-48703.stderr
+++ b/src/test/ui/impl-trait/issues/universal-issue-48703.stderr
@@ -1,8 +1,8 @@
 error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
-  --> $DIR/universal-issue-48703.rs:8:5
+  --> $DIR/universal-issue-48703.rs:8:11
    |
 LL |     foo::<String>('a');
-   |     ^^^^^^^^^^^^^
+   |           ^^^^^^ explicit generic argument not allowed
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/impl-trait/issues/universal-turbofish-in-method-issue-50950.stderr b/src/test/ui/impl-trait/issues/universal-turbofish-in-method-issue-50950.stderr
index f09aa166ef5..c980e9463e4 100644
--- a/src/test/ui/impl-trait/issues/universal-turbofish-in-method-issue-50950.stderr
+++ b/src/test/ui/impl-trait/issues/universal-turbofish-in-method-issue-50950.stderr
@@ -1,8 +1,10 @@
 error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
-  --> $DIR/universal-turbofish-in-method-issue-50950.rs:14:9
+  --> $DIR/universal-turbofish-in-method-issue-50950.rs:14:24
    |
 LL |     evt.handle_event::<TestEvent, fn(TestEvent)>(|_evt| {
-   |         ^^^^^^^^^^^^
+   |                        ^^^^^^^^^  ^^^^^^^^^^^^^ explicit generic argument not allowed
+   |                        |
+   |                        explicit generic argument not allowed
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/issues/issue-19883.stderr b/src/test/ui/issues/issue-19883.stderr
index 738add16840..e370b2ec1cb 100644
--- a/src/test/ui/issues/issue-19883.stderr
+++ b/src/test/ui/issues/issue-19883.stderr
@@ -6,3 +6,4 @@ LL |         <Dst as From<Self>>::Dst
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/ui/issues/issue-22037.stderr b/src/test/ui/issues/issue-22037.stderr
index 40d4a5e3bc0..615628558f0 100644
--- a/src/test/ui/issues/issue-22037.stderr
+++ b/src/test/ui/issues/issue-22037.stderr
@@ -6,3 +6,4 @@ LL |     fn a(&self) -> <Self as A>::X;
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/ui/issues/issue-22384.stderr b/src/test/ui/issues/issue-22384.stderr
index 130c3124b6f..1f767a443d0 100644
--- a/src/test/ui/issues/issue-22384.stderr
+++ b/src/test/ui/issues/issue-22384.stderr
@@ -6,3 +6,4 @@ LL |     <<i32 as Copy>::foobar as Trait>::foo();
 
 error: aborting due to previous error
 
+For more information about this error, try `rustc --explain E0576`.
diff --git a/src/test/ui/nll/empty-type-predicate-2.rs b/src/test/ui/nll/empty-type-predicate-2.rs
new file mode 100644
index 00000000000..20d6e47f753
--- /dev/null
+++ b/src/test/ui/nll/empty-type-predicate-2.rs
@@ -0,0 +1,18 @@
+// Regression test for #65553
+//
+// `D::Error:` is lowered to `D::Error: ReEmpty` - check that we don't ICE in
+// NLL for the unexpected region.
+
+// check-pass
+
+trait Deserializer {
+    type Error;
+}
+
+fn d1<D: Deserializer>() where D::Error: {}
+
+fn d2<D: Deserializer>() {
+    d1::<D>();
+}
+
+fn main() {}
diff --git a/src/test/ui/nll/empty-type-predicate.rs b/src/test/ui/nll/empty-type-predicate.rs
index 48073f8749e..d126a455dae 100644
--- a/src/test/ui/nll/empty-type-predicate.rs
+++ b/src/test/ui/nll/empty-type-predicate.rs
@@ -3,9 +3,9 @@
 // `dyn T:` is lowered to `dyn T: ReEmpty` - check that we don't ICE in NLL for
 // the unexpected region.
 
-// build-pass (FIXME(62277): could be check-pass?)
+// check-pass
 
 trait T {}
 fn f() where dyn T: {}
 
-fn main() {}
+fn main() { f(); }
diff --git a/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs b/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs
index 5fe72caf9c1..9667711242c 100644
--- a/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs
+++ b/src/test/ui/or-patterns/or-patterns-syntactic-pass.rs
@@ -4,6 +4,7 @@
 // check-pass
 
 #![feature(or_patterns)]
+#![feature(box_patterns)]
 
 fn main() {}
 
diff --git a/src/test/ui/parser/pat-tuple-4.rs b/src/test/ui/parser/pat-tuple-4.rs
index 2f03160430a..6b8c146949a 100644
--- a/src/test/ui/parser/pat-tuple-4.rs
+++ b/src/test/ui/parser/pat-tuple-4.rs
@@ -4,7 +4,6 @@ fn main() {
     match 0 {
         (.. PAT) => {}
         //~^ ERROR `..X` range patterns are not supported
-        //~| ERROR exclusive range pattern syntax is experimental
     }
 }
 
diff --git a/src/test/ui/parser/pat-tuple-4.stderr b/src/test/ui/parser/pat-tuple-4.stderr
index af3ecce1846..1962dc4ff20 100644
--- a/src/test/ui/parser/pat-tuple-4.stderr
+++ b/src/test/ui/parser/pat-tuple-4.stderr
@@ -4,17 +4,8 @@ error: `..X` range patterns are not supported
 LL |         (.. PAT) => {}
    |          ^^^^^^ help: try using the minimum value for the type: `MIN..PAT`
 
-error[E0658]: exclusive range pattern syntax is experimental
-  --> $DIR/pat-tuple-4.rs:5:10
-   |
-LL |         (.. PAT) => {}
-   |          ^^^^^^
-   |
-   = note: for more information, see https://github.com/rust-lang/rust/issues/37854
-   = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
-
 error[E0308]: mismatched types
-  --> $DIR/pat-tuple-4.rs:11:30
+  --> $DIR/pat-tuple-4.rs:10:30
    |
 LL | const RECOVERY_WITNESS: () = 0;
    |                              ^ expected (), found integer
@@ -22,7 +13,6 @@ LL | const RECOVERY_WITNESS: () = 0;
    = note: expected type `()`
               found type `{integer}`
 
-error: aborting due to 3 previous errors
+error: aborting due to 2 previous errors
 
-Some errors have detailed explanations: E0308, E0658.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/parser/pat-tuple-5.stderr b/src/test/ui/parser/pat-tuple-5.stderr
index 09ebdc29a21..17155b4dd49 100644
--- a/src/test/ui/parser/pat-tuple-5.stderr
+++ b/src/test/ui/parser/pat-tuple-5.stderr
@@ -5,10 +5,10 @@ LL |         (PAT ..) => {}
    |          ^^^^^^ help: try using the maximum value for the type: `PAT..MAX`
 
 error[E0658]: exclusive range pattern syntax is experimental
-  --> $DIR/pat-tuple-5.rs:5:10
+  --> $DIR/pat-tuple-5.rs:5:14
    |
 LL |         (PAT ..) => {}
-   |          ^^^^^^
+   |              ^^
    |
    = note: for more information, see https://github.com/rust-lang/rust/issues/37854
    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
diff --git a/src/test/ui/pattern/rest-pat-syntactic.rs b/src/test/ui/pattern/rest-pat-syntactic.rs
index 9656a0b5de9..45b31f61253 100644
--- a/src/test/ui/pattern/rest-pat-syntactic.rs
+++ b/src/test/ui/pattern/rest-pat-syntactic.rs
@@ -3,6 +3,8 @@
 
 // check-pass
 
+#![feature(box_patterns)]
+
 fn main() {}
 
 macro_rules! accept_pat {
diff --git a/src/test/ui/proc-macro/proc-macro-deprecated-attr.rs b/src/test/ui/proc-macro/proc-macro-deprecated-attr.rs
new file mode 100644
index 00000000000..f1144a4a55b
--- /dev/null
+++ b/src/test/ui/proc-macro/proc-macro-deprecated-attr.rs
@@ -0,0 +1,16 @@
+// check-pass
+// force-host
+// no-prefer-dynamic
+
+#![deny(deprecated)]
+
+#![crate_type = "proc-macro"]
+
+extern crate proc_macro;
+use proc_macro::*;
+
+#[proc_macro]
+#[deprecated(since = "1.0.0", note = "test")]
+pub fn test_compile_without_warning_with_deprecated(_: TokenStream) -> TokenStream {
+    TokenStream::new()
+}
diff --git a/src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.rs b/src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.rs
new file mode 100644
index 00000000000..0096e296300
--- /dev/null
+++ b/src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.rs
@@ -0,0 +1,22 @@
+// aux-build:uninhabited.rs
+#![deny(unreachable_patterns)]
+#![feature(never_type)]
+#![feature(non_exhaustive)]
+
+extern crate uninhabited;
+
+use uninhabited::PartiallyInhabitedVariants;
+
+// This test checks a redundant/useless pattern of a non-exhaustive enum/variant is still
+// warned against.
+
+pub fn foo(x: PartiallyInhabitedVariants) {
+    match x {
+        PartiallyInhabitedVariants::Struct { .. } => {},
+        PartiallyInhabitedVariants::Struct { .. } => {},
+        //~^ ERROR unreachable pattern
+        _ => {},
+    }
+}
+
+fn main() { }
diff --git a/src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.stderr b/src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.stderr
new file mode 100644
index 00000000000..d46b1fd4c42
--- /dev/null
+++ b/src/test/ui/rfc-2008-non-exhaustive/uninhabited/issue-65157-repeated-match-arm.stderr
@@ -0,0 +1,14 @@
+error: unreachable pattern
+  --> $DIR/issue-65157-repeated-match-arm.rs:16:9
+   |
+LL |         PartiallyInhabitedVariants::Struct { .. } => {},
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/issue-65157-repeated-match-arm.rs:2:9
+   |
+LL | #![deny(unreachable_patterns)]
+   |         ^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/synthetic-param.stderr b/src/test/ui/synthetic-param.stderr
index f8d14f26f32..951d7edb7f5 100644
--- a/src/test/ui/synthetic-param.stderr
+++ b/src/test/ui/synthetic-param.stderr
@@ -1,20 +1,20 @@
 error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
-  --> $DIR/synthetic-param.rs:20:5
+  --> $DIR/synthetic-param.rs:20:12
    |
 LL |     func::<u8>(42);
-   |     ^^^^^^^^^^
+   |            ^^ explicit generic argument not allowed
 
 error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
-  --> $DIR/synthetic-param.rs:23:5
+  --> $DIR/synthetic-param.rs:23:17
    |
 LL |     Foo::func::<u8>(42);
-   |     ^^^^^^^^^^^^^^^
+   |                 ^^ explicit generic argument not allowed
 
 error[E0632]: cannot provide explicit generic arguments when `impl Trait` is used in argument position
-  --> $DIR/synthetic-param.rs:26:5
+  --> $DIR/synthetic-param.rs:26:23
    |
 LL |     Bar::<i8>::func::<u8>(42);
-   |     ^^^^^^^^^^^^^^^^^^^^^
+   |                       ^^ explicit generic argument not allowed
 
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.rs b/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.rs
index 5948d45b698..039bbce8c1e 100644
--- a/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.rs
+++ b/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.rs
@@ -4,4 +4,7 @@ trait Foo {}
 auto trait A = Foo; //~ ERROR trait aliases cannot be `auto`
 unsafe trait B = Foo; //~ ERROR trait aliases cannot be `unsafe`
 
+trait C: Ord = Eq; //~ ERROR bounds are not allowed on trait aliases
+trait D: = Eq; //~ ERROR bounds are not allowed on trait aliases
+
 fn main() {}
diff --git a/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.stderr b/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.stderr
index f456a2d778c..18c22133bc7 100644
--- a/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.stderr
+++ b/src/test/ui/traits/trait-alias/trait-alias-syntax-fail.stderr
@@ -1,14 +1,26 @@
 error: trait aliases cannot be `auto`
-  --> $DIR/trait-alias-syntax-fail.rs:4:19
+  --> $DIR/trait-alias-syntax-fail.rs:4:1
    |
 LL | auto trait A = Foo;
-   |                   ^ trait aliases cannot be `auto`
+   | ^^^^^^^^^^^^^^^^^^^ trait aliases cannot be `auto`
 
 error: trait aliases cannot be `unsafe`
-  --> $DIR/trait-alias-syntax-fail.rs:5:21
+  --> $DIR/trait-alias-syntax-fail.rs:5:1
    |
 LL | unsafe trait B = Foo;
-   |                     ^ trait aliases cannot be `unsafe`
+   | ^^^^^^^^^^^^^^^^^^^^^ trait aliases cannot be `unsafe`
 
-error: aborting due to 2 previous errors
+error: bounds are not allowed on trait aliases
+  --> $DIR/trait-alias-syntax-fail.rs:7:8
+   |
+LL | trait C: Ord = Eq;
+   |        ^^^^^
+
+error: bounds are not allowed on trait aliases
+  --> $DIR/trait-alias-syntax-fail.rs:8:8
+   |
+LL | trait D: = Eq;
+   |        ^
+
+error: aborting due to 4 previous errors
 
diff --git a/src/test/ui/type/type-path-err-node-types.stderr b/src/test/ui/type/type-path-err-node-types.stderr
index cd93525c762..ea9cca2bfaa 100644
--- a/src/test/ui/type/type-path-err-node-types.stderr
+++ b/src/test/ui/type/type-path-err-node-types.stderr
@@ -30,5 +30,5 @@ LL |     let _ = |a, b: _| -> _ { 0 };
 
 error: aborting due to 5 previous errors
 
-Some errors have detailed explanations: E0282, E0412, E0425, E0433.
+Some errors have detailed explanations: E0282, E0412, E0425, E0433, E0576.
 For more information about an error, try `rustc --explain E0282`.
diff --git a/src/test/ui/ufcs/ufcs-partially-resolved.stderr b/src/test/ui/ufcs/ufcs-partially-resolved.stderr
index 39752f66b9d..dee990ec3d1 100644
--- a/src/test/ui/ufcs/ufcs-partially-resolved.stderr
+++ b/src/test/ui/ufcs/ufcs-partially-resolved.stderr
@@ -200,5 +200,5 @@ LL |     <u8 as Dr>::X::N;
 
 error: aborting due to 32 previous errors
 
-Some errors have detailed explanations: E0223, E0433, E0575, E0599.
+Some errors have detailed explanations: E0223, E0433, E0575, E0576, E0599.
 For more information about an error, try `rustc --explain E0223`.