[INFO] fetching crate generic-closure 0.1.0...
[INFO] testing generic-closure-0.1.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate generic-closure 0.1.0 into /workspace/builds/worker-3-tc2/source
[INFO] removed /workspace/builds/worker-3-tc2/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate generic-closure 0.1.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate generic-closure 0.1.0
[INFO] tweaked toml for crates.io crate generic-closure 0.1.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate generic-closure 0.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate generic-closure 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f
[INFO] running `Command { std: "docker" "start" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling generic-closure v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.15s
[INFO] running `Command { std: "docker" "inspect" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling target-triple v1.0.1
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling toml_writer v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling glob v0.3.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling toml v1.1.4+spec-1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling trybuild v1.0.119
[INFO] [stderr]    Compiling generic-closure v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 23.19s
[INFO] running `Command { std: "docker" "inspect" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.08s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/generic-closure/c8c551b67eb97862/out/generic_closure-c8c551b67eb97862)
[INFO] [stderr]      Running tests/call_modes.rs (/opt/rustwide/target/release/build/generic-closure/ab521432c65bf877/out/call_modes-ab521432c65bf877)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test expansion_lint_tests::representative_expansions_are_lint_clean ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test fn_supports_the_full_call_hierarchy ... ok
[INFO] [stdout] test either_forwards_mutable_and_consuming_calls ... ok
[INFO] [stderr]      Running tests/captures.rs (/opt/rustwide/target/release/build/generic-closure/97c17d34a6f70c67/out/captures-97c17d34a6f70c67)
[INFO] [stdout] test fn_mut_can_store_an_existing_mutable_reference ... ok
[INFO] [stdout] test fn_mut_can_borrow_a_mutable_value ... ok
[INFO] [stdout] test fn_once_can_consume_and_mutate_owned_captures ... ok
[INFO] [stdout] test fn_once_can_be_called_through_a_boxed_trait_object ... ok
[INFO] [stdout] test fn_mut_mutates_only_opted_in_owned_and_cloned_captures ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test closure_without_captures_can_return_its_generic_type ... ok
[INFO] [stdout] test borrow_move_and_clone_capture_at_construction ... ok
[INFO] [stdout] test closure_lifetime_can_appear_nested_in_capture_types ... ok
[INFO] [stdout] test generated_lifetime_marker_does_not_reserve_a_capture_name ... ok
[INFO] [stderr]      Running tests/either.rs (/opt/rustwide/target/release/build/generic-closure/dbe6f4f0582f19f7/out/either-dbe6f4f0582f19f7)
[INFO] [stdout] test omitted_return_type_means_unit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test either_unifies_two_polymorphic_closure_bodies ... ok
[INFO] [stdout] test either_composes_recursively_for_more_than_two_bodies ... ok
[INFO] [stderr]      Running tests/multiple_arguments.rs (/opt/rustwide/target/release/build/generic-closure/f787cc364cec44cc/out/multiple_arguments-f787cc364cec44cc)
[INFO] [stdout] test either_impl_does_not_reserve_public_names ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test zero_argument_closures_are_supported ... ok
[INFO] [stdout] test generic_fn_accepts_multiple_arguments_and_trailing_commas ... ok
[INFO] [stdout] test nongeneric_multiple_arguments_remain_dyn_compatible ... ok
[INFO] [stdout] test either_forwards_multiple_arguments ... ok
[INFO] [stdout] test fn_mut_and_fn_once_forward_every_argument ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/nested_bounds.rs (/opt/rustwide/target/release/build/generic-closure/f958455e2cd8d581/out/nested_bounds-f958455e2cd8d581)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test final_generic_bounds_support_arbitrarily_nested_closing_brackets ... ok
[INFO] [stderr]      Running tests/nongeneric.rs (/opt/rustwide/target/release/build/generic-closure/b09e5e9924b66e83/out/nongeneric-b09e5e9924b66e83)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stderr]      Running tests/ui.rs (/opt/rustwide/target/release/build/generic-closure/346b9c251e5a8f91/out/ui-346b9c251e5a8f91)
[INFO] [stdout] test nongeneric_closure_trait_objects_can_borrow_captures ... ok
[INFO] [stdout] test either_unifies_nongeneric_closure_bodies ... ok
[INFO] [stdout] test nongeneric_unit_output_can_be_omitted ... ok
[INFO] [stdout] test nongeneric_closures_can_be_erased_as_trait_objects ... ok
[INFO] [stdout] test nongeneric_closures_can_store_existing_references ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]    Compiling generic-closure v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling generic-closure-tests v0.0.0 (/opt/rustwide/target/tests/trybuild/generic-closure)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.61s
[INFO] [stderr] 
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/borrowed_capture_escapes_owner.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0597]: `prefix` does not live long enough
[INFO] [stderr]   --> tests/ui/borrowed_capture_escapes_owner.rs:8:9
[INFO] [stderr]    |
[INFO] [stderr] 6  |       let render = {
[INFO] [stderr]    |           ------ borrow later stored here
[INFO] [stderr] 7  |           let prefix = String::from("value=");
[INFO] [stderr]    |               ------ binding `prefix` declared here
[INFO] [stderr] 8  | /         closure!(
[INFO] [stderr] 9  | |             &prefix: String,
[INFO] [stderr] 10 | |             Render(value: i32) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 11 | |         )
[INFO] [stderr]    | |_________^ borrowed value does not live long enough
[INFO] [stderr] 12 |       };
[INFO] [stderr]    |       - `prefix` dropped here while still borrowed
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0597]: `prefix` does not live long enough
[INFO] [stderr]   --> tests/ui/borrowed_capture_escapes_owner.rs:8:9
[INFO] [stderr]    |
[INFO] [stderr]  6 |       let render = {
[INFO] [stderr]    |           ------ borrow later stored here
[INFO] [stderr]  7 |           let prefix = String::from("value=");
[INFO] [stderr]    |               ------ binding `prefix` declared here
[INFO] [stderr]  8 | /         closure!(
[INFO] [stderr]  9 | |             &prefix: String,
[INFO] [stderr] 10 | |             Render(value: i32) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 11 | |         )
[INFO] [stderr]    | |_________^ borrowed value does not live long enough
[INFO] [stderr] 12 |       };
[INFO] [stderr]    |       - `prefix` dropped here while still borrowed
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/capture_shadows_argument.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/clone_capture_requires_clone.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0277]: the trait bound `NotClone: Clone` is not satisfied
[INFO] [stderr]   --> tests/ui/clone_capture_requires_clone.rs:9:13
[INFO] [stderr]    |
[INFO] [stderr] 9  |       let _ = closure!(
[INFO] [stderr]    |  _____________^
[INFO] [stderr] 10 | |         clone value: NotClone,
[INFO] [stderr] 11 | |         Read(_input: ()) -> usize { value.0 }
[INFO] [stderr] 12 | |     );
[INFO] [stderr]    | |     ^
[INFO] [stderr]    | |     |
[INFO] [stderr]    | |_____the trait `Clone` is not implemented for `NotClone`
[INFO] [stderr]    |       required by a bound introduced by this call
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider annotating `NotClone` with `#[derive(Clone)]`
[INFO] [stderr]    |
[INFO] [stderr] 5  + #[derive(Clone)]
[INFO] [stderr] 6  | struct NotClone(usize);
[INFO] [stderr]    |
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0277]: the trait bound `NotClone: Clone` is not satisfied
[INFO] [stderr]   --> tests/ui/clone_capture_requires_clone.rs:9:13
[INFO] [stderr]    |
[INFO] [stderr]  9 |       let _ = closure!(
[INFO] [stderr]    |  _____________^
[INFO] [stderr] 10 | |         clone value: NotClone,
[INFO] [stderr] 11 | |         Read(_input: ()) -> usize { value.0 }
[INFO] [stderr] 12 | |     );
[INFO] [stderr]    | |     ^
[INFO] [stderr]    | |     |
[INFO] [stderr]    | |_____the trait `Clone` is not implemented for `NotClone`
[INFO] [stderr]    |       required by a bound introduced by this call
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] help: consider annotating `NotClone` with `#[derive(Clone)]`
[INFO] [stderr]    |
[INFO] [stderr]  5 + #[derive(Clone)]
[INFO] [stderr]  6 | struct NotClone(usize);
[INFO] [stderr]    |
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/generic_trait_is_not_dyn_compatible.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0038]: the trait `Render` cannot be made into an object
[INFO] [stderr]  --> tests/ui/generic_trait_is_not_dyn_compatible.rs:6:22
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn accept_erased(_: &dyn Render) {}
[INFO] [stderr]   |                      ^^^^^^^^^^ `Render` cannot be made into an object
[INFO] [stderr]   |
[INFO] [stderr] note: for a trait to be "dyn-compatible" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
[INFO] [stderr]  --> tests/ui/generic_trait_is_not_dyn_compatible.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | closure_trait!(Render<T: Display>(value: T) -> String);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |              |
[INFO] [stderr]   | |              this trait cannot be made into an object...
[INFO] [stderr]   | ...because method `call` has generic type parameters
[INFO] [stderr]   | ...because method `call_mut` has generic type parameters
[INFO] [stderr]   | ...because method `call_box` has generic type parameters
[INFO] [stderr]   = help: consider moving `call` to another trait
[INFO] [stderr]   = help: consider moving `call_mut` to another trait
[INFO] [stderr]   = help: consider moving `call_box` to another trait
[INFO] [stderr]   = help: only type `generic_closure::Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>` implements the trait, consider using it directly instead
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_emit_trait` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0038]: the trait `Render` is not dyn compatible
[INFO] [stderr]  --> tests/ui/generic_trait_is_not_dyn_compatible.rs:6:22
[INFO] [stderr]   |
[INFO] [stderr] 6 | fn accept_erased(_: &dyn Render) {}
[INFO] [stderr]   |                      ^^^^^^^^^^ `Render` is not dyn compatible
[INFO] [stderr]   |
[INFO] [stderr] note: for a trait to be dyn compatible it needs to allow building a vtable
[INFO] [stderr]       for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
[INFO] [stderr]  --> tests/ui/generic_trait_is_not_dyn_compatible.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | closure_trait!(Render<T: Display>(value: T) -> String);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |              |
[INFO] [stderr]   | |              this trait is not dyn compatible...
[INFO] [stderr]   | ...because method `call` has generic type parameters
[INFO] [stderr]   | ...because method `call_mut` has generic type parameters
[INFO] [stderr]   | ...because method `call_box` has generic type parameters
[INFO] [stderr]   = help: consider moving `call` to another trait
[INFO] [stderr]   = help: consider moving `call_mut` to another trait
[INFO] [stderr]   = help: consider moving `call_box` to another trait
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_emit_trait` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/immutable_fnmut_captures_cannot_be_mutated.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0596]: cannot borrow `*moved` as mutable, as it is behind a `&` reference
[INFO] [stderr]   --> tests/ui/immutable_fnmut_captures_cannot_be_mutated.rs:10:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             moved.push('x');
[INFO] [stderr]    |             ^^^^^ `moved` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stderr] 
[INFO] [stderr] error[E0596]: cannot borrow `*cloned` as mutable, as it is behind a `&` reference
[INFO] [stderr]   --> tests/ui/immutable_fnmut_captures_cannot_be_mutated.rs:18:13
[INFO] [stderr]    |
[INFO] [stderr] 18 |             cloned.push('x');
[INFO] [stderr]    |             ^^^^^^ `cloned` is a `&` reference, so the data it refers to cannot be borrowed as mutable
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0596]: cannot borrow data in a `&` reference as mutable
[INFO] [stderr]   --> tests/ui/immutable_fnmut_captures_cannot_be_mutated.rs:10:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             moved.push('x');
[INFO] [stderr]    |             ^^^^^ `moved` is a `&` reference, so it cannot be borrowed as mutable
[INFO] [stderr] 
[INFO] [stderr] error[E0596]: cannot borrow data in a `&` reference as mutable
[INFO] [stderr]   --> tests/ui/immutable_fnmut_captures_cannot_be_mutated.rs:18:13
[INFO] [stderr]    |
[INFO] [stderr] 18 |             cloned.push('x');
[INFO] [stderr]    |             ^^^^^^ `cloned` is a `&` reference, so it cannot be borrowed as mutable
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/immutable_fnonce_capture_cannot_be_mutated.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0596]: cannot borrow `text` as mutable, as it is not declared as mutable
[INFO] [stderr]   --> tests/ui/immutable_fnonce_capture_cannot_be_mutated.rs:10:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             text.push('x');
[INFO] [stderr]    |             ^^^^ cannot borrow as mutable
[INFO] [stderr]    |
[INFO] [stderr] help: consider changing this to be mutable
[INFO] [stderr]   --> src/closure.rs
[INFO] [stderr]    |
[INFO] [stderr]    |                 let ($(mut $capture,)*) = $receiver.0;
[INFO] [stderr]    |                        +++
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0596]: cannot borrow value as mutable, as it is not declared as mutable
[INFO] [stderr]   --> tests/ui/immutable_fnonce_capture_cannot_be_mutated.rs:10:13
[INFO] [stderr]    |
[INFO] [stderr] 10 |             text.push('x');
[INFO] [stderr]    |             ^^^^ cannot borrow as mutable
[INFO] [stderr]    |
[INFO] [stderr] help: consider changing this to be mutable
[INFO] [stderr]   -->  $DIR/src/closure.rs
[INFO] [stderr]    |
[INFO] [stderr]    |                 let ($(mut $capture,)*) = $receiver.0;
[INFO] [stderr]    |                        +++
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/malformed_capture_list.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! invocation; expected comma-terminated captures such as `x: Type`, `mut x: Type`, `clone x: Type`, `clone mut x: Type`, `&x: Type`, or `&mut x: Type`, followed by a call signature
[INFO] [stderr]  --> tests/ui/malformed_capture_list.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         prefix: String
[INFO] [stderr] 7 | |         Render<T: std::fmt::Display>(value: T) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! invocation; expected comma-terminated captures such as `x: Type`, `mut x: Type`, `clone x: Type`, `clone mut x: Type`, `&x: Type`, or `&mut x: Type`, followed by a call signature
[INFO] [stderr]  --> tests/ui/malformed_capture_list.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         prefix: String
[INFO] [stderr] 7 | |         Render<T: std::fmt::Display>(value: T) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]  --> tests/ui/malformed_capture_list.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         prefix: String
[INFO] [stderr] 7 | |         Render<T: std::fmt::Display>(value: T) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]   = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]   = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/malformed_closure_signature.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! generic arguments; expected `name: Type` arguments such as `(value: T)` or `(left: T, right: T)`, optionally preceded by `&self`, `&mut self`, or `self`
[INFO] [stderr]  --> tests/ui/malformed_closure_signature.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 5 | |         Render<T: std::fmt::Display>(T) -> String { String::new() }
[INFO] [stderr] 6 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! generic arguments; expected `name: Type` arguments such as `(value: T)` or `(left: T, right: T)`, optionally preceded by `&self`, `&mut self`, or `self`
[INFO] [stderr]  --> tests/ui/malformed_closure_signature.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 5 | |         Render<T: std::fmt::Display>(T) -> String { String::new() }
[INFO] [stderr] 6 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]  --> tests/ui/malformed_closure_signature.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 5 | |         Render<T: std::fmt::Display>(T) -> String { String::new() }
[INFO] [stderr] 6 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]   = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]   = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/malformed_closure_where_clause.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! where clause; expected at least one predicate followed by a body
[INFO] [stderr]  --> tests/ui/malformed_closure_where_clause.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let _ = closure!(Broken<T: std::fmt::Debug>(value: T) where { value });
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! where clause; expected at least one predicate followed by a body
[INFO] [stderr]  --> tests/ui/malformed_closure_where_clause.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let _ = closure!(Broken<T: std::fmt::Debug>(value: T) where { value });
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]  --> tests/ui/malformed_closure_where_clause.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let _ = closure!(Broken<T: std::fmt::Debug>(value: T) where { value });
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]   = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]   = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/malformed_nongeneric_closure_signature.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! non-generic arguments; expected `name: Type` arguments such as `(value: i32)` or `(left: i32, right: i32)`, optionally preceded by `&self`, `&mut self`, or `self`
[INFO] [stderr]  --> tests/ui/malformed_nongeneric_closure_signature.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 5 | |         Render(i32) -> String { String::new() }
[INFO] [stderr] 6 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! non-generic arguments; expected `name: Type` arguments such as `(value: i32)` or `(left: i32, right: i32)`, optionally preceded by `&self`, `&mut self`, or `self`
[INFO] [stderr]  --> tests/ui/malformed_nongeneric_closure_signature.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 5 | |         Render(i32) -> String { String::new() }
[INFO] [stderr] 6 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]  --> tests/ui/malformed_nongeneric_closure_signature.rs:4:13
[INFO] [stderr]   |
[INFO] [stderr] 4 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 5 | |         Render(i32) -> String { String::new() }
[INFO] [stderr] 6 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]   = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]   = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/malformed_nongeneric_trait_signature.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/malformed_trait_invocation.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/malformed_trait_signature.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/malformed_trait_where_clause.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/mismatched_argument_count.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0050]: method `call` has 2 parameters but the declaration in trait `Add::call` has 3
[INFO] [stderr]  --> tests/ui/mismatched_argument_count.rs:6:36
[INFO] [stderr]   |
[INFO] [stderr] 3 |    closure_trait!(Add(left: i32, right: i32) -> i32);
[INFO] [stderr]   |  __________________________________________-
[INFO] [stderr] 4 | |
[INFO] [stderr] 5 | |  fn main() {
[INFO] [stderr] 6 | |      let _ = closure!(Add(value: i32) -> i32 { value });
[INFO] [stderr]   | | ____________________________________^
[INFO] [stderr] ... ||
[INFO] [stderr] ... ||
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0050]: method `call` has 2 parameters but the declaration in trait `Add::call` has 3
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/mismatched_generic_bounds.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/mismatched_input_type.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0053]: method `call` has an incompatible type for trait
[INFO] [stderr]  --> tests/ui/mismatched_input_type.rs:7:23
[INFO] [stderr]   |
[INFO] [stderr] 7 |         Render(value: i64) -> String { value.to_string() }
[INFO] [stderr]   |                       ^^^ expected `i32`, found `i64`
[INFO] [stderr]   |
[INFO] [stderr] note: type in trait
[INFO] [stderr]  --> tests/ui/mismatched_input_type.rs:3:30
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Render(value: i32) -> String);
[INFO] [stderr]   |                              ^^^
[INFO] [stderr]   = note: expected signature `fn(&__NongenericClosure<'closure>, i32) -> String`
[INFO] [stderr]              found signature `fn(&__NongenericClosure<'closure>, i64) -> String`
[INFO] [stderr] help: change the parameter type to match the trait
[INFO] [stderr]   |
[INFO] [stderr] 7 |         Render(value: i32) -> String { value.to_string() }
[INFO] [stderr]   |                       ~~~
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0053]: method `call` has an incompatible type for trait
[INFO] [stderr]  --> tests/ui/mismatched_input_type.rs:7:23
[INFO] [stderr]   |
[INFO] [stderr] 7 |         Render(value: i64) -> String { value.to_string() }
[INFO] [stderr]   |                       ^^^ expected `i32`, found `i64`
[INFO] [stderr]   |
[INFO] [stderr] note: type in trait
[INFO] [stderr]  --> tests/ui/mismatched_input_type.rs:3:30
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Render(value: i32) -> String);
[INFO] [stderr]   |                              ^^^
[INFO] [stderr]   = note: expected signature `fn(&__NongenericClosure<'closure>, i32) -> String`
[INFO] [stderr]              found signature `fn(&__NongenericClosure<'closure>, i64) -> String`
[INFO] [stderr] help: change the parameter type to match the trait
[INFO] [stderr]   |
[INFO] [stderr] 7 -         Render(value: i64) -> String { value.to_string() }
[INFO] [stderr] 7 +         Render(value: i32) -> String { value.to_string() }
[INFO] [stderr]   |
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/mismatched_output_type.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0053]: method `call` has an incompatible type for trait
[INFO] [stderr]  --> tests/ui/mismatched_output_type.rs:7:31
[INFO] [stderr]   |
[INFO] [stderr] 7 |         Render(value: i32) -> usize { value as usize }
[INFO] [stderr]   |                               ^^^^^ expected `String`, found `usize`
[INFO] [stderr]   |
[INFO] [stderr] note: type in trait
[INFO] [stderr]  --> tests/ui/mismatched_output_type.rs:3:38
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Render(value: i32) -> String);
[INFO] [stderr]   |                                      ^^^^^^
[INFO] [stderr]   = note: expected signature `fn(&__NongenericClosure<'closure>, i32) -> String`
[INFO] [stderr]              found signature `fn(&__NongenericClosure<'closure>, i32) -> usize`
[INFO] [stderr] help: change the output type to match the trait
[INFO] [stderr]   |
[INFO] [stderr] 7 |         Render(value: i32) -> String { value as usize }
[INFO] [stderr]   |                               ~~~~~~
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0053]: method `call` has an incompatible type for trait
[INFO] [stderr]  --> tests/ui/mismatched_output_type.rs:7:31
[INFO] [stderr]   |
[INFO] [stderr] 7 |         Render(value: i32) -> usize { value as usize }
[INFO] [stderr]   |                               ^^^^^ expected `String`, found `usize`
[INFO] [stderr]   |
[INFO] [stderr] note: type in trait
[INFO] [stderr]  --> tests/ui/mismatched_output_type.rs:3:38
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Render(value: i32) -> String);
[INFO] [stderr]   |                                      ^^^^^^
[INFO] [stderr]   = note: expected signature `fn(&__NongenericClosure<'closure>, i32) -> String`
[INFO] [stderr]              found signature `fn(&__NongenericClosure<'closure>, i32) -> usize`
[INFO] [stderr] help: change the output type to match the trait
[INFO] [stderr]   |
[INFO] [stderr] 7 -         Render(value: i32) -> usize { value as usize }
[INFO] [stderr] 7 +         Render(value: i32) -> String { value as usize }
[INFO] [stderr]   |
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/missing_capture_type.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! invocation; expected comma-terminated captures such as `x: Type`, `mut x: Type`, `clone x: Type`, `clone mut x: Type`, `&x: Type`, or `&mut x: Type`, followed by a call signature
[INFO] [stderr]  --> tests/ui/missing_capture_type.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         prefix:,
[INFO] [stderr] 7 | |         Render(value: i32) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! invocation; expected comma-terminated captures such as `x: Type`, `mut x: Type`, `clone x: Type`, `clone mut x: Type`, `&x: Type`, or `&mut x: Type`, followed by a call signature
[INFO] [stderr]  --> tests/ui/missing_capture_type.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         prefix:,
[INFO] [stderr] 7 | |         Render(value: i32) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]  --> tests/ui/missing_capture_type.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         prefix:,
[INFO] [stderr] 7 | |         Render(value: i32) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]   = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]   = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/missing_closure_lifetime.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/mutable_borrow_requires_mut_receiver.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: mutable capture `total` requires a closure signature with `&mut self` or `self`
[INFO] [stderr]   --> tests/ui/mutable_borrow_requires_mut_receiver.rs:7:17
[INFO] [stderr]    |
[INFO] [stderr] 7  |       let _read = closure!(
[INFO] [stderr]    |  _________________^
[INFO] [stderr] 8  | |         &mut total: i32,
[INFO] [stderr] 9  | |         Read(value: i32) -> i32 {
[INFO] [stderr] 10 | |             *total += value;
[INFO] [stderr] ...  |
[INFO] [stderr] 13 | |     );
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: mutable capture `total` requires a closure signature with `&mut self` or `self`
[INFO] [stderr]   --> tests/ui/mutable_borrow_requires_mut_receiver.rs:7:17
[INFO] [stderr]    |
[INFO] [stderr]  7 |       let _read = closure!(
[INFO] [stderr]    |  _________________^
[INFO] [stderr]  8 | |         &mut total: i32,
[INFO] [stderr]  9 | |         Read(value: i32) -> i32 {
[INFO] [stderr] 10 | |             *total += value;
[INFO] [stderr] ...  |
[INFO] [stderr] 13 | |     );
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> tests/ui/mutable_borrow_requires_mut_receiver.rs:7:17
[INFO] [stderr]    |
[INFO] [stderr]  7 |       let _read = closure!(
[INFO] [stderr]    |  _________________^
[INFO] [stderr]  8 | |         &mut total: i32,
[INFO] [stderr]  9 | |         Read(value: i32) -> i32 {
[INFO] [stderr] 10 | |             *total += value;
[INFO] [stderr] ...  |
[INFO] [stderr] 13 | |     );
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/mutable_capture_requires_mut_receiver.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: mutable capture `text` requires a closure signature with `&mut self` or `self`
[INFO] [stderr]   --> tests/ui/mutable_capture_requires_mut_receiver.rs:7:19
[INFO] [stderr]    |
[INFO] [stderr] 7  |       let _render = closure!(
[INFO] [stderr]    |  ___________________^
[INFO] [stderr] 8  | |         mut text: String,
[INFO] [stderr] 9  | |         Render(value: i32) -> String {
[INFO] [stderr] 10 | |             text.push_str(&value.to_string());
[INFO] [stderr] ...  |
[INFO] [stderr] 13 | |     );
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: mutable capture `text` requires a closure signature with `&mut self` or `self`
[INFO] [stderr]   --> tests/ui/mutable_capture_requires_mut_receiver.rs:7:19
[INFO] [stderr]    |
[INFO] [stderr]  7 |       let _render = closure!(
[INFO] [stderr]    |  ___________________^
[INFO] [stderr]  8 | |         mut text: String,
[INFO] [stderr]  9 | |         Render(value: i32) -> String {
[INFO] [stderr] 10 | |             text.push_str(&value.to_string());
[INFO] [stderr] ...  |
[INFO] [stderr] 13 | |     );
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]   --> tests/ui/mutable_capture_requires_mut_receiver.rs:7:19
[INFO] [stderr]    |
[INFO] [stderr]  7 |       let _render = closure!(
[INFO] [stderr]    |  ___________________^
[INFO] [stderr]  8 | |         mut text: String,
[INFO] [stderr]  9 | |         Render(value: i32) -> String {
[INFO] [stderr] 10 | |             text.push_str(&value.to_string());
[INFO] [stderr] ...  |
[INFO] [stderr] 13 | |     );
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]    = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/private_trait_is_not_visible.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/self_in_argument_type.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0411]: cannot find type `Self` in this scope
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:51
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | --------------------------------------------------^^^^----------
[INFO] [stderr]   | |                                                 |
[INFO] [stderr]   | |                                                 `Self` is only available in impls, traits, and type definitions
[INFO] [stderr]   | `Self` not allowed in a function
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&__GenericClosureEitherLeft`, found `&Either<..., ...>`
[INFO] [stderr]   | expected this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&__GenericClosureEitherLeft`
[INFO] [stderr]              found reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&__GenericClosureEitherRight`, found `&Either<..., ...>`
[INFO] [stderr]   | expected this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&__GenericClosureEitherRight`
[INFO] [stderr]              found reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0411]: cannot find type `Self` in this scope
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:51
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | --------------------------------------------------^^^^----------
[INFO] [stderr]   | |                                                 |
[INFO] [stderr]   | |                                                 `Self` is only available in impls, traits, and type definitions
[INFO] [stderr]   | `Self` not allowed in a function
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&__GenericClosureEitherLeft`, found `&_`
[INFO] [stderr]   | expected this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&__GenericClosureEitherLeft`
[INFO] [stderr]              found reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&__GenericClosureEitherRight`, found `&_`
[INFO] [stderr]   | expected this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&__GenericClosureEitherRight`
[INFO] [stderr]              found reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_argument_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Compare<T: Copy>(value: T, other: &Self) -> bool);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/self_in_inline_bound.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/self_in_output_type.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0411]: cannot find type `Self` in this scope
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:48
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | -----------------------------------------------^^^^-----
[INFO] [stderr]   | |                                              |
[INFO] [stderr]   | |                                              `Self` is only available in impls, traits, and type definitions
[INFO] [stderr]   | `Self` not allowed in a function
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&Either<..., ...>`, found `&__GenericClosureEitherLeft`
[INFO] [stderr]   | found this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr]              found reference `&__GenericClosureEitherLeft`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either_nongeneric` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&Either<..., ...>`, found `&__GenericClosureEitherRight`
[INFO] [stderr]   | found this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr]              found reference `&__GenericClosureEitherRight`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either_nongeneric` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0411]: cannot find type `Self` in this scope
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:48
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | -----------------------------------------------^^^^-----
[INFO] [stderr]   | |                                              |
[INFO] [stderr]   | |                                              `Self` is only available in impls, traits, and type definitions
[INFO] [stderr]   | `Self` not allowed in a function
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&_`, found `&__GenericClosureEitherLeft`
[INFO] [stderr]   | found this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr]              found reference `&__GenericClosureEitherLeft`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either_nongeneric` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] error[E0308]: mismatched types
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   | |
[INFO] [stderr]   | expected `&_`, found `&__GenericClosureEitherRight`
[INFO] [stderr]   | found this type parameter
[INFO] [stderr]   | arguments to this function are incorrect
[INFO] [stderr]   |
[INFO] [stderr]   = note: expected reference `&Either<__GenericClosureEitherLeft, __GenericClosureEitherRight>`
[INFO] [stderr]              found reference `&__GenericClosureEitherRight`
[INFO] [stderr] note: method defined here
[INFO] [stderr]  --> tests/ui/self_in_output_type.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Pointers(value: i32) -> [*const Self; 1]);
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_impl_either_nongeneric` which comes from the expansion of the macro `closure_trait` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/self_in_where_predicate.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0411]: cannot find type `Self` in this scope
[INFO] [stderr]  --> tests/ui/self_in_where_predicate.rs:3:46
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Call<T: Copy>(value: T) where Self: Sized);
[INFO] [stderr]   | ---------------------------------------------^^^^--------
[INFO] [stderr]   | |                                            |
[INFO] [stderr]   | |                                            `Self` is only available in impls, traits, and type definitions
[INFO] [stderr]   | `Self` not allowed in a function
[INFO] [stderr] 
[INFO] [stderr] error[E0282]: type annotations needed
[INFO] [stderr]  --> tests/ui/self_in_where_predicate.rs:3:37
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Call<T: Copy>(value: T) where Self: Sized);
[INFO] [stderr]   |                                     ^ cannot infer type for type parameter `T`
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error[E0411]: cannot find type `Self` in this scope
[INFO] [stderr]  --> tests/ui/self_in_where_predicate.rs:3:46
[INFO] [stderr]   |
[INFO] [stderr] 3 | closure_trait!(Call<T: Copy>(value: T) where Self: Sized);
[INFO] [stderr]   | ---------------------------------------------^^^^--------
[INFO] [stderr]   | |                                            |
[INFO] [stderr]   | |                                            `Self` is only available in impls, traits, and type definitions
[INFO] [stderr]   | `Self` not allowed in a function
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/unnamed_generic_trait_argument.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/unnamed_nongeneric_trait_argument.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui/unsupported_capture_mode.rs [should fail to compile] ... mismatch
[INFO] [stderr] 
[INFO] [stderr] EXPECTED:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! invocation; expected comma-terminated captures such as `x: Type`, `mut x: Type`, `clone x: Type`, `clone mut x: Type`, `&x: Type`, or `&mut x: Type`, followed by a call signature
[INFO] [stderr]  --> tests/ui/unsupported_capture_mode.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         copy prefix: String,
[INFO] [stderr] 7 | |         Render<T: std::fmt::Display>(value: T) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] 
[INFO] [stderr] ACTUAL OUTPUT:
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] error: malformed closure! invocation; expected comma-terminated captures such as `x: Type`, `mut x: Type`, `clone x: Type`, `clone mut x: Type`, `&x: Type`, or `&mut x: Type`, followed by a call signature
[INFO] [stderr]  --> tests/ui/unsupported_capture_mode.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         copy prefix: String,
[INFO] [stderr] 7 | |         Render<T: std::fmt::Display>(value: T) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this error originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: trailing semicolon in macro used in expression position
[INFO] [stderr]  --> tests/ui/unsupported_capture_mode.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 |       let _ = closure!(
[INFO] [stderr]   |  _____________^
[INFO] [stderr] 6 | |         copy prefix: String,
[INFO] [stderr] 7 | |         Render<T: std::fmt::Display>(value: T) -> String { format!("{prefix}{value}") }
[INFO] [stderr] 8 | |     );
[INFO] [stderr]   | |_____^
[INFO] [stderr]   |
[INFO] [stderr]   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stderr]   = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stderr]   = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stderr]   = note: this warning originates in the macro `$crate::__generic_closure_parse_closure` which comes from the expansion of the macro `closure` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
[INFO] [stderr] note: If the actual output is the correct output you can bless it by rerunning
[INFO] [stderr]       your test with the environment variable TRYBUILD=overwrite
[INFO] [stderr] 
[INFO] [stderr] test tests/ui/unsupported_trait_attribute.rs [should fail to compile] ... ok
[INFO] [stderr] test tests/ui-pass/boxed_fnonce_dyn.rs [should pass] ... ok
[INFO] [stderr] test tests/ui-pass/documented_public_trait.rs [should pass] ... ok
[INFO] [stderr] test tests/ui-pass/nested_closure_lifetime.rs [should pass] ... ok
[INFO] [stderr] test tests/ui-pass/nongeneric_dyn.rs [should pass] ... ok
[INFO] [stderr] test tests/ui-pass/public_trait_is_visible.rs [should pass] ... ok
[INFO] [stderr] 
[INFO] [stderr] 
[INFO] [stdout] test macro_ui_contract ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- macro_ui_contract stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'macro_ui_contract' (722) panicked at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/trybuild-1.0.119/src/run.rs:102:13:
[INFO] [stdout] 19 of 36 tests failed
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6451a5a88771 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x6451a5a9ea5a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x6451a5a8cfbc - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x6451a5a61bd6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x6451a5a7fd19 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x6451a5a19320 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x6451a5a7fed2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x6451a5a61c82 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x6451a5a5a4d9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x6451a5a6288d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x6451a5a9f1cc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x6451a596c0da - <trybuild[befb0100fc0edbc]::Runner>::run
[INFO] [stdout]   12:     0x6451a596f210 - <trybuild[befb0100fc0edbc]::TestCases as core[a373ad73a504971]::ops::drop::Drop>::drop
[INFO] [stdout]   13:     0x6451a5966016 - ui[767e526c8655011b]::macro_ui_contract
[INFO] [stdout]   14:     0x6451a5966249 - <ui[767e526c8655011b]::macro_ui_contract::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x6451a5a0c76b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   16:     0x6451a5a19945 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   17:     0x6451a5a13234 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x6451a5a1c9d2 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x6451a5a879cf - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x780d7d98adfa - <unknown>
[INFO] [stdout]   21:     0x780d7da1e3d4 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     macro_ui_contract
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.83s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test ui`
[INFO] running `Command { std: "docker" "inspect" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f", kill_on_drop: false }`
[INFO] [stdout] 91219bab713a98f7f7b3bbe5c3d66966aed455d20e28d0493faf8a513b26fb1f
