Skip to content

Conversation

@amandasystems
Copy link
Contributor

@amandasystems amandasystems commented Jun 17, 2025

This PR breaks out yet another part of #130227. It prepares for the removal of precise placeholder tracking by colocating detecting placeholder errors for higher-ranked relations (placeholders outliving existentials that can't name them, other placeholders) with the preprocessing step that adds outlives-static constraints. This also relieves that step from the burden of ensuring these errors are detected via propagation, and fully splits the logic into one part that rewrites the constraint graph to add edges to 'static and one that detects hard errors.

For stepping-on-toes reasons it is currently based on #140737, but can be rebased on regular master and merged separately nope that's a terrible idea actually, it relies on some of the tracking introduced there.

This step also makes region errors more fine-grained, which is useful to simplify the error reporting pipeline, which is currently based on a very brittle method of reconstructing an error event after the fact to figure out what went wrong. Doing that is left as future work, though.

This changes the logic of error reporting slightly to not emit errors for placeholder/higher kinded constraints if there are other borrowck errors. This somewhat lessens the flood of errors and was described as if anything an improvement by @nikomatsakis in informal review.

r? lcnr

Fixes: #146467

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Jun 17, 2025
@rust-log-analyzer

This comment has been minimized.

@amandasystems
Copy link
Contributor Author

Wow, a merge conflict with upstream for a commit I JUST PUSHED, that's record time!

@amandasystems amandasystems force-pushed the early-placeholder-errors branch 2 times, most recently from fd18095 to 199f961 Compare June 17, 2025 15:11
@amandasystems amandasystems changed the title [WIP] Move placeholder error handling to before region inference Move placeholder error handling to before region inference Jun 25, 2025
@lcnr
Copy link
Contributor

lcnr commented Jul 3, 2025

@rustbot blocked

@rustbot rustbot added S-blocked Status: Blocked on something else such as an RFC or other implementation work. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 3, 2025
@amandasystems amandasystems force-pushed the early-placeholder-errors branch from 199f961 to 3a46042 Compare August 27, 2025 11:03
@rustbot

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from 3a46042 to 9b555d3 Compare August 27, 2025 19:44
@rustbot

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from 9b555d3 to f31393f Compare August 27, 2025 20:01
@amandasystems
Copy link
Contributor Author

@rustbot ready

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-blocked Status: Blocked on something else such as an RFC or other implementation work. labels Aug 27, 2025
Comment on lines -26 to +25
= note: `Getter<'1>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'_>>`, for any two lifetimes `'0` and `'1`...
= note: `Getter<'_>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'1>>`, for any two lifetimes `'0` and `'1`...
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hate this, but can't find a way around it. My gut feeling says it's another case of an order-dependent extraction procedure somewhere. For what it's worth, it wasn't in the earlier version of this code but it seems to have appeared after the recent changes to the base commit. Presumably the difference is from selecting smallest placeholder by rvid, etc. Help very much appreciated!

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from f31393f to f542ec5 Compare September 3, 2025 09:17
error_element
{
let adjusted_universe =
error_placeholder.universe.as_u32().checked_sub(base_universe.as_u32());
Copy link
Contributor Author

@amandasystems amandasystems Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the "checked sub" part is what really broke me here. Why are universes being adjusted? What's a base universe? And why can the subtraction sometimes overflow?!?!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the record, these are the only reads of base_universe on CanonicalTypeOpDeeplyNormalizeGoal, CanonicalTypeOpAscribeUserTypeGoal and InstantiateOpaqueType.

@rust-log-analyzer

This comment has been minimized.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from f542ec5 to 8269a42 Compare September 11, 2025 09:41
@rust-log-analyzer

This comment has been minimized.

@amandasystems
Copy link
Contributor Author

amandasystems commented Sep 11, 2025

The job pr-check-2 failed! Check out the build log: (web) (plain enhanced) (plain)
Click to see the possible cause of the failure (guessed by this bot)

 95 | |         constraints.clone(),
 96 | |         &universal_region_relations,
 97 | |         infcx,
 98 | |     );
    | |_____- argument #4 of type `&mut RegionErrors<'_>` is missing
    |
note: function defined here
   --> compiler/rustc_borrowck/src/handle_placeholders.rs:306:15
    |
306 | pub(crate) fn compute_sccs_applying_placeholder_outlives_constraints<'tcx>(
    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
310 |     errors_buffer: &mut RegionErrors<'tcx>,
    |     --------------------------------------
help: provide the argument
    |
 94 -     let lowered_constraints = compute_sccs_applying_placeholder_outlives_constraints(
 95 -         constraints.clone(),
 96 -         &universal_region_relations,
 97 -         infcx,
 98 -     );
 94 +     let lowered_constraints = compute_sccs_applying_placeholder_outlives_constraints(constraints.clone(), &universal_region_relations, infcx, /* &mut RegionErrors<'_> */);
    |

For more information about this error, try `rustc --explain E0061`.
[RUSTC-TIMING] rustc_borrowck test:false 4.478
error: could not compile `rustc_borrowck` (lib) due to 1 previous error

I don't understand where these errors come from. On my branch every single commit passes the ./x check command. What's emitting these? The error refers to a line that doesn't exist in a file that doesn't look like that during any commit in the PR.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from 8269a42 to e0b30fa Compare September 11, 2025 10:15
@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 3, 2025
@rust-log-analyzer

This comment has been minimized.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from f122fa3 to a7ab7ca Compare November 6, 2025 14:19
@rust-log-analyzer

This comment has been minimized.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from a7ab7ca to 603b548 Compare November 6, 2025 21:21
@rust-log-analyzer

This comment has been minimized.

@lcnr
Copy link
Contributor

lcnr commented Nov 7, 2025

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

rust-bors bot added a commit that referenced this pull request Nov 7, 2025
Move placeholder error handling to before region inference
@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 7, 2025
@rust-bors
Copy link

rust-bors bot commented Nov 7, 2025

☀️ Try build successful (CI)
Build commit: 2dc9304 (2dc9304e6aa02405dcebb7c8335393b5a1a806a0, parent: 0bbef557bb02e6fda8fde2c2cf9c59ee55ca40e9)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (2dc9304): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.1%, secondary 2.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
1.1% [1.1%, 1.1%] 1
Regressions ❌
(secondary)
2.4% [2.2%, 2.5%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.1% [1.1%, 1.1%] 1

Cycles

Results (secondary -2.1%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.1% [-2.1%, -2.1%] 1
All ❌✅ (primary) - - 0

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 475.138s -> 477.221s (0.44%)
Artifact size: 390.81 MiB -> 390.78 MiB (-0.01%)

@rustbot rustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Nov 7, 2025
@rust-log-analyzer

This comment has been minimized.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from 57f286b to 5df668a Compare November 10, 2025 10:07
@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@rust-log-analyzer

This comment has been minimized.

@amandasystems amandasystems force-pushed the early-placeholder-errors branch from a9e50eb to c3bafae Compare November 10, 2025 20:49
@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-1 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
---- [ui] tests/ui/associated-types/associated-types-eq-hr.rs stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/associated-types/associated-types-eq-hr/associated-types-eq-hr.stderr`
diff of stderr:

62    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
63 
64 error: implementation of `TheTrait` is not general enough
-   --> $DIR/associated-types-eq-hr.rs:96:5
-    |
- LL |     tuple_one::<Tuple>();
-    |     ^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
-    |
-    = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: implementation of `TheTrait` is not general enough
-   --> $DIR/associated-types-eq-hr.rs:96:5
-    |
- LL |     tuple_one::<Tuple>();
-    |     ^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
-    |
-    = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: implementation of `TheTrait` is not general enough
85   --> $DIR/associated-types-eq-hr.rs:104:5
86    |
87 LL |     tuple_two::<Tuple>();

90    = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
91    = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
92 
- error: implementation of `TheTrait` is not general enough
-   --> $DIR/associated-types-eq-hr.rs:104:5
-    |
- LL |     tuple_two::<Tuple>();
-    |     ^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
-    |
-    = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
103 error[E0308]: mismatched types
104   --> $DIR/associated-types-eq-hr.rs:104:5
105    |

114 LL |     T: for<'x, 'y> TheTrait<(&'x isize, &'y isize), A = &'y isize>,
115    |                                                     ^^^^^^^^^^^^^
116 
- error[E0308]: mismatched types
-   --> $DIR/associated-types-eq-hr.rs:104:5
-    |
- LL |     tuple_two::<Tuple>();
-    |     ^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
-    |
-    = note: expected reference `&'x _`
-               found reference `&'y _`
- note: the lifetime requirement is introduced here
-   --> $DIR/associated-types-eq-hr.rs:66:53
-    |
- LL |     T: for<'x, 'y> TheTrait<(&'x isize, &'y isize), A = &'y isize>,
-    |                                                     ^^^^^^^^^^^^^
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
132 error: implementation of `TheTrait` is not general enough
133   --> $DIR/associated-types-eq-hr.rs:116:5
134    |

138    = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
139    = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
140 
- error: implementation of `TheTrait` is not general enough
-   --> $DIR/associated-types-eq-hr.rs:116:5
-    |
- LL |     tuple_four::<Tuple>();
-    |     ^^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
-    |
-    = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 12 previous errors
+ error: aborting due to 7 previous errors
152 
153 Some errors have detailed explanations: E0271, E0308.
---
To only update this specific test, also pass `--test-args associated-types/associated-types-eq-hr.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/associated-types/associated-types-eq-hr.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/associated-types/associated-types-eq-hr" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0271]: type mismatch resolving `<UintStruct as TheTrait<&isize>>::A == &isize`
##[error]  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:87:11
   |
LL |     foo::<UintStruct>(); //~ ERROR type mismatch
   |           ^^^^^^^^^^ type mismatch resolving `<UintStruct as TheTrait<&isize>>::A == &isize`
   |
note: expected this to be `&isize`
  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:26:14
   |
LL |     type A = &'a usize;
   |              ^^^^^^^^^
   = note: expected reference `&isize`
              found reference `&usize`
note: required by a bound in `foo`
  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:45:36
   |
LL | fn foo<T>()
   |    --- required by a bound in this function
LL | where
LL |     T: for<'x> TheTrait<&'x isize, A = &'x isize>,
   |                                    ^^^^^^^^^^^^^ required by this bound in `foo`

error[E0271]: type mismatch resolving `<IntStruct as TheTrait<&isize>>::A == &usize`
##[error]  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:91:11
   |
LL |     bar::<IntStruct>(); //~ ERROR type mismatch
   |           ^^^^^^^^^ type mismatch resolving `<IntStruct as TheTrait<&isize>>::A == &usize`
   |
note: expected this to be `&usize`
  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:14:14
   |
LL |     type A = &'a isize;
---
  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:52:36
   |
LL | fn bar<T>()
   |    --- required by a bound in this function
LL | where
LL |     T: for<'x> TheTrait<&'x isize, A = &'x usize>,
   |                                    ^^^^^^^^^^^^^ required by this bound in `bar`

error: implementation of `TheTrait` is not general enough
##[error]  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:96:5
   |
LL |     tuple_one::<Tuple>();
   |     ^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
   |
   = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`

error: implementation of `TheTrait` is not general enough
##[error]  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:96:5
   |
LL |     tuple_one::<Tuple>();
   |     ^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
   |
   = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error: implementation of `TheTrait` is not general enough
##[error]  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:104:5
   |
LL |     tuple_two::<Tuple>();
   |     ^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
   |
   = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`

error[E0308]: mismatched types
##[error]  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:104:5
   |
LL |     tuple_two::<Tuple>();
   |     ^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
   |
   = note: expected reference `&'x _`
              found reference `&'y _`
note: the lifetime requirement is introduced here
  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:66:53
   |
LL |     T: for<'x, 'y> TheTrait<(&'x isize, &'y isize), A = &'y isize>,
   |                                                     ^^^^^^^^^^^^^

error: implementation of `TheTrait` is not general enough
##[error]  --> /checkout/tests/ui/associated-types/associated-types-eq-hr.rs:116:5
   |
LL |     tuple_four::<Tuple>();
   |     ^^^^^^^^^^^^^^^^^^^^^ implementation of `TheTrait` is not general enough
   |
   = note: `Tuple` must implement `TheTrait<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `TheTrait<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`

error: aborting due to 7 previous errors

Some errors have detailed explanations: E0271, E0308.
For more information about an error, try `rustc --explain E0271`.
------------------------------------------

---- [ui] tests/ui/associated-types/associated-types-eq-hr.rs stdout end ----
---- [ui] tests/ui/async-await/drop-tracking-unresolved-typeck-results.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/drop-tracking-unresolved-typeck-results.no_assumptions/drop-tracking-unresolved-typeck-results.no_assumptions.stderr`
diff of stderr:

9    = note: `fn(&'0 ()) -> std::future::Ready<&'0 ()> {std::future::ready::<&'0 ()>}` must implement `FnOnce<(&'1 (),)>`, for any two lifetimes `'0` and `'1`...
10    = note: ...but it actually implements `FnOnce<(&(),)>`
11 
- error: implementation of `FnOnce` is not general enough
-   --> $DIR/drop-tracking-unresolved-typeck-results.rs:102:5
-    |
- LL | /     send(async {
- LL | |         Next(&Buffered(Map(Empty(PhantomData), ready::<&()>), FuturesOrdered(PhantomData), 0)).await
- LL | |     });
-    | |______^ implementation of `FnOnce` is not general enough
-    |
-    = note: `fn(&'0 ()) -> std::future::Ready<&'0 ()> {std::future::ready::<&'0 ()>}` must implement `FnOnce<(&'1 (),)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `FnOnce<(&(),)>`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
25 
26 
---
To only update this specific test, also pass `--test-args async-await/drop-tracking-unresolved-typeck-results.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/drop-tracking-unresolved-typeck-results.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "-C" "incremental=/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/drop-tracking-unresolved-typeck-results.no_assumptions/drop-tracking-unresolved-typeck-results.inc" "-Z" "incremental-verify-ich" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/drop-tracking-unresolved-typeck-results.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error: implementation of `FnOnce` is not general enough
##[error]  --> /checkout/tests/ui/async-await/drop-tracking-unresolved-typeck-results.rs:102:5
   |
LL | /     send(async {
LL | |         Next(&Buffered(Map(Empty(PhantomData), ready::<&()>), FuturesOrdered(PhantomData), 0)).await
LL | |     });
   | |______^ implementation of `FnOnce` is not general enough
   |
   = note: `fn(&'0 ()) -> std::future::Ready<&'0 ()> {std::future::ready::<&'0 ()>}` must implement `FnOnce<(&'1 (),)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `FnOnce<(&(),)>`

error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/async-await/drop-tracking-unresolved-typeck-results.rs#no_assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-1.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-1.no_assumptions/higher-ranked-auto-trait-1.no_assumptions.stderr`
diff of stderr:

15    = note: no two async blocks, even if identical, have the same type
16    = help: consider pinning your async block and casting it to a trait object
17 
- error[E0308]: mismatched types
-   --> $DIR/higher-ranked-auto-trait-1.rs:37:5
-    |
- LL | /     async {
- LL | |         let _y = &();
- LL | |         let _x = filter(FilterMap {
- LL | |             f: || async move { *_y },
- ...  |
- LL | |         drop(_x);
- LL | |     }
-    | |_____^ one type is more general than the other
-    |
-    = note: expected `async` block `{async block@$DIR/higher-ranked-auto-trait-1.rs:40:19: 40:29}`
-               found `async` block `{async block@$DIR/higher-ranked-auto-trait-1.rs:40:19: 40:29}`
-    = note: no two async blocks, even if identical, have the same type
-    = help: consider pinning your async block and casting it to a trait object
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
37 
38 For more information about this error, try `rustc --explain E0308`.
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-1.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-1.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-1.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error[E0308]: mismatched types
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-1.rs:37:5
   |
LL | /     async {
LL | |         let _y = &();
LL | |         let _x = filter(FilterMap {
LL | |             f: || async move { *_y },
...  |
LL | |         drop(_x);
LL | |     }
   | |_____^ one type is more general than the other
   |
   = note: expected `async` block `{async block@/checkout/tests/ui/async-await/higher-ranked-auto-trait-1.rs:40:19: 40:29}`
              found `async` block `{async block@/checkout/tests/ui/async-await/higher-ranked-auto-trait-1.rs:40:19: 40:29}`
   = note: no two async blocks, even if identical, have the same type
   = help: consider pinning your async block and casting it to a trait object

error: aborting due to 1 previous error

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

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-1.rs#no_assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-10.rs#assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-10.assumptions/higher-ranked-auto-trait-10.assumptions.stderr`
diff of stderr:

7    = note: `Foo<'1>` would have to be implemented for the type `&'0 str`, for any two lifetimes `'0` and `'1`...
8    = note: ...but `Foo<'2>` is actually implemented for the type `&'2 str`, for some specific lifetime `'2`
9 
- error: implementation of `Foo` is not general enough
-   --> $DIR/higher-ranked-auto-trait-10.rs:32:5
-    |
- LL |     Box::new(async move { get_foo(x).await })
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough
-    |
-    = note: `Foo<'1>` would have to be implemented for the type `&'0 str`, for any two lifetimes `'0` and `'1`...
-    = note: ...but `Foo<'2>` is actually implemented for the type `&'2 str`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
21 
22 
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-10.rs`

error in revision `assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-10.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-10.assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021" "-Zhigher-ranked-assumptions"
stdout: none
--- stderr -------------------------------
error: implementation of `Foo` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-10.rs:32:5
   |
LL |     Box::new(async move { get_foo(x).await })
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough
   |
   = note: `Foo<'1>` would have to be implemented for the type `&'0 str`, for any two lifetimes `'0` and `'1`...
   = note: ...but `Foo<'2>` is actually implemented for the type `&'2 str`, for some specific lifetime `'2`

error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-10.rs#assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-10.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-10.no_assumptions/higher-ranked-auto-trait-10.no_assumptions.stderr`
diff of stderr:

7    = note: `Foo<'1>` would have to be implemented for the type `&'0 str`, for any two lifetimes `'0` and `'1`...
8    = note: ...but `Foo<'2>` is actually implemented for the type `&'2 str`, for some specific lifetime `'2`
9 
- error: implementation of `Foo` is not general enough
-   --> $DIR/higher-ranked-auto-trait-10.rs:32:5
-    |
- LL |     Box::new(async move { get_foo(x).await })
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough
-    |
-    = note: `Foo<'1>` would have to be implemented for the type `&'0 str`, for any two lifetimes `'0` and `'1`...
-    = note: ...but `Foo<'2>` is actually implemented for the type `&'2 str`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
21 
22 
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-10.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-10.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-10.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error: implementation of `Foo` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-10.rs:32:5
   |
LL |     Box::new(async move { get_foo(x).await })
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough
   |
   = note: `Foo<'1>` would have to be implemented for the type `&'0 str`, for any two lifetimes `'0` and `'1`...
   = note: ...but `Foo<'2>` is actually implemented for the type `&'2 str`, for some specific lifetime `'2`

error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-10.rs#no_assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-13.rs#assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-13.assumptions/higher-ranked-auto-trait-13.assumptions.stderr`
diff of stderr:

13 LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
14    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
15    |
-    = note: `Getter<'1>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'_>>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
- 
- error: implementation of `Getter` is not general enough
-   --> $DIR/higher-ranked-auto-trait-13.rs:65:5
-    |
- LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
-    |
25    = note: `Getter<'_>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'1>>`, for any two lifetimes `'0` and `'1`...
26    = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
27    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

28 
- error: implementation of `Getter` is not general enough
-   --> $DIR/higher-ranked-auto-trait-13.rs:65:5
-    |
- LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
-    |
-    = note: `Getter<'1>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'_>>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 4 previous errors
+ error: aborting due to 2 previous errors
40 
41 
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-13.rs`

error in revision `assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-13.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-13.assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021" "-Zhigher-ranked-assumptions"
stdout: none
--- stderr -------------------------------
error: implementation of `Getter` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-13.rs:65:5
   |
LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
   |
   = note: `Getter<'_>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'1>>`, for any two lifetimes `'0` and `'1`...
   = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`

error: implementation of `Getter` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-13.rs:65:5
   |
LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
   |
   = note: `Getter<'_>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'1>>`, for any two lifetimes `'0` and `'1`...
   = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error: aborting due to 2 previous errors
------------------------------------------

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-13.rs#assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-13.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-13.no_assumptions/higher-ranked-auto-trait-13.no_assumptions.stderr`
diff of stderr:

13 LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
14    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
15    |
-    = note: `Getter<'1>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'_>>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
- 
- error: implementation of `Callable` is not general enough
-   --> $DIR/higher-ranked-auto-trait-13.rs:65:5
-    |
- LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Callable` is not general enough
-    |
-    = note: `Callable<'_>` would have to be implemented for the type `ConstructableImpl<'0>`, for any lifetime `'0`...
-    = note: ...but `Callable<'1>` is actually implemented for the type `ConstructableImpl<'1>`, for some specific lifetime `'1`
- 
- error: implementation of `Getter` is not general enough
-   --> $DIR/higher-ranked-auto-trait-13.rs:65:5
-    |
- LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
-    |
34    = note: `Getter<'_>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'1>>`, for any two lifetimes `'0` and `'1`...
35    = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
36    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

37 
- error: implementation of `Getter` is not general enough
-   --> $DIR/higher-ranked-auto-trait-13.rs:65:5
-    |
- LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
-    |
-    = note: `Getter<'1>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'_>>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: implementation of `Callable` is not general enough
-   --> $DIR/higher-ranked-auto-trait-13.rs:65:5
-    |
- LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Callable` is not general enough
-    |
-    = note: `Callable<'_>` would have to be implemented for the type `ConstructableImpl<'0>`, for any lifetime `'0`...
-    = note: ...but `Callable<'1>` is actually implemented for the type `ConstructableImpl<'1>`, for some specific lifetime `'1`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 6 previous errors
+ error: aborting due to 2 previous errors
59 
60 
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-13.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-13.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-13.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error: implementation of `Getter` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-13.rs:65:5
   |
LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
   |
   = note: `Getter<'_>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'1>>`, for any two lifetimes `'0` and `'1`...
   = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`

error: implementation of `Getter` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-13.rs:65:5
   |
LL |     assert_send(my_send_async_method(struct_with_lifetime, data));
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Getter` is not general enough
   |
   = note: `Getter<'_>` would have to be implemented for the type `GetterImpl<'0, ConstructableImpl<'1>>`, for any two lifetimes `'0` and `'1`...
   = note: ...but `Getter<'2>` is actually implemented for the type `GetterImpl<'2, ConstructableImpl<'_>>`, for some specific lifetime `'2`
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error: aborting due to 2 previous errors
------------------------------------------

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-13.rs#no_assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-15.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-15.no_assumptions/higher-ranked-auto-trait-15.no_assumptions.stderr`
diff of stderr:

7    = note: closure with signature `fn(&'0 Vec<i32>) -> std::slice::Iter<'_, i32>` must implement `FnOnce<(&'1 Vec<i32>,)>`, for any two lifetimes `'0` and `'1`...
8    = note: ...but it actually implements `FnOnce<(&Vec<i32>,)>`
9 
- error: implementation of `FnOnce` is not general enough
-   --> $DIR/higher-ranked-auto-trait-15.rs:20:5
-    |
- LL |     require_send(future);
-    |     ^^^^^^^^^^^^^^^^^^^^ implementation of `FnOnce` is not general enough
-    |
-    = note: closure with signature `fn(&'0 Vec<i32>) -> std::slice::Iter<'_, i32>` must implement `FnOnce<(&'1 Vec<i32>,)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `FnOnce<(&Vec<i32>,)>`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
21 
22 
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-15.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-15.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-15.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error: implementation of `FnOnce` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-15.rs:20:5
   |
LL |     require_send(future);
   |     ^^^^^^^^^^^^^^^^^^^^ implementation of `FnOnce` is not general enough
   |
   = note: closure with signature `fn(&'0 Vec<i32>) -> std::slice::Iter<'_, i32>` must implement `FnOnce<(&'1 Vec<i32>,)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `FnOnce<(&Vec<i32>,)>`

error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-15.rs#no_assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-17.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-17.no_assumptions/higher-ranked-auto-trait-17.no_assumptions.stderr`
diff of stderr:

11    = note: closure with signature `fn(&'0 ())` must implement `FnOnce<(&'1 (),)>`, for any two lifetimes `'0` and `'1`...
12    = note: ...but it actually implements `FnOnce<(&(),)>`
13 
- error: implementation of `FnOnce` is not general enough
-   --> $DIR/higher-ranked-auto-trait-17.rs:12:5
-    |
- LL | /     async move {
- LL | |         let iter = Adaptor::new(a.iter().map(|_: &()| {}));
- LL | |         std::future::pending::<()>().await;
- LL | |         drop(iter);
- LL | |     }
-    | |_____^ implementation of `FnOnce` is not general enough
-    |
-    = note: closure with signature `fn(&'0 ())` must implement `FnOnce<(&'1 (),)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `FnOnce<(&(),)>`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
29 
30 
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-17.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-17.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-17.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error: implementation of `FnOnce` is not general enough
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-17.rs:12:5
   |
LL | /     async move {
LL | |         let iter = Adaptor::new(a.iter().map(|_: &()| {}));
LL | |         std::future::pending::<()>().await;
LL | |         drop(iter);
LL | |     }
   | |_____^ implementation of `FnOnce` is not general enough
   |
   = note: closure with signature `fn(&'0 ())` must implement `FnOnce<(&'1 (),)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `FnOnce<(&(),)>`

error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-17.rs#no_assumptions stdout end ----
---- [ui] tests/ui/async-await/higher-ranked-auto-trait-6.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-6.no_assumptions/higher-ranked-auto-trait-6.no_assumptions.stderr`
diff of stderr:

9    = note: no two async blocks, even if identical, have the same type
10    = help: consider pinning your async block and casting it to a trait object
11 
- error[E0308]: mismatched types
-   --> $DIR/higher-ranked-auto-trait-6.rs:16:5
-    |
- LL |     Box::new(async { new(|| async { f().await }).await })
-    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
-    |
-    = note: expected `async` block `{async block@$DIR/higher-ranked-auto-trait-6.rs:16:29: 16:34}`
-               found `async` block `{async block@$DIR/higher-ranked-auto-trait-6.rs:16:29: 16:34}`
-    = note: no two async blocks, even if identical, have the same type
-    = help: consider pinning your async block and casting it to a trait object
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
25 
26 For more information about this error, try `rustc --explain E0308`.
---
To only update this specific test, also pass `--test-args async-await/higher-ranked-auto-trait-6.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/higher-ranked-auto-trait-6.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/higher-ranked-auto-trait-6.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error[E0308]: mismatched types
##[error]  --> /checkout/tests/ui/async-await/higher-ranked-auto-trait-6.rs:16:5
   |
LL |     Box::new(async { new(|| async { f().await }).await })
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
   |
   = note: expected `async` block `{async block@/checkout/tests/ui/async-await/higher-ranked-auto-trait-6.rs:16:29: 16:34}`
              found `async` block `{async block@/checkout/tests/ui/async-await/higher-ranked-auto-trait-6.rs:16:29: 16:34}`
   = note: no two async blocks, even if identical, have the same type
   = help: consider pinning your async block and casting it to a trait object

error: aborting due to 1 previous error

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

---- [ui] tests/ui/async-await/higher-ranked-auto-trait-6.rs#no_assumptions stdout end ----
---- [ui] tests/ui/async-await/return-type-notation/issue-110963-early.rs#no_assumptions stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/return-type-notation/issue-110963-early.no_assumptions/issue-110963-early.no_assumptions.stderr`
diff of stderr:

12    = note: `Send` would have to be implemented for the type `impl Future<Output = bool> { <HC as HealthCheck>::check<'0>(..) }`, for any two lifetimes `'0` and `'1`...
13    = note: ...but `Send` is actually implemented for the type `impl Future<Output = bool> { <HC as HealthCheck>::check<'2>(..) }`, for some specific lifetime `'2`
14 
- error: implementation of `Send` is not general enough
-   --> $DIR/issue-110963-early.rs:17:5
-    |
- LL | /     spawn(async move {
- LL | |         let mut hc = hc;
- LL | |         if !hc.check().await {
- LL | |             log_health_check_failure().await;
- LL | |         }
- LL | |     });
-    | |______^ implementation of `Send` is not general enough
-    |
-    = note: `Send` would have to be implemented for the type `impl Future<Output = bool> { <HC as HealthCheck>::check<'0>(..) }`, for any two lifetimes `'0` and `'1`...
-    = note: ...but `Send` is actually implemented for the type `impl Future<Output = bool> { <HC as HealthCheck>::check<'2>(..) }`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
31 
32 
---
To only update this specific test, also pass `--test-args async-await/return-type-notation/issue-110963-early.rs`

error in revision `no_assumptions`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/async-await/return-type-notation/issue-110963-early.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "no_assumptions" "--check-cfg" "cfg(test,FALSE,assumptions,no_assumptions)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/async-await/return-type-notation/issue-110963-early.no_assumptions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "--edition=2021"
stdout: none
--- stderr -------------------------------
error: implementation of `Send` is not general enough
##[error]  --> /checkout/tests/ui/async-await/return-type-notation/issue-110963-early.rs:17:5
   |
LL | /     spawn(async move {
LL | |         let mut hc = hc;
LL | |         if !hc.check().await {
LL | |             log_health_check_failure().await;
LL | |         }
LL | |     });
   | |______^ implementation of `Send` is not general enough
   |
   = note: `Send` would have to be implemented for the type `impl Future<Output = bool> { <HC as HealthCheck>::check<'0>(..) }`, for any two lifetimes `'0` and `'1`...
   = note: ...but `Send` is actually implemented for the type `impl Future<Output = bool> { <HC as HealthCheck>::check<'2>(..) }`, for some specific lifetime `'2`

error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/async-await/return-type-notation/issue-110963-early.rs#no_assumptions stdout end ----
---
-    |
- LL |         match foo() {
-    |               ^^^^^
-    |
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: higher-ranked subtype error
28   --> $DIR/opaque-types-patterns-subtyping-ice-104779.rs:18:13
29    |
30 LL |             Subtype::Bar => (),
---
-    |
- LL |             Subtype::Bar => (),
-    |             ^^^^^^^^^^^^
-    |
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 4 previous errors; 1 warning emitted
+ error: aborting due to 2 previous errors; 1 warning emitted
42 
43 
---
To only update this specific test, also pass `--test-args borrowck/opaque-types-patterns-subtyping-ice-104779.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/borrowck/opaque-types-patterns-subtyping-ice-104779.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/borrowck/opaque-types-patterns-subtyping-ice-104779" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
warning: function cannot return without recursing
##[warning]  --> /checkout/tests/ui/borrowck/opaque-types-patterns-subtyping-ice-104779.rs:12:1
   |
---
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/generic-associated-types/extended/lending_iterator/lending_iterator.stderr`
diff of stderr:

12    |
13 LL |         <B as FromLendingIterator<A>>::from_iter(self)
14    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-    |
- note: due to a current limitation of the type system, this implies a `'static` lifetime
-   --> $DIR/lending_iterator.rs:4:21
-    |
- LL |     fn from_iter<T: for<'x> LendingIterator<Item<'x> = A>>(iter: T) -> Self;
-    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
21 
22 error: aborting due to 2 previous errors
23 


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args generic-associated-types/extended/lending_iterator.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/generic-associated-types/extended/lending_iterator.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/generic-associated-types/extended/lending_iterator" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0276]: impl has stricter requirements than trait
##[error]  --> /checkout/tests/ui/generic-associated-types/extended/lending_iterator.rs:8:45
   |
LL |     fn from_iter<T: for<'x> LendingIterator<Item<'x> = A>>(iter: T) -> Self;
   |     ------------------------------------------------------------------------ definition of `from_iter` from trait
...
LL |     fn from_iter<I: for<'x> LendingIterator<Item<'x> = A>>(mut iter: I) -> Self {
   |                                             ^^^^^^^^^^^^ impl has extra requirement `I: 'x`

error: `Self` does not live long enough
##[error]  --> /checkout/tests/ui/generic-associated-types/extended/lending_iterator.rs:28:9
   |
LL |         <B as FromLendingIterator<A>>::from_iter(self)
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error: aborting due to 2 previous errors

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

---- [ui] tests/ui/generic-associated-types/extended/lending_iterator.rs stdout end ----
---- [ui] tests/ui/higher-ranked/higher-ranked-lifetime-equality.rs stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/higher-ranked-lifetime-equality/higher-ranked-lifetime-equality.stderr`
diff of stderr:

7    = note: expected struct `my_api::Foo<for<'a, 'b> fn(&'a (), &'b ())>`
8               found struct `my_api::Foo<for<'a> fn(&'a (), &'a ())>`
9 
- error[E0308]: mismatched types
-   --> $DIR/higher-ranked-lifetime-equality.rs:34:25
-    |
- LL |     let foo: Foo<Two> = foo;
-    |                         ^^^ one type is more general than the other
-    |
-    = note: expected struct `my_api::Foo<for<'a, 'b> fn(&'a (), &'b ())>`
-               found struct `my_api::Foo<for<'a> fn(&'a (), &'a ())>`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
21 
22 For more information about this error, try `rustc --explain E0308`.
---
To only update this specific test, also pass `--test-args higher-ranked/higher-ranked-lifetime-equality.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/higher-ranked/higher-ranked-lifetime-equality.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/higher-ranked-lifetime-equality" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0308]: mismatched types
##[error]  --> /checkout/tests/ui/higher-ranked/higher-ranked-lifetime-equality.rs:34:25
   |
LL |     let foo: Foo<Two> = foo;
   |                         ^^^ one type is more general than the other
   |
   = note: expected struct `my_api::Foo<for<'a, 'b> fn(&'a (), &'b ())>`
              found struct `my_api::Foo<for<'a> fn(&'a (), &'a ())>`

error: aborting due to 1 previous error

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

---- [ui] tests/ui/higher-ranked/higher-ranked-lifetime-equality.rs stdout end ----
---- [ui] tests/ui/higher-ranked/subtype/hr-subtype.rs#bound_inv_a_b_vs_bound_inv_a stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/subtype/hr-subtype.bound_inv_a_b_vs_bound_inv_a/hr-subtype.bound_inv_a_b_vs_bound_inv_a.stderr`
diff of stderr:

12               found enum `Option<for<'a> fn(Inv<'a>, Inv<'a>)>`
13    = note: this error originates in the macro `check` (in Nightly builds, run with -Z macro-backtrace for more info)
14 
- error[E0308]: mismatched types
-   --> $DIR/hr-subtype.rs:54:13
-    |
- LL |               gimme::<$t1>(None::<$t2>);
-    |               ^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
- ...
- LL | / check! { bound_inv_a_b_vs_bound_inv_a: (for<'a,'b> fn(Inv<'a>, Inv<'b>),
- LL | | for<'a>    fn(Inv<'a>, Inv<'a>)) }
-    | |__________________________________- in this macro invocation
-    |
-    = note: expected enum `Option<for<'a, 'b> fn(Inv<'a>, Inv<'b>)>`
-               found enum `Option<for<'a> fn(Inv<'a>, Inv<'a>)>`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
-    = note: this error originates in the macro `check` (in Nightly builds, run with -Z macro-backtrace for more info)
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
31 
32 For more information about this error, try `rustc --explain E0308`.
---
To only update this specific test, also pass `--test-args higher-ranked/subtype/hr-subtype.rs`

error in revision `bound_inv_a_b_vs_bound_inv_a`: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/higher-ranked/subtype/hr-subtype.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--cfg" "bound_inv_a_b_vs_bound_inv_a" "--check-cfg" "cfg(test,FALSE,bound_a_vs_bound_a,bound_a_vs_bound_b,bound_inv_a_vs_bound_inv_b,bound_co_a_vs_bound_co_b,bound_a_vs_free_x,free_x_vs_free_x,free_x_vs_free_y,free_inv_x_vs_free_inv_y,bound_a_b_vs_bound_a,bound_co_a_b_vs_bound_co_a,bound_contra_a_contra_b_ret_co_a,bound_co_a_co_b_ret_contra_a,bound_inv_a_b_vs_bound_inv_a,bound_a_b_ret_a_vs_bound_a_ret_a)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/subtype/hr-subtype.bound_inv_a_b_vs_bound_inv_a" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0308]: mismatched types
##[error]  --> /checkout/tests/ui/higher-ranked/subtype/hr-subtype.rs:54:13
   |
LL |               gimme::<$t1>(None::<$t2>);
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
...
LL | / check! { bound_inv_a_b_vs_bound_inv_a: (for<'a,'b> fn(Inv<'a>, Inv<'b>),
LL | | for<'a>    fn(Inv<'a>, Inv<'a>)) }
   | |__________________________________- in this macro invocation
   |
   = note: expected enum `Option<for<'a, 'b> fn(Inv<'a>, Inv<'b>)>`
              found enum `Option<for<'a> fn(Inv<'a>, Inv<'a>)>`
   = note: this error originates in the macro `check` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 1 previous error

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

---- [ui] tests/ui/higher-ranked/subtype/hr-subtype.rs#bound_inv_a_b_vs_bound_inv_a stdout end ----
---- [ui] tests/ui/higher-ranked/trait-bounds/hrtb-conflate-regions.rs stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/trait-bounds/hrtb-conflate-regions/hrtb-conflate-regions.stderr`
diff of stderr:

7    = note: `SomeStruct` must implement `Foo<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
8    = note: ...but it actually implements `Foo<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
9 
- error: implementation of `Foo` is not general enough
-   --> $DIR/hrtb-conflate-regions.rs:27:10
-    |
- LL | fn b() { want_foo2::<SomeStruct>(); }
-    |          ^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough
-    |
-    = note: `SomeStruct` must implement `Foo<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
-    = note: ...but it actually implements `Foo<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
21 
22 
---
To only update this specific test, also pass `--test-args higher-ranked/trait-bounds/hrtb-conflate-regions.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/higher-ranked/trait-bounds/hrtb-conflate-regions.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/higher-ranked/trait-bounds/hrtb-conflate-regions" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error: implementation of `Foo` is not general enough
##[error]  --> /checkout/tests/ui/higher-ranked/trait-bounds/hrtb-conflate-regions.rs:27:10
   |
LL | fn b() { want_foo2::<SomeStruct>(); }
   |          ^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Foo` is not general enough
   |
   = note: `SomeStruct` must implement `Foo<(&'0 isize, &'1 isize)>`, for any two lifetimes `'0` and `'1`...
   = note: ...but it actually implements `Foo<(&'2 isize, &'2 isize)>`, for some specific lifetime `'2`

error: aborting due to 1 previous error
------------------------------------------

---- [ui] tests/ui/higher-ranked/trait-bounds/hrtb-conflate-regions.rs stdout end ----
---
93 
+ error: lifetime may not live long enough
+   --> $DIR/nested-rpit-hrtb.rs:49:93
+    |
+ LL | fn one_hrtb_mention_fn_outlives_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'b> {}
+    |                                      -- lifetime `'b` defined here                          ^^ opaque type requires that `'b` must outlive `'static`
+ 
94 error: implementation of `Bar` is not general enough
95   --> $DIR/nested-rpit-hrtb.rs:49:93
96    |

---
-   --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:49:93
+ error: lifetime may not live long enough
+   --> $DIR/nested-rpit-hrtb.rs:49:93
+    |
+ LL | fn one_hrtb_mention_fn_outlives_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'b> {}
+    |                                      -- lifetime `'b` defined here                          ^^ opaque type requires that `'b` must outlive `'static`
+ 
+ error: aborting due to 10 previous errors


The actual stderr differed from the expected stderr
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args impl-trait/nested-rpit-hrtb.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/impl-trait/nested-rpit-hrtb" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0261]: use of undeclared lifetime name `'b`
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:56:77
   |
LL | fn two_htrb_outlives() -> impl for<'a> Foo<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                                                             ^^ undeclared lifetime
   |
   = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html
help: consider making the bound lifetime-generic with a new `'b` lifetime
   |
LL | fn two_htrb_outlives() -> impl for<'b, 'a> Foo<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                    +++
help: consider introducing lifetime `'b` here
   |
LL | fn two_htrb_outlives<'b>() -> impl for<'a> Foo<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                     ++++

error[E0261]: use of undeclared lifetime name `'b`
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:64:82
   |
LL | fn two_htrb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                                                                  ^^ undeclared lifetime
   |
help: consider making the bound lifetime-generic with a new `'b` lifetime
   |
LL | fn two_htrb_outlives_uses() -> impl for<'b, 'a> Bar<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                         +++
help: consider introducing lifetime `'b` here
   |
LL | fn two_htrb_outlives_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                          ++++

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:25:69
   |
LL | fn one_hrtb_outlives() -> impl for<'a> Foo<'a, Assoc = impl Sized + 'a> {}
   |                                                                     ^^
   |
note: lifetime declared here
  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:25:36
   |
LL | fn one_hrtb_outlives() -> impl for<'a> Foo<'a, Assoc = impl Sized + 'a> {}
   |                                    ^^

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:29:68
   |
LL | fn one_hrtb_trait_param() -> impl for<'a> Foo<'a, Assoc = impl Qux<'a>> {}
   |                                                                    ^^
   |
note: lifetime declared here
  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:29:39
   |
LL | fn one_hrtb_trait_param() -> impl for<'a> Foo<'a, Assoc = impl Qux<'a>> {}
   |                                       ^^

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:32:74
   |
LL | fn one_hrtb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'a> {}
   |                                                                          ^^
   |
note: lifetime declared here
  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:32:41
   |
LL | fn one_hrtb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'a> {}
   |                                         ^^

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:35:73
   |
LL | fn one_hrtb_trait_param_uses() -> impl for<'a> Bar<'a, Assoc = impl Qux<'a>> {}
   |                                                                         ^^
   |
note: lifetime declared here
  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:35:44
   |
LL | fn one_hrtb_trait_param_uses() -> impl for<'a> Bar<'a, Assoc = impl Qux<'a>> {}
   |                                            ^^

error[E0277]: the trait bound `for<'a> &'a (): Qux<'b>` is not satisfied
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:45:79
   |
LL | fn one_hrtb_mention_fn_trait_param_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl Qux<'b>> {}
   |                                                                               ^^^^^^^^^^^^ the trait `for<'a> Qux<'b>` is not implemented for `&'a ()`
   |
help: the trait `Qux<'b>` is not implemented for `&'a ()`
      but trait `Qux<'_>` is implemented for `()`
  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:22:1
   |
LL | impl Qux<'_> for () {}
   | ^^^^^^^^^^^^^^^^^^^
   = help: for that trait implementation, expected `()`, found `&'a ()`

error: lifetime may not live long enough
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:49:93
   |
LL | fn one_hrtb_mention_fn_outlives_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'b> {}
   |                                      -- lifetime `'b` defined here                          ^^ opaque type requires that `'b` must outlive `'static`

error: implementation of `Bar` is not general enough
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:49:93
   |
LL | fn one_hrtb_mention_fn_outlives_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'b> {}
   |                                                                                             ^^ implementation of `Bar` is not general enough
   |
   = note: `()` must implement `Bar<'a>`
   = note: ...but it actually implements `Bar<'0>`, for some specific lifetime `'0`

error[E0277]: the trait bound `for<'a, 'b> &'a (): Qux<'b>` is not satisfied
##[error]  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:60:64
   |
LL | fn two_htrb_trait_param_uses() -> impl for<'a> Bar<'a, Assoc = impl for<'b> Qux<'b>> {}
   |                                                                ^^^^^^^^^^^^^^^^^^^^ the trait `for<'a, 'b> Qux<'b>` is not implemented for `&'a ()`
   |
help: the trait `Qux<'b>` is not implemented for `&'a ()`
      but trait `Qux<'_>` is implemented for `()`
  --> /checkout/tests/ui/impl-trait/nested-rpit-hrtb.rs:22:1
   |
LL | impl Qux<'_> for () {}
   | ^^^^^^^^^^^^^^^^^^^
   = help: for that trait implementation, expected `()`, found `&'a ()`

error: aborting due to 10 previous errors

---
---- [ui] tests/ui/lub-glb/old-lub-glb-object.rs stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/lub-glb/old-lub-glb-object/old-lub-glb-object.stderr`
diff of stderr:

7    = note: expected trait object `dyn for<'a, 'b> Foo<&'a u8, &'b u8>`
8               found trait object `dyn for<'a> Foo<&'a u8, &'a u8>`
9 
- error[E0308]: mismatched types
-   --> $DIR/old-lub-glb-object.rs:9:14
-    |
- LL |         _ => y,
-    |              ^ one type is more general than the other
-    |
-    = note: expected trait object `dyn for<'a, 'b> Foo<&'a u8, &'b u8>`
-               found trait object `dyn for<'a> Foo<&'a u8, &'a u8>`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
21 
22 For more information about this error, try `rustc --explain E0308`.
---
To only update this specific test, also pass `--test-args lub-glb/old-lub-glb-object.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/lub-glb/old-lub-glb-object.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/lub-glb/old-lub-glb-object" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0308]: mismatched types
##[error]  --> /checkout/tests/ui/lub-glb/old-lub-glb-object.rs:9:14
   |
LL |         _ => y,
   |              ^ one type is more general than the other
   |
   = note: expected trait object `dyn for<'a, 'b> Foo<&'a u8, &'b u8>`
              found trait object `dyn for<'a> Foo<&'a u8, &'a u8>`

error: aborting due to 1 previous error

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

---- [ui] tests/ui/lub-glb/old-lub-glb-object.rs stdout end ----
---- [ui] tests/ui/nll/relate_tys/hr-fn-aau-eq-abu.rs stdout ----
Saved the actual stderr to `/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/nll/relate_tys/hr-fn-aau-eq-abu/hr-fn-aau-eq-abu.stderr`
diff of stderr:

7    = note: expected struct `Cell<for<'a, 'b> fn(&'a _, &'b _)>`
8               found struct `Cell<for<'a> fn(&'a _, &'a _)>`
9 
- error[E0308]: mismatched types
-   --> $DIR/hr-fn-aau-eq-abu.rs:18:53
-    |
- LL |     let a: Cell<for<'a, 'b> fn(&'a u32, &'b u32)> = make_cell_aa();
-    |                                                     ^^^^^^^^^^^^^^ one type is more general than the other
-    |
-    = note: expected struct `Cell<for<'a, 'b> fn(&'a _, &'b _)>`
-               found struct `Cell<for<'a> fn(&'a _, &'a _)>`
-    = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`
- 
- error: aborting due to 2 previous errors
+ error: aborting due to 1 previous error
21 
22 For more information about this error, try `rustc --explain E0308`.
---
To only update this specific test, also pass `--test-args nll/relate_tys/hr-fn-aau-eq-abu.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/nll/relate_tys/hr-fn-aau-eq-abu.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/aarch64-unknown-linux-gnu/stage2" "--target=aarch64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/aarch64-unknown-linux-gnu/test/ui/nll/relate_tys/hr-fn-aau-eq-abu" "-A" "unused" "-W" "unused_attributes" "-A" "internal_features" "-A" "unused_parens" "-A" "unused_braces" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/aarch64-unknown-linux-gnu/native/rust-test-helpers" "-Zno-leak-check"
stdout: none
--- stderr -------------------------------
error[E0308]: mismatched types
##[error]  --> /checkout/tests/ui/nll/relate_tys/hr-fn-aau-eq-abu.rs:18:53
   |
LL |     let a: Cell<for<'a, 'b> fn(&'a u32, &'b u32)> = make_cell_aa();
   |                                                     ^^^^^^^^^^^^^^ one type is more general than the other
   |
   = note: expected struct `Cell<for<'a, 'b> fn(&'a _, &'b _)>`
              found struct `Cell<for<'a> fn(&'a _, &'a _)>`

error: aborting due to 1 previous error

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ICE Illegal placeholder constraint blamed; should have redirected to other region relation

6 participants