[INFO] fetching crate overture-core 0.2.0...
[INFO] testing overture-core-0.2.0 against 1.91.0 for beta-1.92-2
[INFO] extracting crate overture-core 0.2.0 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate overture-core 0.2.0
[INFO] finished tweaking crates.io crate overture-core 0.2.0
[INFO] tweaked toml for crates.io crate overture-core 0.2.0 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate overture-core 0.2.0 on toolchain 1.91.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate overture-core 0.2.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.91.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7361e28495e2ff92431ef7fb9892a6b47539594b0b55831362174c2ab6f74275
[INFO] running `Command { std: "docker" "start" "-a" "7361e28495e2ff92431ef7fb9892a6b47539594b0b55831362174c2ab6f74275", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7361e28495e2ff92431ef7fb9892a6b47539594b0b55831362174c2ab6f74275", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7361e28495e2ff92431ef7fb9892a6b47539594b0b55831362174c2ab6f74275", kill_on_drop: false }`
[INFO] [stdout] 7361e28495e2ff92431ef7fb9892a6b47539594b0b55831362174c2ab6f74275
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c8c198caf80519f2d1e0000ab93a7a3c36187f45ffa17fab06fdadd4f1f164b2
[INFO] running `Command { std: "docker" "start" "-a" "c8c198caf80519f2d1e0000ab93a7a3c36187f45ffa17fab06fdadd4f1f164b2", kill_on_drop: false }`
[INFO] [stderr]    Compiling overture-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type parameter `F_IN` should have an upper camel case name
[INFO] [stdout]    --> src/compose_rc.rs:157:35
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn compose6_rs<A, B, C, D, E, F_IN, R, F, G, H, I, J, K>(f: F, g: G, h: H, i: I, j: J, k: K) -> impl Fn(A) -> R
[INFO] [stdout]     |                                   ^^^^ help: convert the identifier to upper camel case: `FIn`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `F_IN` should have an upper camel case name
[INFO] [stdout]    --> src/compose_rc.rs:322:44
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn compose6_rs_throwing<A, B, C, D, E, F_IN, R, Err, F, G, H, I, J, K>(f: F, g: G, h: H, i: I, j: J, k: K) -> impl Fn(A) -> Result<R,...
[INFO] [stdout]     |                                            ^^^^ help: convert the identifier to upper camel case: `FIn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]  --> src/suites.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::VecDeque;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.01s
[INFO] running `Command { std: "docker" "inspect" "c8c198caf80519f2d1e0000ab93a7a3c36187f45ffa17fab06fdadd4f1f164b2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8c198caf80519f2d1e0000ab93a7a3c36187f45ffa17fab06fdadd4f1f164b2", kill_on_drop: false }`
[INFO] [stdout] c8c198caf80519f2d1e0000ab93a7a3c36187f45ffa17fab06fdadd4f1f164b2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 337e107a120bc0ced5027a561c5d8dd3c0439bf081a1c331a9fe98f992a7fbe2
[INFO] running `Command { std: "docker" "start" "-a" "337e107a120bc0ced5027a561c5d8dd3c0439bf081a1c331a9fe98f992a7fbe2", kill_on_drop: false }`
[INFO] [stderr]    Compiling overture-core v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type parameter `F_IN` should have an upper camel case name
[INFO] [stdout]    --> src/compose_rc.rs:157:35
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn compose6_rs<A, B, C, D, E, F_IN, R, F, G, H, I, J, K>(f: F, g: G, h: H, i: I, j: J, k: K) -> impl Fn(A) -> R
[INFO] [stdout]     |                                   ^^^^ help: convert the identifier to upper camel case: `FIn`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `F_IN` should have an upper camel case name
[INFO] [stdout]    --> src/compose_rc.rs:322:44
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn compose6_rs_throwing<A, B, C, D, E, F_IN, R, Err, F, G, H, I, J, K>(f: F, g: G, h: H, i: I, j: J, k: K) -> impl Fn(A) -> Result<R,...
[INFO] [stdout]     |                                            ^^^^ help: convert the identifier to upper camel case: `FIn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]  --> src/suites.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::VecDeque;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `F_IN` should have an upper camel case name
[INFO] [stdout]    --> src/compose_rc.rs:157:35
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub fn compose6_rs<A, B, C, D, E, F_IN, R, F, G, H, I, J, K>(f: F, g: G, h: H, i: I, j: J, k: K) -> impl Fn(A) -> R
[INFO] [stdout]     |                                   ^^^^ help: convert the identifier to upper camel case: `FIn`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type parameter `F_IN` should have an upper camel case name
[INFO] [stdout]    --> src/compose_rc.rs:322:44
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn compose6_rs_throwing<A, B, C, D, E, F_IN, R, Err, F, G, H, I, J, K>(f: F, g: G, h: H, i: I, j: J, k: K) -> impl Fn(A) -> Result<R,...
[INFO] [stdout]     |                                            ^^^^ help: convert the identifier to upper camel case: `FIn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]  --> src/suites.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::VecDeque;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/result.rs:213:28
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let results = vec![Ok(1), Ok(2), Ok(3)];
[INFO] [stdout]     |                            ^^ cannot infer type of the type parameter `E` declared on the enum `Result`
[INFO] [stdout]     |
[INFO] [stdout] help: consider specifying the generic arguments
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let results = vec![Ok::<i32, E>(1), Ok(2), Ok(3)];
[INFO] [stdout]     |                              ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@result.rs:243:40}` to return `{closure@result.rs:243:40}`, but it returns `String`
[INFO] [stdout]    --> src/result.rs:243:44
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mapped = map_error(result, |e| format!("Error: {}", e));
[INFO] [stdout]     |                      ---------         --- ^^^^^^^^^^^^^^^^^^^^^^^ expected closure, found `String`
[INFO] [stdout]     |                      |                 |
[INFO] [stdout]     |                      |                 this closure
[INFO] [stdout]     |                      |                 the expected closure
[INFO] [stdout]     |                      required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected closure `{closure@src/result.rs:243:40: 243:43}`
[INFO] [stdout]                 found struct `String`
[INFO] [stdout] note: required by a bound in `result::map_error`
[INFO] [stdout]    --> src/result.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn map_error<A, E, F, G>(result: Result<A, E>, transform: F) -> Result<A, F>
[INFO] [stdout]     |        --------- required by a bound in this function
[INFO] [stdout] 113 | where
[INFO] [stdout] 114 |     F: FnOnce(E) -> F,
[INFO] [stdout]     |                     ^ required by this bound in `map_error`
[INFO] [stdout]     = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<i32, {closure@src/result.rs:243:40: 243:43}>`
[INFO] [stdout]    --> src/result.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 244 |         assert_eq!(mapped, Err("Error: error".to_string()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         Result<i32, {closure@src/result.rs:243:40: 243:43}>
[INFO] [stdout]     |         Result<_, String>
[INFO] [stdout]     |
[INFO] [stdout] note: the foreign item type `Result<i32, {closure@src/result.rs:243:40: 243:43}>` doesn't implement `PartialEq<Result<_, String>>`
[INFO] [stdout]    --> /rustc/f8297e351a40c1439a467bbbb6879088047f50b3/library/core/src/result.rs:550:1
[INFO] [stdout]     |
[INFO] [stdout]     = note: not implement `PartialEq<Result<_, String>>`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `{closure@src/result.rs:243:40: 243:43}` doesn't implement `Debug`
[INFO] [stdout]    --> src/result.rs:244:9
[INFO] [stdout]     |
[INFO] [stdout] 243 |         let mapped = map_error(result, |e| format!("Error: {}", e));
[INFO] [stdout]     |                                        --- consider calling this closure
[INFO] [stdout] 244 |         assert_eq!(mapped, Err("Error: error".to_string()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for closure `{closure@src/result.rs:243:40: 243:43}`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `Debug` is implemented for `Result<T, E>`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:205:22}` to return `Box<dyn Fn(_) -> _>`, but it returns `Box<{closure@setter.rs:205:60}>`
[INFO] [stdout]    --> src/setter.rs:205:51
[INFO] [stdout]     |
[INFO] [stdout] 205 |         let setter = |f: Box<dyn Fn(i32) -> i32>| Box::new(move |x: i32| f(x));
[INFO] [stdout]     |                      ---------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Fn(_) -> _>`, found `Box<{closure@setter.rs:205:60}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 206 |         let transform = over(setter, |x| x * 2);
[INFO] [stdout]     |                         ---- ------ closure used here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn Fn(_) -> _ + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:205:60: 205:73}>`
[INFO] [stdout] note: required by a bound in `setter::over`
[INFO] [stdout]    --> src/setter.rs:26:40
[INFO] [stdout]     |
[INFO] [stdout]  16 | pub fn over<S, T, A, B, F, Setter>(
[INFO] [stdout]     |        ---- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  26 |     Setter: Fn(Box<dyn Fn(A) -> B>) -> Box<dyn Fn(S) -> T>,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^ required by this bound in `over`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:213:22}` to return `Box<dyn Fn(_) -> _>`, but it returns `Box<{closure@setter.rs:213:60}>`
[INFO] [stdout]    --> src/setter.rs:213:51
[INFO] [stdout]     |
[INFO] [stdout] 213 |         let setter = |f: Box<dyn Fn(i32) -> i32>| Box::new(move |x: i32| f(x));
[INFO] [stdout]     |                      ---------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Fn(_) -> _>`, found `Box<{closure@setter.rs:213:60}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 214 |         let set_value = set(setter, 42);
[INFO] [stdout]     |                         --- ------ closure used here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn Fn(_) -> _ + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:213:60: 213:73}>`
[INFO] [stdout] note: required by a bound in `setter::set`
[INFO] [stdout]    --> src/setter.rs:52:40
[INFO] [stdout]     |
[INFO] [stdout]  43 | pub fn set<S, T, A, B, Setter>(
[INFO] [stdout]     |        --- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  52 |     Setter: Fn(Box<dyn Fn(A) -> B>) -> Box<dyn Fn(S) -> T>,
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^ required by this bound in `set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:221:22}` to return `Box<dyn FnMut(&mut _)>`, but it returns `Box<{closure@setter.rs:221:61}>`
[INFO] [stdout]    --> src/setter.rs:221:52
[INFO] [stdout]     |
[INFO] [stdout] 221 |         let setter = |f: Box<dyn FnMut(&mut i32)>| Box::new(move |x: &mut i32| f(x));
[INFO] [stdout]     |                      ----------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(&mut _)>`, found `Box<{closure@setter.rs:221:61}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 222 |         let mut_transform = mver(setter, |x| *x *= 2);
[INFO] [stdout]     |                             ---- ------ closure used here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn for<'a> FnMut(&'a mut _) + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:221:61: 221:79}>`
[INFO] [stdout] note: required by a bound in `setter::mver`
[INFO] [stdout]    --> src/setter.rs:80:43
[INFO] [stdout]     |
[INFO] [stdout]  72 | pub fn mver<S, A, F, Setter>(
[INFO] [stdout]     |        ---- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout]  80 |     Setter: Fn(Box<dyn FnMut(&mut A)>) -> Box<dyn FnMut(&mut S)>,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `mver`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:230:22}` to return `Box<dyn FnMut(_)>`, but it returns `Box<{closure@setter.rs:230:61}>`
[INFO] [stdout]    --> src/setter.rs:230:52
[INFO] [stdout]     |
[INFO] [stdout] 230 |         let setter = |f: Box<dyn FnMut(&mut i32)>| Box::new(move |x: Rc<RefCell<i32>>| f(&mut x.borrow_mut()));
[INFO] [stdout]     |                      ----------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(_)>`, found `Box<{closure@setter.rs:230:61}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 231 |         let mut_transform = mver_ref(setter, |x| *x *= 2);
[INFO] [stdout]     |                             -------- ------ closure used here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn FnMut(_) + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:230:61: 230:87}>`
[INFO] [stdout] note: required by a bound in `setter::mver_ref`
[INFO] [stdout]    --> src/setter.rs:108:43
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn mver_ref<S, A, F, Setter>(
[INFO] [stdout]     |        -------- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 108 |     Setter: Fn(Box<dyn FnMut(&mut A)>) -> Box<dyn FnMut(S)>,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^ required by this bound in `mver_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:239:22}` to return `Box<dyn Fn(_)>`, but it returns `Box<{closure@setter.rs:239:66}>`
[INFO] [stdout]    --> src/setter.rs:239:57
[INFO] [stdout]     |
[INFO] [stdout] 239 |         let setter = |f: Box<dyn Fn(Rc<RefCell<i32>>)>| Box::new(move |x: Rc<RefCell<i32>>| f(x));
[INFO] [stdout]     |                      ---------------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Fn(_)>`, found `Box<{closure@setter.rs:239:66}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 240 |         let mut_transform = mver_ref_mut(setter, |x| *x.borrow_mut() *= 2);
[INFO] [stdout]     |                             ------------ ------ closure used here
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn Fn(_) + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:239:66: 239:92}>`
[INFO] [stdout] note: required by a bound in `setter::mver_ref_mut`
[INFO] [stdout]    --> src/setter.rs:136:35
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn mver_ref_mut<S, A, F, Setter>(
[INFO] [stdout]     |        ------------ required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 136 |     Setter: Fn(Box<dyn Fn(A)>) -> Box<dyn Fn(S)>,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^ required by this bound in `mver_ref_mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:248:22}` to return `Box<dyn FnMut(&mut _)>`, but it returns `Box<{closure@setter.rs:248:61}>`
[INFO] [stdout]    --> src/setter.rs:248:52
[INFO] [stdout]     |
[INFO] [stdout] 248 |         let setter = |f: Box<dyn FnMut(&mut i32)>| Box::new(move |x: &mut i32| f(x));
[INFO] [stdout]     |                      ----------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(&mut _)>`, found `Box<{closure@setter.rs:248:61}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 249 |         let set_value = mut_set(setter, 42);
[INFO] [stdout]     |                         ------- ------ closure used here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn for<'a> FnMut(&'a mut _) + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:248:61: 248:79}>`
[INFO] [stdout] note: required by a bound in `setter::mut_set`
[INFO] [stdout]    --> src/setter.rs:161:43
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn mut_set<S, A, Setter>(
[INFO] [stdout]     |        ------- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 161 |     Setter: Fn(Box<dyn FnMut(&mut A)>) -> Box<dyn FnMut(&mut S)>,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `mut_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:257:22}` to return `Box<dyn FnMut(_)>`, but it returns `Box<{closure@setter.rs:257:61}>`
[INFO] [stdout]    --> src/setter.rs:257:52
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let setter = |f: Box<dyn FnMut(&mut i32)>| Box::new(move |x: Rc<RefCell<i32>>| f(&mut x.borrow_mut()));
[INFO] [stdout]     |                      ----------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(_)>`, found `Box<{closure@setter.rs:257:61}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 258 |         let set_value = mut_set_ref(setter, 42);
[INFO] [stdout]     |                         ----------- ------ closure used here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn FnMut(_) + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:257:61: 257:87}>`
[INFO] [stdout] note: required by a bound in `setter::mut_set_ref`
[INFO] [stdout]    --> src/setter.rs:188:43
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn mut_set_ref<S, A, Setter>(
[INFO] [stdout]     |        ----------- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 188 |     Setter: Fn(Box<dyn FnMut(&mut A)>) -> Box<dyn FnMut(S)>,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^ required by this bound in `mut_set_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:266:22}` to return `Box<dyn FnMut(&mut _)>`, but it returns `Box<{closure@setter.rs:266:61}>`
[INFO] [stdout]    --> src/setter.rs:266:52
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let setter = |f: Box<dyn FnMut(&mut i32)>| Box::new(move |x: &mut i32| f(x));
[INFO] [stdout]     |                      ----------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(&mut _)>`, found `Box<{closure@setter.rs:266:61}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 267 |         let set_value = mset(setter, 42);
[INFO] [stdout]     |                         ---- ------ closure used here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn for<'a> FnMut(&'a mut _) + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:266:61: 266:79}>`
[INFO] [stdout] note: required by a bound in `setter::mut_set`
[INFO] [stdout]    --> src/setter.rs:161:43
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn mut_set<S, A, Setter>(
[INFO] [stdout]     |        ------- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 161 |     Setter: Fn(Box<dyn FnMut(&mut A)>) -> Box<dyn FnMut(&mut S)>,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `mut_set`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0271]: expected `{closure@setter.rs:275:22}` to return `Box<dyn FnMut(_)>`, but it returns `Box<{closure@setter.rs:275:61}>`
[INFO] [stdout]    --> src/setter.rs:275:52
[INFO] [stdout]     |
[INFO] [stdout] 275 |         let setter = |f: Box<dyn FnMut(&mut i32)>| Box::new(move |x: Rc<RefCell<i32>>| f(&mut x.borrow_mut()));
[INFO] [stdout]     |                      ----------------------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn FnMut(_)>`, found `Box<{closure@setter.rs:275:61}>`
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      this closure
[INFO] [stdout] 276 |         let set_value = mset_ref(setter, 42);
[INFO] [stdout]     |                         -------- ------ closure used here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Box<(dyn FnMut(_) + 'static)>`
[INFO] [stdout]                found struct `Box<{closure@src/setter.rs:275:61: 275:87}>`
[INFO] [stdout] note: required by a bound in `setter::mut_set_ref`
[INFO] [stdout]    --> src/setter.rs:188:43
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub fn mut_set_ref<S, A, Setter>(
[INFO] [stdout]     |        ----------- required by a bound in this function
[INFO] [stdout] ...
[INFO] [stdout] 188 |     Setter: Fn(Box<dyn FnMut(&mut A)>) -> Box<dyn FnMut(S)>,
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^ required by this bound in `mut_set_ref`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `Result<Vec<i32>, _>`
[INFO] [stdout]    --> src/with.rs:234:13
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let result = with_mut_throwing(vec![1, 2, 3], |v| {
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 235 |             v.push(4);
[INFO] [stdout] 236 |             Ok(())
[INFO] [stdout]     |             ------ type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `result` an explicit type, where the type for type parameter `E` is specified
[INFO] [stdout]     |
[INFO] [stdout] 234 |         let result: Result<_, E> = with_mut_throwing(vec![1, 2, 3], |v| {
[INFO] [stdout]     |                   ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `Result<i32, _>`
[INFO] [stdout]    --> src/with.rs:261:13
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let result = with_chain_throwing(5, [
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 262 |             |x| Ok(x * 2),
[INFO] [stdout]     |                 --------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `result` an explicit type, where the type for type parameter `E` is specified
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let result: Result<_, E> = with_chain_throwing(5, [
[INFO] [stdout]     |                   ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `Result<i32, _>`
[INFO] [stdout]    --> src/zurry.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let result = zurry_throwing(|| Ok(42));
[INFO] [stdout]     |             ^^^^^^                     ------ type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `result` an explicit type, where the type for type parameter `E` is specified
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let result: Result<_, E> = zurry_throwing(|| Ok(42));
[INFO] [stdout]     |                   ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed for `Result<i32, _>`
[INFO] [stdout]    --> src/zurry.rs:311:13
[INFO] [stdout]     |
[INFO] [stdout] 310 |         let lazy_value = unzurry_throwing(|| Ok(42));
[INFO] [stdout]     |                                              ------ type must be known at this point
[INFO] [stdout] 311 |         let result = lazy_value();
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving `result` an explicit type, where the type for type parameter `E` is specified
[INFO] [stdout]     |
[INFO] [stdout] 311 |         let result: Result<_, E> = lazy_value();
[INFO] [stdout]     |                   ++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/combinig.rs:399:38
[INFO] [stdout]     |
[INFO] [stdout] 399 |         let eq = their_eq(|u: &User| &u.name);
[INFO] [stdout]     |                               -    - ^^^^^^^ returning this value requires that `'1` must outlive `'2`
[INFO] [stdout]     |                               |    |
[INFO] [stdout]     |                               |    return type of closure is &'2 String
[INFO] [stdout]     |                               let's call the lifetime of this reference `'1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `result2`
[INFO] [stdout]    --> src/result.rs:178:46
[INFO] [stdout]     |
[INFO] [stdout] 172 |         let result2: Result<String, &str> = Ok("hello".to_string());
[INFO] [stdout]     |             ------- move occurs because `result2` has type `Result<String, &str>`, which does not implement the `Copy` trait
[INFO] [stdout] 173 |         
[INFO] [stdout] 174 |         let zipped = zip(result1, result2);
[INFO] [stdout]     |                                   ------- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 178 |         let zipped_error = zip(error_result, result2);
[INFO] [stdout]     |                                              ^^^^^^^ value used here after move
[INFO] [stdout]     |
[INFO] [stdout] note: consider changing this parameter type in function `zip` to borrow instead if owning the value isn't necessary
[INFO] [stdout]    --> src/result.rs:8:14
[INFO] [stdout]     |
[INFO] [stdout]   6 | pub fn zip<A, B, E>(
[INFO] [stdout]     |        --- in this function
[INFO] [stdout]   7 |     result1: Result<A, E>,
[INFO] [stdout]   8 |     result2: Result<B, E>,
[INFO] [stdout]     |              ^^^^^^^^^^^^ this parameter takes ownership of the value
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let zipped = zip(result1, result2.clone());
[INFO] [stdout]     |                                          ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `counter`, as it is a captured variable in a `Fn` closure
[INFO] [stdout]    --> src/zurry.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout]  83 | pub fn unzurry_repeatable<A>(value: impl Fn() -> A + 'static) -> impl Fn() -> A {
[INFO] [stdout]     |                                     ------------------------ change this to accept `FnMut` instead of `Fn`
[INFO] [stdout] ...
[INFO] [stdout] 318 |         let lazy_value = unzurry_repeatable(|| {
[INFO] [stdout]     |                          ------------------ -- in this closure
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          expects `Fn` instead of `FnMut`
[INFO] [stdout] 319 |             counter += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^ cannot assign
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `counter`, which is owned by the current function
[INFO] [stdout]    --> src/zurry.rs:318:45
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let lazy_value = unzurry_repeatable(|| {
[INFO] [stdout]     |                                             ^^ may outlive borrowed value `counter`
[INFO] [stdout] 319 |             counter += 1;
[INFO] [stdout]     |             ------- `counter` is borrowed here
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/zurry.rs:318:26
[INFO] [stdout]     |
[INFO] [stdout] 318 |           let lazy_value = unzurry_repeatable(|| {
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 319 | |             counter += 1;
[INFO] [stdout] 320 | |             counter
[INFO] [stdout] 321 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout] help: to force the closure to take ownership of `counter` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let lazy_value = unzurry_repeatable(move || {
[INFO] [stdout]     |                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `call_count`, as it is a captured variable in a `Fn` closure
[INFO] [stdout]    --> src/zurry.rs:339:13
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub fn lazy<A, F>(f: F) -> impl Fn() -> A
[INFO] [stdout]     |                      - change this to accept `FnMut` instead of `Fn`
[INFO] [stdout] ...
[INFO] [stdout] 338 |         let lazy_value = lazy(|| {
[INFO] [stdout]     |                          ---- -- in this closure
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          expects `Fn` instead of `FnMut`
[INFO] [stdout] 339 |             call_count += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `call_count`, which is owned by the current function
[INFO] [stdout]    --> src/zurry.rs:338:31
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let lazy_value = lazy(|| {
[INFO] [stdout]     |                               ^^ may outlive borrowed value `call_count`
[INFO] [stdout] 339 |             call_count += 1;
[INFO] [stdout]     |             ---------- `call_count` is borrowed here
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/zurry.rs:338:26
[INFO] [stdout]     |
[INFO] [stdout] 338 |           let lazy_value = lazy(|| {
[INFO] [stdout]     |  __________________________^
[INFO] [stdout] 339 | |             call_count += 1;
[INFO] [stdout] 340 | |             42
[INFO] [stdout] 341 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout] help: to force the closure to take ownership of `call_count` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let lazy_value = lazy(move || {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `call_count`, as it is a captured variable in a `Fn` closure
[INFO] [stdout]    --> src/zurry.rs:356:13
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn memoize<A, B, F>(f: F) -> impl Fn(A) -> B
[INFO] [stdout]     |                            - change this to accept `FnMut` instead of `Fn`
[INFO] [stdout] ...
[INFO] [stdout] 355 |         let memoized = memoize(|x: i32| {
[INFO] [stdout]     |                        ------- -------- in this closure
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        expects `Fn` instead of `FnMut`
[INFO] [stdout] 356 |             call_count += 1;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ cannot assign
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0373]: closure may outlive the current function, but it borrows `call_count`, which is owned by the current function
[INFO] [stdout]    --> src/zurry.rs:355:32
[INFO] [stdout]     |
[INFO] [stdout] 355 |         let memoized = memoize(|x: i32| {
[INFO] [stdout]     |                                ^^^^^^^^ may outlive borrowed value `call_count`
[INFO] [stdout] 356 |             call_count += 1;
[INFO] [stdout]     |             ---------- `call_count` is borrowed here
[INFO] [stdout]     |
[INFO] [stdout] note: function requires argument type to outlive `'static`
[INFO] [stdout]    --> src/zurry.rs:355:24
[INFO] [stdout]     |
[INFO] [stdout] 355 |           let memoized = memoize(|x: i32| {
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 356 | |             call_count += 1;
[INFO] [stdout] 357 | |             x * x
[INFO] [stdout] 358 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout] help: to force the closure to take ownership of `call_count` (and any other referenced variables), use the `move` keyword
[INFO] [stdout]     |
[INFO] [stdout] 355 |         let memoized = memoize(move |x: i32| {
[INFO] [stdout]     |                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0277, E0282, E0369, E0373, E0382, E0594.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `overture-core` (lib test) due to 25 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "337e107a120bc0ced5027a561c5d8dd3c0439bf081a1c331a9fe98f992a7fbe2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "337e107a120bc0ced5027a561c5d8dd3c0439bf081a1c331a9fe98f992a7fbe2", kill_on_drop: false }`
[INFO] [stdout] 337e107a120bc0ced5027a561c5d8dd3c0439bf081a1c331a9fe98f992a7fbe2
