about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/rustdoc-js-std/osstring-to-string.js2
-rw-r--r--tests/rustdoc/auxiliary/jump-to-def-macro.rs6
-rw-r--r--tests/rustdoc/jump-to-def-macro.rs15
-rw-r--r--tests/rustdoc/source-code-highlight.rs29
-rw-r--r--tests/rustdoc/type-alias/primitive-local-link-121106.rs19
-rw-r--r--tests/ui-fulldeps/internal-lints/diagnostics.rs16
-rw-r--r--tests/ui-fulldeps/internal-lints/diagnostics.stderr4
-rw-r--r--tests/ui-fulldeps/session-diagnostic/diagnostic-derive-doc-comment-field.stderr4
-rw-r--r--tests/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr2
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-bare.rs (renamed from tests/ui/attributes/unix_sigpipe/unix_sigpipe.rs)0
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-bare.stderr (renamed from tests/ui/attributes/unix_sigpipe/unix_sigpipe.stderr)2
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.rs5
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.stderr14
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.rs2
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.stderr2
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-not-used.rs3
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-only-feature.rs13
-rw-r--r--tests/ui/attributes/unix_sigpipe/unix_sigpipe-sig_ign.rs (renamed from tests/ui/attributes/unix_sigpipe/unix_sigpipe-error.rs)0
-rw-r--r--tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.rs1
-rw-r--r--tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.stderr21
-rw-r--r--tests/ui/impl-trait/in-trait/async-and-ret-ref.rs2
-rw-r--r--tests/ui/impl-trait/in-trait/async-and-ret-ref.stderr4
-rw-r--r--tests/ui/impl-trait/in-trait/doesnt-satisfy.stderr4
-rw-r--r--tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.rs2
-rw-r--r--tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.stderr4
-rw-r--r--tests/ui/impl-trait/in-trait/return-dont-satisfy-bounds.stderr4
-rw-r--r--tests/ui/imports/auxiliary/import-alias-issue-121168-extern.rs1
-rw-r--r--tests/ui/imports/import-alias-issue-121168.edition2015.stderr14
-rw-r--r--tests/ui/imports/import-alias-issue-121168.edition2018.stderr16
-rw-r--r--tests/ui/imports/import-alias-issue-121168.edition2021.stderr16
-rw-r--r--tests/ui/imports/import-alias-issue-121168.rs14
-rw-r--r--tests/ui/parser/float-field.rs71
-rw-r--r--tests/ui/parser/float-field.stderr226
-rw-r--r--tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.stderr4
-rw-r--r--tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.aarch64.stderr (renamed from tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.aarch64.stderr)0
-rw-r--r--tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.rs (renamed from tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.rs)0
-rw-r--r--tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.x86_64.stderr (renamed from tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.x86_64.stderr)0
-rw-r--r--tests/ui/traits/next-solver/constrain-alias-goals-in-unsize.rs18
38 files changed, 367 insertions, 193 deletions
diff --git a/tests/rustdoc-js-std/osstring-to-string.js b/tests/rustdoc-js-std/osstring-to-string.js
index 17bb602a502..3fdc0b9f24a 100644
--- a/tests/rustdoc-js-std/osstring-to-string.js
+++ b/tests/rustdoc-js-std/osstring-to-string.js
@@ -4,6 +4,6 @@
 const EXPECTED = {
     'query': 'OsString -> String',
     'others': [
-        { 'path': 'std::ffi::OsString', 'name': 'into_string' },
+        { 'path': 'std::ffi::os_str::OsString', 'name': 'into_string' },
     ]
 };
diff --git a/tests/rustdoc/auxiliary/jump-to-def-macro.rs b/tests/rustdoc/auxiliary/jump-to-def-macro.rs
new file mode 100644
index 00000000000..f442b9461e8
--- /dev/null
+++ b/tests/rustdoc/auxiliary/jump-to-def-macro.rs
@@ -0,0 +1,6 @@
+#[macro_export]
+macro_rules! symbols {
+    ($name:ident = $value:expr) => {
+        pub const $name: isize = $value;
+    }
+}
diff --git a/tests/rustdoc/jump-to-def-macro.rs b/tests/rustdoc/jump-to-def-macro.rs
new file mode 100644
index 00000000000..e8e97a442dd
--- /dev/null
+++ b/tests/rustdoc/jump-to-def-macro.rs
@@ -0,0 +1,15 @@
+//@ aux-build:jump-to-def-macro.rs
+//@ build-aux-docs
+//@ compile-flags: -Zunstable-options --generate-link-to-definition
+
+#![crate_name = "foo"]
+
+// @has 'src/foo/jump-to-def-macro.rs.html'
+
+#[macro_use]
+extern crate jump_to_def_macro;
+
+// @has - '//a[@href="../../jump_to_def_macro/macro.symbols.html"]' 'symbols!'
+symbols! {
+    A = 12
+}
diff --git a/tests/rustdoc/source-code-highlight.rs b/tests/rustdoc/source-code-highlight.rs
new file mode 100644
index 00000000000..0a1be791ec2
--- /dev/null
+++ b/tests/rustdoc/source-code-highlight.rs
@@ -0,0 +1,29 @@
+// We need this option to be enabled for the `foo` macro declaration to ensure
+// that the link on the ident is not including whitespace characters.
+
+//@ compile-flags: -Zunstable-options --generate-link-to-definition
+#![crate_name = "foo"]
+
+// @has 'src/foo/source-code-highlight.rs.html'
+
+// @hasraw - '<a href="../../foo/macro.foo.html">foo</a>'
+#[macro_export]
+macro_rules! foo {
+    () => {}
+}
+
+// @hasraw - '<span class="macro">foo!</span>'
+foo! {}
+
+// @hasraw - '<a href="../../foo/fn.f.html">f</a>'
+#[rustfmt::skip]
+pub fn f () {}
+// @hasraw - '<a href="../../foo/struct.Bar.html">Bar</a>'
+// @hasraw - '<a href="../../foo/struct.Bar.html">Bar</a>'
+// @hasraw - '<a href="{{channel}}/std/primitive.u32.html">u32</a>'
+#[rustfmt::skip]
+pub struct Bar ( u32 );
+// @hasraw - '<a href="../../foo/enum.Foo.html">Foo</a>'
+pub enum Foo {
+    A,
+}
diff --git a/tests/rustdoc/type-alias/primitive-local-link-121106.rs b/tests/rustdoc/type-alias/primitive-local-link-121106.rs
new file mode 100644
index 00000000000..c11d35d8646
--- /dev/null
+++ b/tests/rustdoc/type-alias/primitive-local-link-121106.rs
@@ -0,0 +1,19 @@
+#![crate_name = "foo"]
+
+#![feature(rustc_attrs)]
+
+// @has foo/primitive.i32.html '//h1' 'Primitive Type i32'
+// @has foo/index.html '//a/@href' '../foo/index.html'
+#[rustc_doc_primitive = "i32"]
+mod i32 {}
+
+// @has foo/struct.Node.html '//a/@href' 'primitive.i32.html'
+pub struct Node;
+
+impl Node {
+    pub fn edge(&self) -> i32 { 0 }
+}
+
+// @!has foo/type.Alias.html '//a/@href' 'primitive.i32.html'
+// @hasraw 'type.impl/foo/struct.Node.js' 'href=\"foo/primitive.i32.html\"'
+pub type Alias = Node;
diff --git a/tests/ui-fulldeps/internal-lints/diagnostics.rs b/tests/ui-fulldeps/internal-lints/diagnostics.rs
index 42270d2bbde..8dcc34d4f60 100644
--- a/tests/ui-fulldeps/internal-lints/diagnostics.rs
+++ b/tests/ui-fulldeps/internal-lints/diagnostics.rs
@@ -13,8 +13,8 @@ extern crate rustc_session;
 extern crate rustc_span;
 
 use rustc_errors::{
-    AddToDiagnostic, Diagnostic, DiagnosticBuilder, DiagnosticMessage, EmissionGuarantee, DiagCtxt,
-    IntoDiagnostic, Level, SubdiagnosticMessageOp,
+    AddToDiagnostic, Diag, EmissionGuarantee, DiagCtxt, IntoDiagnostic, Level,
+    SubdiagnosticMessageOp,
 };
 use rustc_macros::{Diagnostic, Subdiagnostic};
 use rustc_span::Span;
@@ -38,8 +38,8 @@ struct Note {
 pub struct UntranslatableInIntoDiagnostic;
 
 impl<'a, G: EmissionGuarantee> IntoDiagnostic<'a, G> for UntranslatableInIntoDiagnostic {
-    fn into_diagnostic(self, dcx: &'a DiagCtxt, level: Level) -> DiagnosticBuilder<'a, G> {
-        DiagnosticBuilder::new(dcx, level, "untranslatable diagnostic")
+    fn into_diagnostic(self, dcx: &'a DiagCtxt, level: Level) -> Diag<'a, G> {
+        Diag::new(dcx, level, "untranslatable diagnostic")
         //~^ ERROR diagnostics should be created using translatable messages
     }
 }
@@ -47,8 +47,8 @@ impl<'a, G: EmissionGuarantee> IntoDiagnostic<'a, G> for UntranslatableInIntoDia
 pub struct TranslatableInIntoDiagnostic;
 
 impl<'a, G: EmissionGuarantee> IntoDiagnostic<'a, G> for TranslatableInIntoDiagnostic {
-    fn into_diagnostic(self, dcx: &'a DiagCtxt, level: Level) -> DiagnosticBuilder<'a, G> {
-        DiagnosticBuilder::new(dcx, level, crate::fluent_generated::no_crate_example)
+    fn into_diagnostic(self, dcx: &'a DiagCtxt, level: Level) -> Diag<'a, G> {
+        Diag::new(dcx, level, crate::fluent_generated::no_crate_example)
     }
 }
 
@@ -57,7 +57,7 @@ pub struct UntranslatableInAddToDiagnostic;
 impl AddToDiagnostic for UntranslatableInAddToDiagnostic {
     fn add_to_diagnostic_with<G: EmissionGuarantee, F: SubdiagnosticMessageOp<G>>(
         self,
-        diag: &mut DiagnosticBuilder<'_, G>,
+        diag: &mut Diag<'_, G>,
         f: F,
     ) {
         diag.note("untranslatable diagnostic");
@@ -70,7 +70,7 @@ pub struct TranslatableInAddToDiagnostic;
 impl AddToDiagnostic for TranslatableInAddToDiagnostic {
     fn add_to_diagnostic_with<G: EmissionGuarantee, F: SubdiagnosticMessageOp<G>>(
         self,
-        diag: &mut DiagnosticBuilder<'_, G>,
+        diag: &mut Diag<'_, G>,
         f: F,
     ) {
         diag.note(crate::fluent_generated::no_crate_note);
diff --git a/tests/ui-fulldeps/internal-lints/diagnostics.stderr b/tests/ui-fulldeps/internal-lints/diagnostics.stderr
index a69a71bf50e..1b1ad7d5892 100644
--- a/tests/ui-fulldeps/internal-lints/diagnostics.stderr
+++ b/tests/ui-fulldeps/internal-lints/diagnostics.stderr
@@ -1,8 +1,8 @@
 error: diagnostics should be created using translatable messages
   --> $DIR/diagnostics.rs:42:9
    |
-LL |         DiagnosticBuilder::new(dcx, level, "untranslatable diagnostic")
-   |         ^^^^^^^^^^^^^^^^^^^^^^
+LL |         Diag::new(dcx, level, "untranslatable diagnostic")
+   |         ^^^^^^^^^
    |
 note: the lint level is defined here
   --> $DIR/diagnostics.rs:6:9
diff --git a/tests/ui-fulldeps/session-diagnostic/diagnostic-derive-doc-comment-field.stderr b/tests/ui-fulldeps/session-diagnostic/diagnostic-derive-doc-comment-field.stderr
index 7844e60c654..98600d28229 100644
--- a/tests/ui-fulldeps/session-diagnostic/diagnostic-derive-doc-comment-field.stderr
+++ b/tests/ui-fulldeps/session-diagnostic/diagnostic-derive-doc-comment-field.stderr
@@ -8,7 +8,7 @@ LL |     arg: NotIntoDiagnosticArg,
    |          ^^^^^^^^^^^^^^^^^^^^ the trait `IntoDiagnosticArg` is not implemented for `NotIntoDiagnosticArg`
    |
    = help: normalized in stderr
-note: required by a bound in `DiagnosticBuilder::<'a, G>::arg`
+note: required by a bound in `Diag::<'a, G>::arg`
   --> $COMPILER_DIR/rustc_errors/src/diagnostic.rs:LL:CC
    = note: this error originates in the macro `with_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
 
@@ -22,7 +22,7 @@ LL |     arg: NotIntoDiagnosticArg,
    |          ^^^^^^^^^^^^^^^^^^^^ the trait `IntoDiagnosticArg` is not implemented for `NotIntoDiagnosticArg`
    |
    = help: normalized in stderr
-note: required by a bound in `DiagnosticBuilder::<'a, G>::arg`
+note: required by a bound in `Diag::<'a, G>::arg`
   --> $COMPILER_DIR/rustc_errors/src/diagnostic.rs:LL:CC
    = note: this error originates in the macro `with_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
 
diff --git a/tests/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr b/tests/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr
index 8732629db47..058c88d315b 100644
--- a/tests/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr
+++ b/tests/ui-fulldeps/session-diagnostic/diagnostic-derive.stderr
@@ -628,7 +628,7 @@ LL |     other: Hello,
    |            ^^^^^ the trait `IntoDiagnosticArg` is not implemented for `Hello`
    |
    = help: normalized in stderr
-note: required by a bound in `DiagnosticBuilder::<'a, G>::arg`
+note: required by a bound in `Diag::<'a, G>::arg`
   --> $COMPILER_DIR/rustc_errors/src/diagnostic.rs:LL:CC
    = note: this error originates in the macro `with_fn` (in Nightly builds, run with -Z macro-backtrace for more info)
 
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe.rs b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-bare.rs
index 7bf1c7350c3..7bf1c7350c3 100644
--- a/tests/ui/attributes/unix_sigpipe/unix_sigpipe.rs
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-bare.rs
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe.stderr b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-bare.stderr
index b18ec9abc37..56218ed499e 100644
--- a/tests/ui/attributes/unix_sigpipe/unix_sigpipe.stderr
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-bare.stderr
@@ -1,5 +1,5 @@
 error: valid values for `#[unix_sigpipe = "..."]` are `inherit`, `sig_ign`, or `sig_dfl`
-  --> $DIR/unix_sigpipe.rs:3:1
+  --> $DIR/unix_sigpipe-bare.rs:3:1
    |
 LL | #[unix_sigpipe]
    | ^^^^^^^^^^^^^^^
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.rs b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.rs
new file mode 100644
index 00000000000..294cb38526b
--- /dev/null
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.rs
@@ -0,0 +1,5 @@
+#![feature(unix_sigpipe)]
+
+#[unix_sigpipe = "sig_ign"]
+#[unix_sigpipe = "inherit"] //~ error: multiple `unix_sigpipe` attributes
+fn main() {}
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.stderr b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.stderr
new file mode 100644
index 00000000000..c2a3b9f45f9
--- /dev/null
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-different-duplicates.stderr
@@ -0,0 +1,14 @@
+error: multiple `unix_sigpipe` attributes
+  --> $DIR/unix_sigpipe-different-duplicates.rs:4:1
+   |
+LL | #[unix_sigpipe = "inherit"]
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove this attribute
+   |
+note: attribute also specified here
+  --> $DIR/unix_sigpipe-different-duplicates.rs:3:1
+   |
+LL | #[unix_sigpipe = "sig_ign"]
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 1 previous error
+
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.rs b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.rs
index 294cb38526b..eccb23021b6 100644
--- a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.rs
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.rs
@@ -1,5 +1,5 @@
 #![feature(unix_sigpipe)]
 
-#[unix_sigpipe = "sig_ign"]
+#[unix_sigpipe = "inherit"]
 #[unix_sigpipe = "inherit"] //~ error: multiple `unix_sigpipe` attributes
 fn main() {}
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.stderr b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.stderr
index 931aae96b0f..c86e54a1e53 100644
--- a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.stderr
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-duplicates.stderr
@@ -7,7 +7,7 @@ LL | #[unix_sigpipe = "inherit"]
 note: attribute also specified here
   --> $DIR/unix_sigpipe-duplicates.rs:3:1
    |
-LL | #[unix_sigpipe = "sig_ign"]
+LL | #[unix_sigpipe = "inherit"]
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error: aborting due to 1 previous error
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-not-used.rs b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-not-used.rs
index 778e06cb3ef..b0044f5e919 100644
--- a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-not-used.rs
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-not-used.rs
@@ -1,6 +1,9 @@
+//@ revisions: with_feature without_feature
 //@ run-pass
 //@ aux-build:sigpipe-utils.rs
 
+#![cfg_attr(with_feature, feature(unix_sigpipe))]
+
 fn main() {
     extern crate sigpipe_utils;
 
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-only-feature.rs b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-only-feature.rs
deleted file mode 100644
index 6bbe4a8d0d6..00000000000
--- a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-only-feature.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-//@ run-pass
-//@ aux-build:sigpipe-utils.rs
-
-#![feature(unix_sigpipe)]
-
-fn main() {
-    extern crate sigpipe_utils;
-
-    // Only #![feature(unix_sigpipe)] is enabled, not #[unix_sigpipe = "..."].
-    // This shall not change any behavior, so we still expect SIGPIPE to be
-    // ignored
-    sigpipe_utils::assert_sigpipe_handler(sigpipe_utils::SignalHandler::Ignore);
-}
diff --git a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-error.rs b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-sig_ign.rs
index ccd6c678660..ccd6c678660 100644
--- a/tests/ui/attributes/unix_sigpipe/unix_sigpipe-error.rs
+++ b/tests/ui/attributes/unix_sigpipe/unix_sigpipe-sig_ign.rs
diff --git a/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.rs b/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.rs
index 66d562d2eb5..5c2c3b8ec61 100644
--- a/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.rs
+++ b/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.rs
@@ -1,6 +1,5 @@
 const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e−11; // m³⋅kg⁻¹⋅s⁻²
 //~^ ERROR expected at least one digit in exponent
 //~| ERROR unknown start of token: \u{2212}
-//~| ERROR cannot subtract `{integer}` from `{float}`
 
 fn main() {}
diff --git a/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.stderr b/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.stderr
index 44bdbb93ff5..4b3d429c750 100644
--- a/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.stderr
+++ b/tests/ui/did_you_mean/issue-49746-unicode-confusable-in-float-literal-expt.stderr
@@ -15,24 +15,5 @@ help: Unicode character '−' (Minus Sign) looks like '-' (Minus/Hyphen), but it
 LL | const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e-11; // m³⋅kg⁻¹⋅s⁻²
    |                                                     ~
 
-error[E0277]: cannot subtract `{integer}` from `{float}`
-  --> $DIR/issue-49746-unicode-confusable-in-float-literal-expt.rs:1:53
-   |
-LL | const UNIVERSAL_GRAVITATIONAL_CONSTANT: f64 = 6.674e−11; // m³⋅kg⁻¹⋅s⁻²
-   |                                                     ^ no implementation for `{float} - {integer}`
-   |
-   = help: the trait `Sub<{integer}>` is not implemented for `{float}`
-   = help: the following other types implement trait `Sub<Rhs>`:
-             <isize as Sub>
-             <isize as Sub<&isize>>
-             <i8 as Sub>
-             <i8 as Sub<&i8>>
-             <i16 as Sub>
-             <i16 as Sub<&i16>>
-             <i32 as Sub>
-             <i32 as Sub<&i32>>
-           and 48 others
-
-error: aborting due to 3 previous errors
+error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0277`.
diff --git a/tests/ui/impl-trait/in-trait/async-and-ret-ref.rs b/tests/ui/impl-trait/in-trait/async-and-ret-ref.rs
index e991b74a0f8..e0a7aef2c5f 100644
--- a/tests/ui/impl-trait/in-trait/async-and-ret-ref.rs
+++ b/tests/ui/impl-trait/in-trait/async-and-ret-ref.rs
@@ -5,7 +5,7 @@ trait T {}
 
 trait MyTrait {
     async fn foo() -> &'static impl T;
-    //~^ ERROR the associated type `<Self as MyTrait>::{opaque#0}` may not live long enough
+    //~^ ERROR the associated type `impl T` may not live long enough
 }
 
 fn main() {}
diff --git a/tests/ui/impl-trait/in-trait/async-and-ret-ref.stderr b/tests/ui/impl-trait/in-trait/async-and-ret-ref.stderr
index 15aa3cf54bb..19ffff9d3f2 100644
--- a/tests/ui/impl-trait/in-trait/async-and-ret-ref.stderr
+++ b/tests/ui/impl-trait/in-trait/async-and-ret-ref.stderr
@@ -1,10 +1,10 @@
-error[E0310]: the associated type `<Self as MyTrait>::{opaque#0}` may not live long enough
+error[E0310]: the associated type `impl T` may not live long enough
   --> $DIR/async-and-ret-ref.rs:7:5
    |
 LL |     async fn foo() -> &'static impl T;
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |     |
-   |     the associated type `<Self as MyTrait>::{opaque#0}` must be valid for the static lifetime...
+   |     the associated type `impl T` must be valid for the static lifetime...
    |     ...so that the reference type `&'static impl T` does not outlive the data it points at
 
 error: aborting due to 1 previous error
diff --git a/tests/ui/impl-trait/in-trait/doesnt-satisfy.stderr b/tests/ui/impl-trait/in-trait/doesnt-satisfy.stderr
index baee1b5db6e..fc3efb44ac7 100644
--- a/tests/ui/impl-trait/in-trait/doesnt-satisfy.stderr
+++ b/tests/ui/impl-trait/in-trait/doesnt-satisfy.stderr
@@ -6,11 +6,11 @@ LL |     fn bar() -> () {}
    |
    = help: the trait `std::fmt::Display` is not implemented for `()`
    = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead
-note: required by a bound in `Foo::{opaque#0}`
+note: required by a bound in `Foo::{synthetic#0}`
   --> $DIR/doesnt-satisfy.rs:2:22
    |
 LL |     fn bar() -> impl std::fmt::Display;
-   |                      ^^^^^^^^^^^^^^^^^ required by this bound in `Foo::{opaque#0}`
+   |                      ^^^^^^^^^^^^^^^^^ required by this bound in `Foo::{synthetic#0}`
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.rs b/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.rs
index a36799c3ebd..ee9ecdda902 100644
--- a/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.rs
+++ b/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.rs
@@ -9,7 +9,7 @@ trait Erased {
 impl<T: Original> Erased for T {
     fn f(&self) -> Box<dyn Fn()> {
         Box::new(<T as Original>::f())
-        //~^ ERROR the associated type `<T as Original>::{opaque#0}` may not live long enough
+        //~^ ERROR the associated type `impl Fn()` may not live long enough
     }
 }
 
diff --git a/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.stderr b/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.stderr
index 5ec0ee38347..1f787c1842c 100644
--- a/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.stderr
+++ b/tests/ui/impl-trait/in-trait/missing-static-bound-from-impl.stderr
@@ -1,10 +1,10 @@
-error[E0310]: the associated type `<T as Original>::{opaque#0}` may not live long enough
+error[E0310]: the associated type `impl Fn()` may not live long enough
   --> $DIR/missing-static-bound-from-impl.rs:11:9
    |
 LL |         Box::new(<T as Original>::f())
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |         |
-   |         the associated type `<T as Original>::{opaque#0}` must be valid for the static lifetime...
+   |         the associated type `impl Fn()` must be valid for the static lifetime...
    |         ...so that the type `impl Fn()` will meet its required lifetime bounds
 
 error: aborting due to 1 previous error
diff --git a/tests/ui/impl-trait/in-trait/return-dont-satisfy-bounds.stderr b/tests/ui/impl-trait/in-trait/return-dont-satisfy-bounds.stderr
index 638de01f913..12725c3456f 100644
--- a/tests/ui/impl-trait/in-trait/return-dont-satisfy-bounds.stderr
+++ b/tests/ui/impl-trait/in-trait/return-dont-satisfy-bounds.stderr
@@ -5,11 +5,11 @@ LL |     fn foo<F2: Foo<u8>>(self) -> impl Foo<u8> {
    |                                  ^^^^^^^^^^^^ the trait `Foo<char>` is not implemented for `impl Foo<u8>`
    |
    = help: the trait `Foo<char>` is implemented for `Bar`
-note: required by a bound in `Foo::{opaque#0}`
+note: required by a bound in `Foo::{synthetic#0}`
   --> $DIR/return-dont-satisfy-bounds.rs:2:30
    |
 LL |     fn foo<F2>(self) -> impl Foo<T>;
-   |                              ^^^^^^ required by this bound in `Foo::{opaque#0}`
+   |                              ^^^^^^ required by this bound in `Foo::{synthetic#0}`
 
 error[E0276]: impl has stricter requirements than trait
   --> $DIR/return-dont-satisfy-bounds.rs:8:16
diff --git a/tests/ui/imports/auxiliary/import-alias-issue-121168-extern.rs b/tests/ui/imports/auxiliary/import-alias-issue-121168-extern.rs
new file mode 100644
index 00000000000..a665eb8eb96
--- /dev/null
+++ b/tests/ui/imports/auxiliary/import-alias-issue-121168-extern.rs
@@ -0,0 +1 @@
+pub struct Foo<T>(pub core::ptr::NonNull<T>);
diff --git a/tests/ui/imports/import-alias-issue-121168.edition2015.stderr b/tests/ui/imports/import-alias-issue-121168.edition2015.stderr
new file mode 100644
index 00000000000..47001fc1a52
--- /dev/null
+++ b/tests/ui/imports/import-alias-issue-121168.edition2015.stderr
@@ -0,0 +1,14 @@
+error[E0412]: cannot find type `Foo` in this scope
+  --> $DIR/import-alias-issue-121168.rs:11:12
+   |
+LL |     let _: Foo<i32> = todo!();
+   |            ^^^ not found in this scope
+   |
+help: consider importing this struct
+   |
+LL + use nice_crate_name::Foo;
+   |
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/tests/ui/imports/import-alias-issue-121168.edition2018.stderr b/tests/ui/imports/import-alias-issue-121168.edition2018.stderr
new file mode 100644
index 00000000000..b61a0e3edd5
--- /dev/null
+++ b/tests/ui/imports/import-alias-issue-121168.edition2018.stderr
@@ -0,0 +1,16 @@
+error[E0412]: cannot find type `Foo` in this scope
+  --> $DIR/import-alias-issue-121168.rs:11:12
+   |
+LL |     let _: Foo<i32> = todo!();
+   |            ^^^ not found in this scope
+   |
+help: consider importing one of these items
+   |
+LL + use crate::nice_crate_name::Foo;
+   |
+LL + use import_alias_issue_121168_extern::Foo;
+   |
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/tests/ui/imports/import-alias-issue-121168.edition2021.stderr b/tests/ui/imports/import-alias-issue-121168.edition2021.stderr
new file mode 100644
index 00000000000..b61a0e3edd5
--- /dev/null
+++ b/tests/ui/imports/import-alias-issue-121168.edition2021.stderr
@@ -0,0 +1,16 @@
+error[E0412]: cannot find type `Foo` in this scope
+  --> $DIR/import-alias-issue-121168.rs:11:12
+   |
+LL |     let _: Foo<i32> = todo!();
+   |            ^^^ not found in this scope
+   |
+help: consider importing one of these items
+   |
+LL + use crate::nice_crate_name::Foo;
+   |
+LL + use import_alias_issue_121168_extern::Foo;
+   |
+
+error: aborting due to 1 previous error
+
+For more information about this error, try `rustc --explain E0412`.
diff --git a/tests/ui/imports/import-alias-issue-121168.rs b/tests/ui/imports/import-alias-issue-121168.rs
new file mode 100644
index 00000000000..826a6765b03
--- /dev/null
+++ b/tests/ui/imports/import-alias-issue-121168.rs
@@ -0,0 +1,14 @@
+//@ revisions: edition2015 edition2018 edition2021
+//@ [edition2015] edition:2015
+//@ [edition2018] edition:2018
+//@ [edition2021] edition:2021
+//@ compile-flags: --extern import_alias_issue_121168_extern
+//@ aux-build: import-alias-issue-121168-extern.rs
+
+extern crate import_alias_issue_121168_extern as nice_crate_name;
+
+fn use_foo_from_another_crate_without_importing_it_first() {
+    let _: Foo<i32> = todo!(); //~ ERROR cannot find type `Foo` in this scope
+}
+
+fn main() {}
diff --git a/tests/ui/parser/float-field.rs b/tests/ui/parser/float-field.rs
index eaa7465dc4d..59fefee26aa 100644
--- a/tests/ui/parser/float-field.rs
+++ b/tests/ui/parser/float-field.rs
@@ -3,60 +3,91 @@ struct S(u8, (u8, u8));
 fn main() {
     let s = S(0, (0, 0));
 
-    s.1e1; //~ ERROR no field `1e1` on type `S`
-    s.1.; //~ ERROR unexpected token: `;`
-    s.1.1;
-    s.1.1e1; //~ ERROR no field `1e1` on type `(u8, u8)`
+    { s.1e1; } //~ ERROR no field `1e1` on type `S`
+
+    { s.1.; } //~ ERROR unexpected token: `;`
+
+    { s.1.1; }
+
+    { s.1.1e1; } //~ ERROR no field `1e1` on type `(u8, u8)`
+
     { s.1e+; } //~ ERROR unexpected token: `1e+`
                //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+`
                //~| ERROR expected at least one digit in exponent
+
     { s.1e-; } //~ ERROR unexpected token: `1e-`
                //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-`
                //~| ERROR expected at least one digit in exponent
+
     { s.1e+1; } //~ ERROR unexpected token: `1e+1`
                 //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+1`
+
     { s.1e-1; } //~ ERROR unexpected token: `1e-1`
                 //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-1`
+
     { s.1.1e+1; } //~ ERROR unexpected token: `1.1e+1`
                   //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e+1`
+
     { s.1.1e-1; } //~ ERROR unexpected token: `1.1e-1`
                   //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e-1`
-    s.0x1e1;  //~ ERROR no field `0x1e1` on type `S`
-    s.0x1.; //~ ERROR no field `0x1` on type `S`
-            //~| ERROR hexadecimal float literal is not supported
-            //~| ERROR unexpected token: `;`
-    s.0x1.1; //~ ERROR no field `0x1` on type `S`
-             //~| ERROR hexadecimal float literal is not supported
-    s.0x1.1e1; //~ ERROR no field `0x1` on type `S`
-               //~| ERROR hexadecimal float literal is not supported
+
+    { s.0x1e1; } //~ ERROR no field `0x1e1` on type `S`
+
+    { s.0x1.; } //~ ERROR hexadecimal float literal is not supported
+                //~| ERROR unexpected token: `0x1.`
+                //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.`
+
+    { s.0x1.1; } //~ ERROR hexadecimal float literal is not supported
+                 //~| ERROR unexpected token: `0x1.1`
+                 //~| expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1`
+
+    { s.0x1.1e1; } //~ ERROR hexadecimal float literal is not supported
+                   //~| ERROR unexpected token: `0x1.1e1`
+                   //~| expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1e1`
+
     { s.0x1e+; } //~ ERROR expected expression, found `;`
+
     { s.0x1e-; } //~ ERROR expected expression, found `;`
-    s.0x1e+1; //~ ERROR no field `0x1e` on type `S`
-    s.0x1e-1; //~ ERROR no field `0x1e` on type `S`
+
+    { s.0x1e+1; } //~ ERROR no field `0x1e` on type `S`
+
+    { s.0x1e-1; } //~ ERROR no field `0x1e` on type `S`
+
     { s.0x1.1e+1; } //~ ERROR unexpected token: `0x1.1e+1`
                     //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1e+1`
                     //~| ERROR hexadecimal float literal is not supported
+
     { s.0x1.1e-1; } //~ ERROR unexpected token: `0x1.1e-1`
                     //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1e-1`
                     //~| ERROR hexadecimal float literal is not supported
-    s.1e1f32; //~ ERROR no field `1e1` on type `S`
-              //~| ERROR suffixes on a tuple index are invalid
-    s.1.f32; //~ ERROR no field `f32` on type `(u8, u8)`
-    s.1.1f32; //~ ERROR suffixes on a tuple index are invalid
-    s.1.1e1f32; //~ ERROR no field `1e1` on type `(u8, u8)`
-                //~| ERROR suffixes on a tuple index are invalid
+
+    { s.1e1f32; } //~ ERROR no field `1e1` on type `S`
+                  //~| ERROR suffixes on a tuple index are invalid
+
+    { s.1.f32; } //~ ERROR no field `f32` on type `(u8, u8)`
+
+    { s.1.1f32; } //~ ERROR suffixes on a tuple index are invalid
+
+    { s.1.1e1f32; } //~ ERROR no field `1e1` on type `(u8, u8)`
+                    //~| ERROR suffixes on a tuple index are invalid
+
     { s.1e+f32; } //~ ERROR unexpected token: `1e+f32`
                   //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+f32`
                   //~| ERROR expected at least one digit in exponent
+
     { s.1e-f32; } //~ ERROR unexpected token: `1e-f32`
                   //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-f32`
                   //~| ERROR expected at least one digit in exponent
+
     { s.1e+1f32; } //~ ERROR unexpected token: `1e+1f32`
                    //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+1f32`
+
     { s.1e-1f32; } //~ ERROR unexpected token: `1e-1f32`
                    //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-1f32`
+
     { s.1.1e+1f32; } //~ ERROR unexpected token: `1.1e+1f32`
                     //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e+1f32`
+
     { s.1.1e-1f32; } //~ ERROR unexpected token: `1.1e-1f32`
                     //~| ERROR expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e-1f32`
 }
diff --git a/tests/ui/parser/float-field.stderr b/tests/ui/parser/float-field.stderr
index d67d270ef7b..0cc1b0767dc 100644
--- a/tests/ui/parser/float-field.stderr
+++ b/tests/ui/parser/float-field.stderr
@@ -1,349 +1,355 @@
 error: expected at least one digit in exponent
-  --> $DIR/float-field.rs:10:9
+  --> $DIR/float-field.rs:14:9
    |
 LL |     { s.1e+; }
    |         ^^^
 
 error: expected at least one digit in exponent
-  --> $DIR/float-field.rs:13:9
+  --> $DIR/float-field.rs:18:9
    |
 LL |     { s.1e-; }
    |         ^^^
 
 error: hexadecimal float literal is not supported
-  --> $DIR/float-field.rs:25:7
+  --> $DIR/float-field.rs:36:9
    |
-LL |     s.0x1.;
-   |       ^^^^
+LL |     { s.0x1.; }
+   |         ^^^^
 
 error: hexadecimal float literal is not supported
-  --> $DIR/float-field.rs:28:7
+  --> $DIR/float-field.rs:40:9
    |
-LL |     s.0x1.1;
-   |       ^^^^^
+LL |     { s.0x1.1; }
+   |         ^^^^^
 
 error: hexadecimal float literal is not supported
-  --> $DIR/float-field.rs:30:7
+  --> $DIR/float-field.rs:44:9
    |
-LL |     s.0x1.1e1;
-   |       ^^^^^^^
+LL |     { s.0x1.1e1; }
+   |         ^^^^^^^
 
 error: hexadecimal float literal is not supported
-  --> $DIR/float-field.rs:36:9
+  --> $DIR/float-field.rs:56:9
    |
 LL |     { s.0x1.1e+1; }
    |         ^^^^^^^^
 
 error: hexadecimal float literal is not supported
-  --> $DIR/float-field.rs:39:9
+  --> $DIR/float-field.rs:60:9
    |
 LL |     { s.0x1.1e-1; }
    |         ^^^^^^^^
 
 error: expected at least one digit in exponent
-  --> $DIR/float-field.rs:48:9
+  --> $DIR/float-field.rs:74:9
    |
 LL |     { s.1e+f32; }
    |         ^^^^^^
 
 error: expected at least one digit in exponent
-  --> $DIR/float-field.rs:51:9
+  --> $DIR/float-field.rs:78:9
    |
 LL |     { s.1e-f32; }
    |         ^^^^^^
 
 error: unexpected token: `;`
-  --> $DIR/float-field.rs:7:9
+  --> $DIR/float-field.rs:8:11
    |
-LL |     s.1.;
-   |         ^
+LL |     { s.1.; }
+   |           ^
 
 error: unexpected token: `1e+`
-  --> $DIR/float-field.rs:10:9
+  --> $DIR/float-field.rs:14:9
    |
 LL |     { s.1e+; }
    |         ^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+`
-  --> $DIR/float-field.rs:10:9
+  --> $DIR/float-field.rs:14:9
    |
 LL |     { s.1e+; }
    |         ^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1e-`
-  --> $DIR/float-field.rs:13:9
+  --> $DIR/float-field.rs:18:9
    |
 LL |     { s.1e-; }
    |         ^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-`
-  --> $DIR/float-field.rs:13:9
+  --> $DIR/float-field.rs:18:9
    |
 LL |     { s.1e-; }
    |         ^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1e+1`
-  --> $DIR/float-field.rs:16:9
+  --> $DIR/float-field.rs:22:9
    |
 LL |     { s.1e+1; }
    |         ^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+1`
-  --> $DIR/float-field.rs:16:9
+  --> $DIR/float-field.rs:22:9
    |
 LL |     { s.1e+1; }
    |         ^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1e-1`
-  --> $DIR/float-field.rs:18:9
+  --> $DIR/float-field.rs:25:9
    |
 LL |     { s.1e-1; }
    |         ^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-1`
-  --> $DIR/float-field.rs:18:9
+  --> $DIR/float-field.rs:25:9
    |
 LL |     { s.1e-1; }
    |         ^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1.1e+1`
-  --> $DIR/float-field.rs:20:9
+  --> $DIR/float-field.rs:28:9
    |
 LL |     { s.1.1e+1; }
    |         ^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e+1`
-  --> $DIR/float-field.rs:20:9
+  --> $DIR/float-field.rs:28:9
    |
 LL |     { s.1.1e+1; }
    |         ^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1.1e-1`
-  --> $DIR/float-field.rs:22:9
+  --> $DIR/float-field.rs:31:9
    |
 LL |     { s.1.1e-1; }
    |         ^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e-1`
-  --> $DIR/float-field.rs:22:9
+  --> $DIR/float-field.rs:31:9
    |
 LL |     { s.1.1e-1; }
    |         ^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
-error: unexpected token: `;`
-  --> $DIR/float-field.rs:25:11
+error: unexpected token: `0x1.`
+  --> $DIR/float-field.rs:36:9
    |
-LL |     s.0x1.;
-   |           ^
+LL |     { s.0x1.; }
+   |         ^^^^
+
+error: expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.`
+  --> $DIR/float-field.rs:36:9
+   |
+LL |     { s.0x1.; }
+   |         ^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
+
+error: unexpected token: `0x1.1`
+  --> $DIR/float-field.rs:40:9
+   |
+LL |     { s.0x1.1; }
+   |         ^^^^^
+
+error: expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1`
+  --> $DIR/float-field.rs:40:9
+   |
+LL |     { s.0x1.1; }
+   |         ^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
+
+error: unexpected token: `0x1.1e1`
+  --> $DIR/float-field.rs:44:9
+   |
+LL |     { s.0x1.1e1; }
+   |         ^^^^^^^
+
+error: expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1e1`
+  --> $DIR/float-field.rs:44:9
+   |
+LL |     { s.0x1.1e1; }
+   |         ^^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: expected expression, found `;`
-  --> $DIR/float-field.rs:32:14
+  --> $DIR/float-field.rs:48:14
    |
 LL |     { s.0x1e+; }
    |              ^ expected expression
 
 error: expected expression, found `;`
-  --> $DIR/float-field.rs:33:14
+  --> $DIR/float-field.rs:50:14
    |
 LL |     { s.0x1e-; }
    |              ^ expected expression
 
 error: unexpected token: `0x1.1e+1`
-  --> $DIR/float-field.rs:36:9
+  --> $DIR/float-field.rs:56:9
    |
 LL |     { s.0x1.1e+1; }
    |         ^^^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1e+1`
-  --> $DIR/float-field.rs:36:9
+  --> $DIR/float-field.rs:56:9
    |
 LL |     { s.0x1.1e+1; }
    |         ^^^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `0x1.1e-1`
-  --> $DIR/float-field.rs:39:9
+  --> $DIR/float-field.rs:60:9
    |
 LL |     { s.0x1.1e-1; }
    |         ^^^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `0x1.1e-1`
-  --> $DIR/float-field.rs:39:9
+  --> $DIR/float-field.rs:60:9
    |
 LL |     { s.0x1.1e-1; }
    |         ^^^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: suffixes on a tuple index are invalid
-  --> $DIR/float-field.rs:42:7
+  --> $DIR/float-field.rs:64:9
    |
-LL |     s.1e1f32;
-   |       ^^^^^^ invalid suffix `f32`
+LL |     { s.1e1f32; }
+   |         ^^^^^^ invalid suffix `f32`
 
 error: suffixes on a tuple index are invalid
-  --> $DIR/float-field.rs:45:7
+  --> $DIR/float-field.rs:69:9
    |
-LL |     s.1.1f32;
-   |       ^^^^^^ invalid suffix `f32`
+LL |     { s.1.1f32; }
+   |         ^^^^^^ invalid suffix `f32`
 
 error: suffixes on a tuple index are invalid
-  --> $DIR/float-field.rs:46:7
+  --> $DIR/float-field.rs:71:9
    |
-LL |     s.1.1e1f32;
-   |       ^^^^^^^^ invalid suffix `f32`
+LL |     { s.1.1e1f32; }
+   |         ^^^^^^^^ invalid suffix `f32`
 
 error: unexpected token: `1e+f32`
-  --> $DIR/float-field.rs:48:9
+  --> $DIR/float-field.rs:74:9
    |
 LL |     { s.1e+f32; }
    |         ^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+f32`
-  --> $DIR/float-field.rs:48:9
+  --> $DIR/float-field.rs:74:9
    |
 LL |     { s.1e+f32; }
    |         ^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1e-f32`
-  --> $DIR/float-field.rs:51:9
+  --> $DIR/float-field.rs:78:9
    |
 LL |     { s.1e-f32; }
    |         ^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-f32`
-  --> $DIR/float-field.rs:51:9
+  --> $DIR/float-field.rs:78:9
    |
 LL |     { s.1e-f32; }
    |         ^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1e+1f32`
-  --> $DIR/float-field.rs:54:9
+  --> $DIR/float-field.rs:82:9
    |
 LL |     { s.1e+1f32; }
    |         ^^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e+1f32`
-  --> $DIR/float-field.rs:54:9
+  --> $DIR/float-field.rs:82:9
    |
 LL |     { s.1e+1f32; }
    |         ^^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1e-1f32`
-  --> $DIR/float-field.rs:56:9
+  --> $DIR/float-field.rs:85:9
    |
 LL |     { s.1e-1f32; }
    |         ^^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1e-1f32`
-  --> $DIR/float-field.rs:56:9
+  --> $DIR/float-field.rs:85:9
    |
 LL |     { s.1e-1f32; }
    |         ^^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1.1e+1f32`
-  --> $DIR/float-field.rs:58:9
+  --> $DIR/float-field.rs:88:9
    |
 LL |     { s.1.1e+1f32; }
    |         ^^^^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e+1f32`
-  --> $DIR/float-field.rs:58:9
+  --> $DIR/float-field.rs:88:9
    |
 LL |     { s.1.1e+1f32; }
    |         ^^^^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error: unexpected token: `1.1e-1f32`
-  --> $DIR/float-field.rs:60:9
+  --> $DIR/float-field.rs:91:9
    |
 LL |     { s.1.1e-1f32; }
    |         ^^^^^^^^^
 
 error: expected one of `.`, `;`, `?`, `}`, or an operator, found `1.1e-1f32`
-  --> $DIR/float-field.rs:60:9
+  --> $DIR/float-field.rs:91:9
    |
 LL |     { s.1.1e-1f32; }
    |         ^^^^^^^^^ expected one of `.`, `;`, `?`, `}`, or an operator
 
 error[E0609]: no field `1e1` on type `S`
-  --> $DIR/float-field.rs:6:7
+  --> $DIR/float-field.rs:6:9
    |
-LL |     s.1e1;
-   |       ^^^ unknown field
+LL |     { s.1e1; }
+   |         ^^^ unknown field
    |
    = note: available fields are: `0`, `1`
 
 error[E0609]: no field `1e1` on type `(u8, u8)`
-  --> $DIR/float-field.rs:9:9
+  --> $DIR/float-field.rs:12:11
    |
-LL |     s.1.1e1;
-   |         ^^^ unknown field
+LL |     { s.1.1e1; }
+   |           ^^^ unknown field
 
 error[E0609]: no field `0x1e1` on type `S`
-  --> $DIR/float-field.rs:24:7
-   |
-LL |     s.0x1e1;
-   |       ^^^^^ unknown field
-   |
-   = note: available fields are: `0`, `1`
-
-error[E0609]: no field `0x1` on type `S`
-  --> $DIR/float-field.rs:25:7
-   |
-LL |     s.0x1.;
-   |       ^^^ unknown field
-   |
-   = note: available fields are: `0`, `1`
-
-error[E0609]: no field `0x1` on type `S`
-  --> $DIR/float-field.rs:28:7
-   |
-LL |     s.0x1.1;
-   |       ^^^ unknown field
-   |
-   = note: available fields are: `0`, `1`
-
-error[E0609]: no field `0x1` on type `S`
-  --> $DIR/float-field.rs:30:7
+  --> $DIR/float-field.rs:34:9
    |
-LL |     s.0x1.1e1;
-   |       ^^^ unknown field
+LL |     { s.0x1e1; }
+   |         ^^^^^ unknown field
    |
    = note: available fields are: `0`, `1`
 
 error[E0609]: no field `0x1e` on type `S`
-  --> $DIR/float-field.rs:34:7
+  --> $DIR/float-field.rs:52:9
    |
-LL |     s.0x1e+1;
-   |       ^^^^ unknown field
+LL |     { s.0x1e+1; }
+   |         ^^^^ unknown field
    |
    = note: available fields are: `0`, `1`
 
 error[E0609]: no field `0x1e` on type `S`
-  --> $DIR/float-field.rs:35:7
+  --> $DIR/float-field.rs:54:9
    |
-LL |     s.0x1e-1;
-   |       ^^^^ unknown field
+LL |     { s.0x1e-1; }
+   |         ^^^^ unknown field
    |
    = note: available fields are: `0`, `1`
 
 error[E0609]: no field `1e1` on type `S`
-  --> $DIR/float-field.rs:42:7
+  --> $DIR/float-field.rs:64:9
    |
-LL |     s.1e1f32;
-   |       ^^^^^^ unknown field
+LL |     { s.1e1f32; }
+   |         ^^^^^^ unknown field
    |
    = note: available fields are: `0`, `1`
 
 error[E0609]: no field `f32` on type `(u8, u8)`
-  --> $DIR/float-field.rs:44:9
+  --> $DIR/float-field.rs:67:11
    |
-LL |     s.1.f32;
-   |         ^^^ unknown field
+LL |     { s.1.f32; }
+   |           ^^^ unknown field
 
 error[E0609]: no field `1e1` on type `(u8, u8)`
-  --> $DIR/float-field.rs:46:7
+  --> $DIR/float-field.rs:71:9
    |
-LL |     s.1.1e1f32;
-   |       ^^^^^^^^ unknown field
+LL |     { s.1.1e1f32; }
+   |         ^^^^^^^^ unknown field
 
-error: aborting due to 55 previous errors
+error: aborting due to 57 previous errors
 
 For more information about this error, try `rustc --explain E0609`.
diff --git a/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.stderr b/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.stderr
index 3fbbfd0fd0d..b17700ec632 100644
--- a/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.stderr
+++ b/tests/ui/rfcs/rfc-1937-termination-trait/issue-103052-2.stderr
@@ -4,11 +4,11 @@ error[E0277]: the trait bound `Something: Termination` is not satisfied
 LL |         fn main() -> Something {
    |                      ^^^^^^^^^ the trait `Termination` is not implemented for `Something`
    |
-note: required by a bound in `Main::{opaque#0}`
+note: required by a bound in `Main::{synthetic#0}`
   --> $DIR/issue-103052-2.rs:5:27
    |
 LL |         fn main() -> impl std::process::Termination;
-   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Main::{opaque#0}`
+   |                           ^^^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Main::{synthetic#0}`
 
 error: aborting due to 1 previous error
 
diff --git a/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.aarch64.stderr b/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.aarch64.stderr
index 1006c3bc17e..1006c3bc17e 100644
--- a/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.aarch64.stderr
+++ b/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.aarch64.stderr
diff --git a/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.rs b/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.rs
index c628709d7a1..c628709d7a1 100644
--- a/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.rs
+++ b/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.rs
diff --git a/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.x86_64.stderr b/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.x86_64.stderr
index 1006c3bc17e..1006c3bc17e 100644
--- a/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-saniziter-kcfi.x86_64.stderr
+++ b/tests/ui/sanitize/sanitizer-cfi-is-incompatible-with-sanitizer-kcfi.x86_64.stderr
diff --git a/tests/ui/traits/next-solver/constrain-alias-goals-in-unsize.rs b/tests/ui/traits/next-solver/constrain-alias-goals-in-unsize.rs
new file mode 100644
index 00000000000..1656238bd61
--- /dev/null
+++ b/tests/ui/traits/next-solver/constrain-alias-goals-in-unsize.rs
@@ -0,0 +1,18 @@
+//@ compile-flags: -Znext-solver
+//@ check-pass
+
+use std::mem::ManuallyDrop;
+
+trait Foo {}
+
+struct Guard<T> {
+    value: ManuallyDrop<T>,
+}
+
+impl<T: Foo> Guard<T> {
+    fn uwu(&self) {
+        let x: &dyn Foo = &*self.value;
+    }
+}
+
+fn main() {}