NLL: Nice Region Errors
Some thoughts on the diffs in this gist from running NLL with #52648 and #52572 after removing nice region errors.

Named Anon Conflict

Example of this:

9        LL |     *x
10           |     -- borrow later used here
11        
-        error[E0621]: explicit lifetime required in the type of `s`
+        error: unsatisfied lifetime constraints
13          --> $DIR/guarantor-issue-46974.rs:25:5
14           |
15        LL | fn bar(s: &Box<(i32,)>) -> &'static i32 {

-           |        - consider changing the type of `s` to `&'static std::boxed::Box<(i32,)>`
+           |           - let's call the lifetime of this reference `'1`
17        LL |     // FIXME(#46983): error message should be better
18        LL |     &s.0 //~ ERROR explicit lifetime required in the type of `s` [E0621]
-           |     ^^^^ lifetime `'static` required
+           |     ^^^^ requires that `'1` must outlive `'static`
20        
21        error: aborting due to 2 previous errors
22        

-        Some errors occurred: E0506, E0621.
-        For more information about an error, try `rustc --explain E0506`.
+        For more information about this error, try `rustc --explain E0506`.
25 

In general, I like these errors. However, if the “consider changing” hint is incorrect then this could be misleading. The alternative isn’t that bad. There are places where this type of error doesn’t work that well:

4        LL |     x
5           |     ^
6        
-        error[E0621]: explicit lifetime required in the type of `x`
+        error: unsatisfied lifetime constraints
8          --> $DIR/impl-trait-captures.rs:21:5
9           |
10        LL | fn foo<'a, T>(x: &T) -> impl Foo<'a> {

-           |               - consider changing the type of `x` to `&ReEarlyBound(0, 'a) T`
+           |                  - let's call the lifetime of this reference `'1`
12        LL |     x
-           |     ^ lifetime `ReEarlyBound(0, 'a)` required
+           |     ^ return requires that `'1` must outlive `'a`
14        
15        error: aborting due to previous error
16        

-        For more information about this error, try `rustc --explain E0621`.