about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/closures/issue-82438-mut-without-upvar.rs28
-rw-r--r--src/test/ui/closures/issue-82438-mut-without-upvar.stderr12
-rw-r--r--src/test/ui/issues/issue-16683.stderr6
-rw-r--r--src/test/ui/issues/issue-17740.stderr12
-rw-r--r--src/test/ui/issues/issue-17758.stderr6
-rw-r--r--src/test/ui/issues/issue-17905-2.stderr12
-rw-r--r--src/test/ui/issues/issue-20831-debruijn.stderr6
-rw-r--r--src/test/ui/issues/issue-27942.stderr12
-rw-r--r--src/test/ui/layout/hexagon-enum.rs1
-rw-r--r--src/test/ui/layout/hexagon-enum.stderr10
-rw-r--r--src/test/ui/nll/issue-52742.stderr6
-rw-r--r--src/test/ui/nll/issue-55394.stderr6
-rw-r--r--src/test/ui/nll/type-alias-free-regions.stderr12
-rw-r--r--src/test/ui/proc-macro/auxiliary/test-macros.rs22
-rw-r--r--src/test/ui/proc-macro/derive-helper-legacy-spurious.rs12
-rw-r--r--src/test/ui/proc-macro/derive-helper-legacy-spurious.stderr22
-rw-r--r--src/test/ui/proc-macro/inert-attribute-order.rs23
-rw-r--r--src/test/ui/proc-macro/inert-attribute-order.stdout7
-rw-r--r--src/test/ui/proc-macro/issue-75930-derive-cfg.stdout64
-rw-r--r--src/test/ui/regions/regions-infer-paramd-indirect.stderr6
-rw-r--r--src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.nll.stderr6
-rw-r--r--src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr6
-rw-r--r--src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr41
-rw-r--r--src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.stderr30
-rw-r--r--src/test/ui/typeck/typeck_type_placeholder_item.rs12
-rw-r--r--src/test/ui/typeck/typeck_type_placeholder_item.stderr22
-rw-r--r--src/test/ui/ufcs/ufcs-explicit-self-bad.stderr24
27 files changed, 278 insertions, 148 deletions
diff --git a/src/test/ui/closures/issue-82438-mut-without-upvar.rs b/src/test/ui/closures/issue-82438-mut-without-upvar.rs
new file mode 100644
index 00000000000..5d88e1e77d4
--- /dev/null
+++ b/src/test/ui/closures/issue-82438-mut-without-upvar.rs
@@ -0,0 +1,28 @@
+use std::error::Error;
+struct A {
+}
+
+impl A {
+    pub fn new() -> A {
+        A {
+        }
+    }
+
+    pub fn f<'a>(
+        &'a self,
+        team_name: &'a str,
+        c: &'a mut dyn FnMut(String, String, u64, u64)
+    ) -> Result<(), Box<dyn Error>> {
+        Ok(())
+    }
+}
+
+
+fn main() {
+    let A = A::new();
+    let participant_name = "A";
+
+    let c = |a, b, c, d| {};
+
+    A.f(participant_name, &mut c); //~ ERROR cannot borrow
+}
diff --git a/src/test/ui/closures/issue-82438-mut-without-upvar.stderr b/src/test/ui/closures/issue-82438-mut-without-upvar.stderr
new file mode 100644
index 00000000000..06e2b5d0c1b
--- /dev/null
+++ b/src/test/ui/closures/issue-82438-mut-without-upvar.stderr
@@ -0,0 +1,12 @@
+error[E0596]: cannot borrow `c` as mutable, as it is not declared as mutable
+  --> $DIR/issue-82438-mut-without-upvar.rs:27:27
+   |
+LL |     let c = |a, b, c, d| {};
+   |         - help: consider changing this to be mutable: `mut c`
+LL | 
+LL |     A.f(participant_name, &mut c);
+   |                           ^^^^^^ cannot borrow as mutable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0596`.
diff --git a/src/test/ui/issues/issue-16683.stderr b/src/test/ui/issues/issue-16683.stderr
index 6efc12df8fa..35bcf286c44 100644
--- a/src/test/ui/issues/issue-16683.stderr
+++ b/src/test/ui/issues/issue-16683.stderr
@@ -4,11 +4,11 @@ error[E0495]: cannot infer an appropriate lifetime for autoref due to conflictin
 LL |         self.a();
    |              ^
    |
-note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the method body at 3:5...
-  --> $DIR/issue-16683.rs:3:5
+note: first, the lifetime cannot outlive the anonymous lifetime defined on the method body at 3:10...
+  --> $DIR/issue-16683.rs:3:10
    |
 LL |     fn b(&self) {
-   |     ^^^^^^^^^^^
+   |          ^^^^^
 note: ...so that reference does not outlive borrowed content
   --> $DIR/issue-16683.rs:4:9
    |
diff --git a/src/test/ui/issues/issue-17740.stderr b/src/test/ui/issues/issue-17740.stderr
index 9fe80232a14..995f5f1fc3d 100644
--- a/src/test/ui/issues/issue-17740.stderr
+++ b/src/test/ui/issues/issue-17740.stderr
@@ -6,11 +6,11 @@ LL |     fn bar(self: &mut Foo) {
    |
    = note: expected struct `Foo<'a>`
               found struct `Foo<'_>`
-note: the anonymous lifetime #2 defined on the method body at 6:5...
-  --> $DIR/issue-17740.rs:6:5
+note: the anonymous lifetime defined on the method body at 6:23...
+  --> $DIR/issue-17740.rs:6:23
    |
 LL |     fn bar(self: &mut Foo) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^
+   |                       ^^^
 note: ...does not necessarily outlive the lifetime `'a` as defined on the impl at 5:7
   --> $DIR/issue-17740.rs:5:7
    |
@@ -30,11 +30,11 @@ note: the lifetime `'a` as defined on the impl at 5:7...
    |
 LL | impl <'a> Foo<'a>{
    |       ^^
-note: ...does not necessarily outlive the anonymous lifetime #2 defined on the method body at 6:5
-  --> $DIR/issue-17740.rs:6:5
+note: ...does not necessarily outlive the anonymous lifetime defined on the method body at 6:23
+  --> $DIR/issue-17740.rs:6:23
    |
 LL |     fn bar(self: &mut Foo) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^
+   |                       ^^^
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/issues/issue-17758.stderr b/src/test/ui/issues/issue-17758.stderr
index f82e0f53a23..846e8939b53 100644
--- a/src/test/ui/issues/issue-17758.stderr
+++ b/src/test/ui/issues/issue-17758.stderr
@@ -4,11 +4,11 @@ error[E0495]: cannot infer an appropriate lifetime for autoref due to conflictin
 LL |         self.foo();
    |              ^^^
    |
-note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the method body at 6:5...
-  --> $DIR/issue-17758.rs:6:5
+note: first, the lifetime cannot outlive the anonymous lifetime defined on the method body at 6:12...
+  --> $DIR/issue-17758.rs:6:12
    |
 LL |     fn bar(&self) {
-   |     ^^^^^^^^^^^^^
+   |            ^^^^^
 note: ...so that reference does not outlive borrowed content
   --> $DIR/issue-17758.rs:7:9
    |
diff --git a/src/test/ui/issues/issue-17905-2.stderr b/src/test/ui/issues/issue-17905-2.stderr
index c762a4ab496..3c27f705859 100644
--- a/src/test/ui/issues/issue-17905-2.stderr
+++ b/src/test/ui/issues/issue-17905-2.stderr
@@ -6,11 +6,11 @@ LL |     fn say(self: &Pair<&str, isize>) {
    |
    = note: expected struct `Pair<&str, _>`
               found struct `Pair<&str, _>`
-note: the anonymous lifetime #2 defined on the method body at 8:5...
-  --> $DIR/issue-17905-2.rs:8:5
+note: the anonymous lifetime defined on the method body at 8:24...
+  --> $DIR/issue-17905-2.rs:8:24
    |
 LL |     fn say(self: &Pair<&str, isize>) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                        ^^^^
 note: ...does not necessarily outlive the lifetime `'_` as defined on the impl at 5:5
   --> $DIR/issue-17905-2.rs:5:5
    |
@@ -30,11 +30,11 @@ note: the lifetime `'_` as defined on the impl at 5:5...
    |
 LL |     &str,
    |     ^
-note: ...does not necessarily outlive the anonymous lifetime #2 defined on the method body at 8:5
-  --> $DIR/issue-17905-2.rs:8:5
+note: ...does not necessarily outlive the anonymous lifetime defined on the method body at 8:24
+  --> $DIR/issue-17905-2.rs:8:24
    |
 LL |     fn say(self: &Pair<&str, isize>) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                        ^^^^
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/issues/issue-20831-debruijn.stderr b/src/test/ui/issues/issue-20831-debruijn.stderr
index bcfb6b70b2e..e68482d1caf 100644
--- a/src/test/ui/issues/issue-20831-debruijn.stderr
+++ b/src/test/ui/issues/issue-20831-debruijn.stderr
@@ -4,11 +4,11 @@ error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` d
 LL |     fn subscribe(&mut self, t : Box<dyn Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
-note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on the method body at 28:5...
-  --> $DIR/issue-20831-debruijn.rs:28:5
+note: first, the lifetime cannot outlive the anonymous lifetime defined on the method body at 28:58...
+  --> $DIR/issue-20831-debruijn.rs:28:58
    |
 LL |     fn subscribe(&mut self, t : Box<dyn Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
 note: ...but the lifetime must also be valid for the lifetime `'a` as defined on the impl at 26:6...
   --> $DIR/issue-20831-debruijn.rs:26:6
    |
diff --git a/src/test/ui/issues/issue-27942.stderr b/src/test/ui/issues/issue-27942.stderr
index 6ce0fa37a88..80eecb42d1c 100644
--- a/src/test/ui/issues/issue-27942.stderr
+++ b/src/test/ui/issues/issue-27942.stderr
@@ -6,11 +6,11 @@ LL |     fn select(&self) -> BufferViewHandle<R>;
    |
    = note: expected type `Resources<'_>`
               found type `Resources<'a>`
-note: the anonymous lifetime #1 defined on the method body at 5:5...
-  --> $DIR/issue-27942.rs:5:5
+note: the anonymous lifetime defined on the method body at 5:15...
+  --> $DIR/issue-27942.rs:5:15
    |
 LL |     fn select(&self) -> BufferViewHandle<R>;
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |               ^^^^^
 note: ...does not necessarily outlive the lifetime `'a` as defined on the trait at 3:18
   --> $DIR/issue-27942.rs:3:18
    |
@@ -30,11 +30,11 @@ note: the lifetime `'a` as defined on the trait at 3:18...
    |
 LL | pub trait Buffer<'a, R: Resources<'a>> {
    |                  ^^
-note: ...does not necessarily outlive the anonymous lifetime #1 defined on the method body at 5:5
-  --> $DIR/issue-27942.rs:5:5
+note: ...does not necessarily outlive the anonymous lifetime defined on the method body at 5:15
+  --> $DIR/issue-27942.rs:5:15
    |
 LL |     fn select(&self) -> BufferViewHandle<R>;
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |               ^^^^^
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/layout/hexagon-enum.rs b/src/test/ui/layout/hexagon-enum.rs
index 4bcfa58f7cf..8c6c9720664 100644
--- a/src/test/ui/layout/hexagon-enum.rs
+++ b/src/test/ui/layout/hexagon-enum.rs
@@ -1,4 +1,5 @@
 // compile-flags: --target hexagon-unknown-linux-musl
+// needs-llvm-components: hexagon
 //
 // Verify that the hexagon targets implement the repr(C) for enums correctly.
 //
diff --git a/src/test/ui/layout/hexagon-enum.stderr b/src/test/ui/layout/hexagon-enum.stderr
index 390eff6e5b9..d4676a5afb2 100644
--- a/src/test/ui/layout/hexagon-enum.stderr
+++ b/src/test/ui/layout/hexagon-enum.stderr
@@ -81,7 +81,7 @@ error: layout_of(A) = Layout {
         raw: 1,
     },
 }
-  --> $DIR/hexagon-enum.rs:15:1
+  --> $DIR/hexagon-enum.rs:16:1
    |
 LL | enum A { Apple }
    | ^^^^^^^^^^^^^^^^
@@ -169,7 +169,7 @@ error: layout_of(B) = Layout {
         raw: 1,
     },
 }
-  --> $DIR/hexagon-enum.rs:19:1
+  --> $DIR/hexagon-enum.rs:20:1
    |
 LL | enum B { Banana = 255, }
    | ^^^^^^^^^^^^^^^^^^^^^^^^
@@ -257,7 +257,7 @@ error: layout_of(C) = Layout {
         raw: 2,
     },
 }
-  --> $DIR/hexagon-enum.rs:23:1
+  --> $DIR/hexagon-enum.rs:24:1
    |
 LL | enum C { Chaenomeles = 256, }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -345,7 +345,7 @@ error: layout_of(P) = Layout {
         raw: 4,
     },
 }
-  --> $DIR/hexagon-enum.rs:27:1
+  --> $DIR/hexagon-enum.rs:28:1
    |
 LL | enum P { Peach = 0x1000_0000isize, }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -433,7 +433,7 @@ error: layout_of(T) = Layout {
         raw: 4,
     },
 }
-  --> $DIR/hexagon-enum.rs:33:1
+  --> $DIR/hexagon-enum.rs:34:1
    |
 LL | enum T { Tangerine = TANGERINE as isize }
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/nll/issue-52742.stderr b/src/test/ui/nll/issue-52742.stderr
index 7631ca61e5e..23bb12f9420 100644
--- a/src/test/ui/nll/issue-52742.stderr
+++ b/src/test/ui/nll/issue-52742.stderr
@@ -9,11 +9,11 @@ note: ...the reference is valid for the lifetime `'_` as defined on the impl at
    |
 LL | impl Foo<'_, '_> {
    |          ^^
-note: ...but the borrowed content is only valid for the anonymous lifetime #2 defined on the method body at 13:5
-  --> $DIR/issue-52742.rs:13:5
+note: ...but the borrowed content is only valid for the anonymous lifetime defined on the method body at 13:31
+  --> $DIR/issue-52742.rs:13:31
    |
 LL |     fn take_bar(&mut self, b: Bar<'_>) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                               ^^^^^^^
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/nll/issue-55394.stderr b/src/test/ui/nll/issue-55394.stderr
index e24ef176db0..36721f923f7 100644
--- a/src/test/ui/nll/issue-55394.stderr
+++ b/src/test/ui/nll/issue-55394.stderr
@@ -4,11 +4,11 @@ error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'s` d
 LL |         Foo { bar }
    |         ^^^
    |
-note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the method body at 8:5...
-  --> $DIR/issue-55394.rs:8:5
+note: first, the lifetime cannot outlive the anonymous lifetime defined on the method body at 8:17...
+  --> $DIR/issue-55394.rs:8:17
    |
 LL |     fn new(bar: &mut Bar) -> Self {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                 ^^^^^^^^
 note: ...so that reference does not outlive borrowed content
   --> $DIR/issue-55394.rs:9:15
    |
diff --git a/src/test/ui/nll/type-alias-free-regions.stderr b/src/test/ui/nll/type-alias-free-regions.stderr
index 38e3e05d1cb..6498ecfbe6f 100644
--- a/src/test/ui/nll/type-alias-free-regions.stderr
+++ b/src/test/ui/nll/type-alias-free-regions.stderr
@@ -4,11 +4,11 @@ error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` d
 LL |         C { f: b }
    |         ^
    |
-note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the method body at 16:5...
-  --> $DIR/type-alias-free-regions.rs:16:5
+note: first, the lifetime cannot outlive the anonymous lifetime defined on the method body at 16:24...
+  --> $DIR/type-alias-free-regions.rs:16:24
    |
 LL |     fn from_box(b: Box<B>) -> Self {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                        ^
 note: ...so that the expression is assignable
   --> $DIR/type-alias-free-regions.rs:17:16
    |
@@ -35,11 +35,11 @@ error[E0495]: cannot infer an appropriate lifetime due to conflicting requiremen
 LL |         C { f: Box::new(b.0) }
    |                ^^^^^^^^^^^^^
    |
-note: first, the lifetime cannot outlive the anonymous lifetime #1 defined on the method body at 26:5...
-  --> $DIR/type-alias-free-regions.rs:26:5
+note: first, the lifetime cannot outlive the anonymous lifetime defined on the method body at 26:23...
+  --> $DIR/type-alias-free-regions.rs:26:23
    |
 LL |     fn from_tuple(b: (B,)) -> Self {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                       ^
 note: ...so that the expression is assignable
   --> $DIR/type-alias-free-regions.rs:27:25
    |
diff --git a/src/test/ui/proc-macro/auxiliary/test-macros.rs b/src/test/ui/proc-macro/auxiliary/test-macros.rs
index 57a7ffa39ef..a7ed4bc8825 100644
--- a/src/test/ui/proc-macro/auxiliary/test-macros.rs
+++ b/src/test/ui/proc-macro/auxiliary/test-macros.rs
@@ -7,7 +7,7 @@
 #![crate_type = "proc-macro"]
 
 extern crate proc_macro;
-use proc_macro::TokenStream;
+use proc_macro::{TokenStream, TokenTree};
 
 // Macro that return empty token stream.
 
@@ -80,6 +80,10 @@ pub fn recollect_derive(input: TokenStream) -> TokenStream {
 // Macros that print their input in the original and re-collected forms (if they differ).
 
 fn print_helper(input: TokenStream, kind: &str) -> TokenStream {
+    print_helper_ext(input, kind, true)
+}
+
+fn print_helper_ext(input: TokenStream, kind: &str, debug: bool) -> TokenStream {
     let input_display = format!("{}", input);
     let input_debug = format!("{:#?}", input);
     let recollected = input.into_iter().collect();
@@ -89,9 +93,11 @@ fn print_helper(input: TokenStream, kind: &str) -> TokenStream {
     if recollected_display != input_display {
         println!("PRINT-{} RE-COLLECTED (DISPLAY): {}", kind, recollected_display);
     }
-    println!("PRINT-{} INPUT (DEBUG): {}", kind, input_debug);
-    if recollected_debug != input_debug {
-        println!("PRINT-{} RE-COLLECTED (DEBUG): {}", kind, recollected_debug);
+    if debug {
+        println!("PRINT-{} INPUT (DEBUG): {}", kind, input_debug);
+        if recollected_debug != input_debug {
+            println!("PRINT-{} RE-COLLECTED (DEBUG): {}", kind, recollected_debug);
+        }
     }
     recollected
 }
@@ -108,8 +114,12 @@ pub fn print_bang_consume(input: TokenStream) -> TokenStream {
 }
 
 #[proc_macro_attribute]
-pub fn print_attr(_: TokenStream, input: TokenStream) -> TokenStream {
-    print_helper(input, "ATTR")
+pub fn print_attr(args: TokenStream, input: TokenStream) -> TokenStream {
+    let debug = match &args.into_iter().collect::<Vec<_>>()[..] {
+        [TokenTree::Ident(ident)] if ident.to_string() == "nodebug" => false,
+        _ => true,
+    };
+    print_helper_ext(input, "ATTR", debug)
 }
 
 #[proc_macro_attribute]
diff --git a/src/test/ui/proc-macro/derive-helper-legacy-spurious.rs b/src/test/ui/proc-macro/derive-helper-legacy-spurious.rs
new file mode 100644
index 00000000000..4a7e48eed46
--- /dev/null
+++ b/src/test/ui/proc-macro/derive-helper-legacy-spurious.rs
@@ -0,0 +1,12 @@
+// aux-build:test-macros.rs
+
+#![dummy] //~ ERROR cannot find attribute `dummy` in this scope
+
+#[macro_use]
+extern crate test_macros;
+
+#[derive(Empty)] //~ ERROR cannot determine resolution for the attribute macro `derive`
+#[empty_helper] //~ ERROR cannot find attribute `empty_helper` in this scope
+struct Foo {}
+
+fn main() {}
diff --git a/src/test/ui/proc-macro/derive-helper-legacy-spurious.stderr b/src/test/ui/proc-macro/derive-helper-legacy-spurious.stderr
new file mode 100644
index 00000000000..fd1ed8a3d0f
--- /dev/null
+++ b/src/test/ui/proc-macro/derive-helper-legacy-spurious.stderr
@@ -0,0 +1,22 @@
+error: cannot find attribute `dummy` in this scope
+  --> $DIR/derive-helper-legacy-spurious.rs:3:4
+   |
+LL | #![dummy]
+   |    ^^^^^
+
+error: cannot determine resolution for the attribute macro `derive`
+  --> $DIR/derive-helper-legacy-spurious.rs:8:3
+   |
+LL | #[derive(Empty)]
+   |   ^^^^^^
+   |
+   = note: import resolution is stuck, try simplifying macro imports
+
+error: cannot find attribute `empty_helper` in this scope
+  --> $DIR/derive-helper-legacy-spurious.rs:9:3
+   |
+LL | #[empty_helper]
+   |   ^^^^^^^^^^^^
+
+error: aborting due to 3 previous errors
+
diff --git a/src/test/ui/proc-macro/inert-attribute-order.rs b/src/test/ui/proc-macro/inert-attribute-order.rs
new file mode 100644
index 00000000000..f8079675641
--- /dev/null
+++ b/src/test/ui/proc-macro/inert-attribute-order.rs
@@ -0,0 +1,23 @@
+// Order of inert attributes, both built-in and custom is preserved during expansion.
+
+// check-pass
+// compile-flags: -Z span-debug
+// aux-build:test-macros.rs
+
+#![no_std] // Don't load unnecessary hygiene information from std
+extern crate std;
+
+#[macro_use]
+extern crate test_macros;
+
+/// 1
+#[rustfmt::attr2]
+#[doc = "3"]
+#[print_attr(nodebug)]
+#[doc = "4"]
+#[rustfmt::attr5]
+/// 6
+#[print_attr(nodebug)]
+struct S;
+
+fn main() {}
diff --git a/src/test/ui/proc-macro/inert-attribute-order.stdout b/src/test/ui/proc-macro/inert-attribute-order.stdout
new file mode 100644
index 00000000000..cc215545952
--- /dev/null
+++ b/src/test/ui/proc-macro/inert-attribute-order.stdout
@@ -0,0 +1,7 @@
+PRINT-ATTR INPUT (DISPLAY): /// 1
+#[rustfmt :: attr2] #[doc = "3"] #[doc = "4"] #[rustfmt :: attr5] /// 6
+#[print_attr(nodebug)] struct S ;
+PRINT-ATTR RE-COLLECTED (DISPLAY): #[doc = " 1"] #[rustfmt :: attr2] #[doc = "3"] #[doc = "4"]
+#[rustfmt :: attr5] #[doc = " 6"] #[print_attr(nodebug)] struct S ;
+PRINT-ATTR INPUT (DISPLAY): #[doc = " 1"] #[rustfmt :: attr2] #[doc = "3"] #[doc = "4"]
+#[rustfmt :: attr5] #[doc = " 6"] struct S ;
diff --git a/src/test/ui/proc-macro/issue-75930-derive-cfg.stdout b/src/test/ui/proc-macro/issue-75930-derive-cfg.stdout
index 19aa4dfb60e..15e63c20eb9 100644
--- a/src/test/ui/proc-macro/issue-75930-derive-cfg.stdout
+++ b/src/test/ui/proc-macro/issue-75930-derive-cfg.stdout
@@ -1,4 +1,4 @@
-PRINT-ATTR INPUT (DISPLAY): #[allow(dead_code)] #[derive(Print)] #[print_helper(b)] #[print_helper(a)]
+PRINT-ATTR INPUT (DISPLAY): #[print_helper(a)] #[allow(dead_code)] #[derive(Print)] #[print_helper(b)]
 struct Foo < #[cfg(FALSE)] A, B >
 {
     #[cfg(FALSE)] first : String, #[cfg_attr(FALSE, deny(warnings))] second :
@@ -26,6 +26,31 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [
     Punct {
         ch: '#',
         spacing: Alone,
+        span: $DIR/issue-75930-derive-cfg.rs:16:1: 16:2 (#0),
+    },
+    Group {
+        delimiter: Bracket,
+        stream: TokenStream [
+            Ident {
+                ident: "print_helper",
+                span: $DIR/issue-75930-derive-cfg.rs:16:3: 16:15 (#0),
+            },
+            Group {
+                delimiter: Parenthesis,
+                stream: TokenStream [
+                    Ident {
+                        ident: "a",
+                        span: $DIR/issue-75930-derive-cfg.rs:16:16: 16:17 (#0),
+                    },
+                ],
+                span: $DIR/issue-75930-derive-cfg.rs:16:15: 16:18 (#0),
+            },
+        ],
+        span: $DIR/issue-75930-derive-cfg.rs:16:2: 16:19 (#0),
+    },
+    Punct {
+        ch: '#',
+        spacing: Alone,
         span: $DIR/issue-75930-derive-cfg.rs:18:1: 18:2 (#0),
     },
     Group {
@@ -98,31 +123,6 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [
         ],
         span: $DIR/issue-75930-derive-cfg.rs:21:2: 21:19 (#0),
     },
-    Punct {
-        ch: '#',
-        spacing: Alone,
-        span: $DIR/issue-75930-derive-cfg.rs:16:1: 16:2 (#0),
-    },
-    Group {
-        delimiter: Bracket,
-        stream: TokenStream [
-            Ident {
-                ident: "print_helper",
-                span: $DIR/issue-75930-derive-cfg.rs:16:3: 16:15 (#0),
-            },
-            Group {
-                delimiter: Parenthesis,
-                stream: TokenStream [
-                    Ident {
-                        ident: "a",
-                        span: $DIR/issue-75930-derive-cfg.rs:16:16: 16:17 (#0),
-                    },
-                ],
-                span: $DIR/issue-75930-derive-cfg.rs:16:15: 16:18 (#0),
-            },
-        ],
-        span: $DIR/issue-75930-derive-cfg.rs:16:2: 16:19 (#0),
-    },
     Ident {
         ident: "struct",
         span: $DIR/issue-75930-derive-cfg.rs:22:1: 22:7 (#0),
@@ -1194,7 +1194,7 @@ PRINT-ATTR INPUT (DEBUG): TokenStream [
         span: $DIR/issue-75930-derive-cfg.rs:22:32: 65:2 (#0),
     },
 ]
-PRINT-DERIVE INPUT (DISPLAY): #[allow(dead_code)] #[print_helper(b)] #[print_helper(a)] struct Foo < B >
+PRINT-DERIVE INPUT (DISPLAY): #[print_helper(a)] #[allow(dead_code)] #[print_helper(b)] struct Foo < B >
 {
     second : bool, third :
     [u8 ;
@@ -1217,14 +1217,14 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
         delimiter: Bracket,
         stream: TokenStream [
             Ident {
-                ident: "allow",
+                ident: "print_helper",
                 span: $DIR/issue-75930-derive-cfg.rs:22:1: 65:2 (#0),
             },
             Group {
                 delimiter: Parenthesis,
                 stream: TokenStream [
                     Ident {
-                        ident: "dead_code",
+                        ident: "a",
                         span: $DIR/issue-75930-derive-cfg.rs:22:1: 65:2 (#0),
                     },
                 ],
@@ -1242,14 +1242,14 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
         delimiter: Bracket,
         stream: TokenStream [
             Ident {
-                ident: "print_helper",
+                ident: "allow",
                 span: $DIR/issue-75930-derive-cfg.rs:22:1: 65:2 (#0),
             },
             Group {
                 delimiter: Parenthesis,
                 stream: TokenStream [
                     Ident {
-                        ident: "b",
+                        ident: "dead_code",
                         span: $DIR/issue-75930-derive-cfg.rs:22:1: 65:2 (#0),
                     },
                 ],
@@ -1274,7 +1274,7 @@ PRINT-DERIVE INPUT (DEBUG): TokenStream [
                 delimiter: Parenthesis,
                 stream: TokenStream [
                     Ident {
-                        ident: "a",
+                        ident: "b",
                         span: $DIR/issue-75930-derive-cfg.rs:22:1: 65:2 (#0),
                     },
                 ],
diff --git a/src/test/ui/regions/regions-infer-paramd-indirect.stderr b/src/test/ui/regions/regions-infer-paramd-indirect.stderr
index 620b25c9e05..95eb4d1f75b 100644
--- a/src/test/ui/regions/regions-infer-paramd-indirect.stderr
+++ b/src/test/ui/regions/regions-infer-paramd-indirect.stderr
@@ -6,11 +6,11 @@ LL |         self.f = b;
    |
    = note: expected struct `Box<Box<&'a isize>>`
               found struct `Box<Box<&isize>>`
-note: the anonymous lifetime #2 defined on the method body at 21:5...
-  --> $DIR/regions-infer-paramd-indirect.rs:21:5
+note: the anonymous lifetime defined on the method body at 21:36...
+  --> $DIR/regions-infer-paramd-indirect.rs:21:36
    |
 LL |     fn set_f_bad(&mut self, b: Box<B>) {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                                    ^
 note: ...does not necessarily outlive the lifetime `'a` as defined on the impl at 16:6
   --> $DIR/regions-infer-paramd-indirect.rs:16:6
    |
diff --git a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.nll.stderr b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.nll.stderr
index b359826cb4a..7e07a5775bb 100644
--- a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.nll.stderr
+++ b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.nll.stderr
@@ -7,11 +7,11 @@ LL | |         t.test();
 LL | |     });
    | |______^
    |
-note: the parameter type `T` must be valid for the anonymous lifetime #2 defined on the function body at 19:1...
-  --> $DIR/missing-lifetimes-in-signature-2.rs:19:1
+note: the parameter type `T` must be valid for the anonymous lifetime defined on the function body at 19:24...
+  --> $DIR/missing-lifetimes-in-signature-2.rs:19:24
    |
 LL | fn func<T: Test>(foo: &Foo, t: T) {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                        ^^^
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr
index c7def9b668d..4e7d5297840 100644
--- a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr
+++ b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature-2.stderr
@@ -6,11 +6,11 @@ LL | fn func<T: Test>(foo: &Foo, t: T) {
 LL |     foo.bar(move |_| {
    |         ^^^
    |
-note: the parameter type `T` must be valid for the anonymous lifetime #2 defined on the function body at 19:1...
-  --> $DIR/missing-lifetimes-in-signature-2.rs:19:1
+note: the parameter type `T` must be valid for the anonymous lifetime defined on the function body at 19:24...
+  --> $DIR/missing-lifetimes-in-signature-2.rs:19:24
    |
 LL | fn func<T: Test>(foo: &Foo, t: T) {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                        ^^^
 note: ...so that the type `[closure@$DIR/missing-lifetimes-in-signature-2.rs:20:13: 23:6]` will meet its required lifetime bounds
   --> $DIR/missing-lifetimes-in-signature-2.rs:20:9
    |
diff --git a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr
index 1bfcdab5d86..b509610b89e 100644
--- a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr
+++ b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.nll.stderr
@@ -25,14 +25,11 @@ error[E0311]: the parameter type `G` may not live long enough
 LL | fn bar<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
    |                                     ^^^^^^^^^^^^^^^^^^
    |
-note: the parameter type `G` must be valid for the anonymous lifetime #1 defined on the function body at 25:1...
-  --> $DIR/missing-lifetimes-in-signature.rs:25:1
-   |
-LL | / fn bar<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
-LL | |
-LL | | where
-LL | |     G: Get<T>
-   | |_____________^
+note: the parameter type `G` must be valid for the anonymous lifetime defined on the function body at 25:26...
+  --> $DIR/missing-lifetimes-in-signature.rs:25:26
+   |
+LL | fn bar<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
+   |                          ^^^^^^
 
 error[E0311]: the parameter type `G` may not live long enough
   --> $DIR/missing-lifetimes-in-signature.rs:47:45
@@ -40,14 +37,11 @@ error[E0311]: the parameter type `G` may not live long enough
 LL | fn qux<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
    |                                             ^^^^^^^^^^^^^^^^^^
    |
-note: the parameter type `G` must be valid for the anonymous lifetime #1 defined on the function body at 47:1...
-  --> $DIR/missing-lifetimes-in-signature.rs:47:1
+note: the parameter type `G` must be valid for the anonymous lifetime defined on the function body at 47:34...
+  --> $DIR/missing-lifetimes-in-signature.rs:47:34
    |
-LL | / fn qux<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
-LL | |
-LL | | where
-LL | |     G: Get<T>
-   | |_____________^
+LL | fn qux<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
+   |                                  ^^^^^^
 
 error[E0311]: the parameter type `G` may not live long enough
   --> $DIR/missing-lifetimes-in-signature.rs:59:58
@@ -55,11 +49,11 @@ error[E0311]: the parameter type `G` may not live long enough
 LL |     fn qux<'b, G: Get<T> + 'b, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ {
    |                                                          ^^^^^^^^^^^^^^^^^^
    |
-note: the parameter type `G` must be valid for the anonymous lifetime #1 defined on the method body at 59:5...
-  --> $DIR/missing-lifetimes-in-signature.rs:59:5
+note: the parameter type `G` must be valid for the anonymous lifetime defined on the method body at 59:47...
+  --> $DIR/missing-lifetimes-in-signature.rs:59:47
    |
 LL |     fn qux<'b, G: Get<T> + 'b, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                                               ^^^^^^
 
 error[E0311]: the parameter type `G` may not live long enough
   --> $DIR/missing-lifetimes-in-signature.rs:68:45
@@ -67,14 +61,11 @@ error[E0311]: the parameter type `G` may not live long enough
 LL | fn bat<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ + 'a
    |                                             ^^^^^^^^^^^^^^^^^^^^^^^
    |
-note: the parameter type `G` must be valid for the anonymous lifetime #1 defined on the function body at 68:1...
-  --> $DIR/missing-lifetimes-in-signature.rs:68:1
+note: the parameter type `G` must be valid for the anonymous lifetime defined on the function body at 68:34...
+  --> $DIR/missing-lifetimes-in-signature.rs:68:34
    |
-LL | / fn bat<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ + 'a
-LL | |
-LL | | where
-LL | |     G: Get<T>
-   | |_____________^
+LL | fn bat<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ + 'a
+   |                                  ^^^^^^
 
 error[E0621]: explicit lifetime required in the type of `dest`
   --> $DIR/missing-lifetimes-in-signature.rs:73:5
diff --git a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.stderr b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.stderr
index 69e95efa72d..789fff7acc2 100644
--- a/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.stderr
+++ b/src/test/ui/suggestions/lifetimes/missing-lifetimes-in-signature.stderr
@@ -33,14 +33,11 @@ error[E0311]: the parameter type `G` may not live long enough
 LL | fn bar<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
    |                                     ^^^^^^^^^^^^^^^^^^
    |
-note: the parameter type `G` must be valid for the anonymous lifetime #1 defined on the function body at 25:1...
-  --> $DIR/missing-lifetimes-in-signature.rs:25:1
-   |
-LL | / fn bar<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
-LL | |
-LL | | where
-LL | |     G: Get<T>
-   | |_____________^
+note: the parameter type `G` must be valid for the anonymous lifetime defined on the function body at 25:26...
+  --> $DIR/missing-lifetimes-in-signature.rs:25:26
+   |
+LL | fn bar<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
+   |                          ^^^^^^
 note: ...so that the type `[closure@$DIR/missing-lifetimes-in-signature.rs:30:5: 32:6]` will meet its required lifetime bounds
   --> $DIR/missing-lifetimes-in-signature.rs:25:37
    |
@@ -57,14 +54,11 @@ error[E0311]: the parameter type `G` may not live long enough
 LL | fn qux<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
    |                                             ^^^^^^^^^^^^^^^^^^
    |
-note: the parameter type `G` must be valid for the anonymous lifetime #1 defined on the function body at 47:1...
-  --> $DIR/missing-lifetimes-in-signature.rs:47:1
+note: the parameter type `G` must be valid for the anonymous lifetime defined on the function body at 47:34...
+  --> $DIR/missing-lifetimes-in-signature.rs:47:34
    |
-LL | / fn qux<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
-LL | |
-LL | | where
-LL | |     G: Get<T>
-   | |_____________^
+LL | fn qux<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_
+   |                                  ^^^^^^
 note: ...so that the type `[closure@$DIR/missing-lifetimes-in-signature.rs:52:5: 54:6]` will meet its required lifetime bounds
   --> $DIR/missing-lifetimes-in-signature.rs:47:45
    |
@@ -81,11 +75,11 @@ error[E0311]: the parameter type `G` may not live long enough
 LL |     fn qux<'b, G: Get<T> + 'b, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ {
    |                                                          ^^^^^^^^^^^^^^^^^^
    |
-note: the parameter type `G` must be valid for the anonymous lifetime #1 defined on the method body at 59:5...
-  --> $DIR/missing-lifetimes-in-signature.rs:59:5
+note: the parameter type `G` must be valid for the anonymous lifetime defined on the method body at 59:47...
+  --> $DIR/missing-lifetimes-in-signature.rs:59:47
    |
 LL |     fn qux<'b, G: Get<T> + 'b, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                                               ^^^^^^
 note: ...so that the type `[closure@$DIR/missing-lifetimes-in-signature.rs:61:9: 63:10]` will meet its required lifetime bounds
   --> $DIR/missing-lifetimes-in-signature.rs:59:58
    |
diff --git a/src/test/ui/typeck/typeck_type_placeholder_item.rs b/src/test/ui/typeck/typeck_type_placeholder_item.rs
index 2c8b1e76b1b..2523362fdc4 100644
--- a/src/test/ui/typeck/typeck_type_placeholder_item.rs
+++ b/src/test/ui/typeck/typeck_type_placeholder_item.rs
@@ -208,3 +208,15 @@ impl Qux for Struct {
     const D: _ = 42;
     //~^ ERROR the type placeholder `_` is not allowed within types on item signatures
 }
+
+fn map<T>(_: fn() -> Option<&'static T>) -> Option<T> {
+    None
+}
+
+fn value() -> Option<&'static _> {
+//~^ ERROR the type placeholder `_` is not allowed within types on item signatures
+    Option::<&'static u8>::None
+}
+
+const _: Option<_> = map(value);
+//~^ ERROR the type placeholder `_` is not allowed within types on item signatures
diff --git a/src/test/ui/typeck/typeck_type_placeholder_item.stderr b/src/test/ui/typeck/typeck_type_placeholder_item.stderr
index 684f451b7c3..1034402bfb0 100644
--- a/src/test/ui/typeck/typeck_type_placeholder_item.stderr
+++ b/src/test/ui/typeck/typeck_type_placeholder_item.stderr
@@ -158,7 +158,7 @@ LL | fn test11(x: &usize) -> &_ {
    |                         -^
    |                         ||
    |                         |not allowed in type signatures
-   |                         help: replace with the correct return type: `&&usize`
+   |                         help: replace with the correct return type: `&'static &'static usize`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
   --> $DIR/typeck_type_placeholder_item.rs:52:52
@@ -411,6 +411,24 @@ LL | type Y = impl Trait<_>;
    |                     ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures
+  --> $DIR/typeck_type_placeholder_item.rs:216:31
+   |
+LL | fn value() -> Option<&'static _> {
+   |               ----------------^-
+   |               |               |
+   |               |               not allowed in type signatures
+   |               help: replace with the correct return type: `Option<&'static u8>`
+
+error[E0121]: the type placeholder `_` is not allowed within types on item signatures
+  --> $DIR/typeck_type_placeholder_item.rs:221:10
+   |
+LL | const _: Option<_> = map(value);
+   |          ^^^^^^^^^
+   |          |
+   |          not allowed in type signatures
+   |          help: replace `_` with the correct type: `Option<u8>`
+
+error[E0121]: the type placeholder `_` is not allowed within types on item signatures
   --> $DIR/typeck_type_placeholder_item.rs:140:31
    |
 LL |     fn method_test1(&self, x: _);
@@ -614,7 +632,7 @@ LL |     const D: _ = 42;
    |              not allowed in type signatures
    |              help: replace `_` with the correct type: `i32`
 
-error: aborting due to 67 previous errors
+error: aborting due to 69 previous errors
 
 Some errors have detailed explanations: E0121, E0282, E0403.
 For more information about an error, try `rustc --explain E0121`.
diff --git a/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr b/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr
index d7c48173571..133ecab2296 100644
--- a/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr
+++ b/src/test/ui/ufcs/ufcs-explicit-self-bad.stderr
@@ -33,11 +33,11 @@ LL |     fn dummy2(self: &Bar<T>) {}
    |
    = note: expected reference `&'a Bar<T>`
               found reference `&Bar<T>`
-note: the anonymous lifetime #1 defined on the method body at 37:5...
-  --> $DIR/ufcs-explicit-self-bad.rs:37:5
+note: the anonymous lifetime defined on the method body at 37:21...
+  --> $DIR/ufcs-explicit-self-bad.rs:37:21
    |
 LL |     fn dummy2(self: &Bar<T>) {}
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^
+   |                     ^^^^^^^
 note: ...does not necessarily outlive the lifetime `'a` as defined on the impl at 35:6
   --> $DIR/ufcs-explicit-self-bad.rs:35:6
    |
@@ -57,11 +57,11 @@ note: the lifetime `'a` as defined on the impl at 35:6...
    |
 LL | impl<'a, T> SomeTrait for &'a Bar<T> {
    |      ^^
-note: ...does not necessarily outlive the anonymous lifetime #1 defined on the method body at 37:5
-  --> $DIR/ufcs-explicit-self-bad.rs:37:5
+note: ...does not necessarily outlive the anonymous lifetime defined on the method body at 37:21
+  --> $DIR/ufcs-explicit-self-bad.rs:37:21
    |
 LL |     fn dummy2(self: &Bar<T>) {}
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^
+   |                     ^^^^^^^
 
 error[E0308]: mismatched `self` parameter type
   --> $DIR/ufcs-explicit-self-bad.rs:39:21
@@ -71,11 +71,11 @@ LL |     fn dummy3(self: &&Bar<T>) {}
    |
    = note: expected reference `&'a Bar<T>`
               found reference `&Bar<T>`
-note: the anonymous lifetime #2 defined on the method body at 39:5...
-  --> $DIR/ufcs-explicit-self-bad.rs:39:5
+note: the anonymous lifetime defined on the method body at 39:22...
+  --> $DIR/ufcs-explicit-self-bad.rs:39:22
    |
 LL |     fn dummy3(self: &&Bar<T>) {}
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                      ^^^^^^^
 note: ...does not necessarily outlive the lifetime `'a` as defined on the impl at 35:6
   --> $DIR/ufcs-explicit-self-bad.rs:35:6
    |
@@ -95,11 +95,11 @@ note: the lifetime `'a` as defined on the impl at 35:6...
    |
 LL | impl<'a, T> SomeTrait for &'a Bar<T> {
    |      ^^
-note: ...does not necessarily outlive the anonymous lifetime #2 defined on the method body at 39:5
-  --> $DIR/ufcs-explicit-self-bad.rs:39:5
+note: ...does not necessarily outlive the anonymous lifetime defined on the method body at 39:22
+  --> $DIR/ufcs-explicit-self-bad.rs:39:22
    |
 LL |     fn dummy3(self: &&Bar<T>) {}
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
+   |                      ^^^^^^^
 
 error: aborting due to 7 previous errors