[INFO] cloning repository https://github.com/0x55AAh/imbrut
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0x55AAh/imbrut" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x55AAh%2Fimbrut", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x55AAh%2Fimbrut'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9ae93348ce5e82be61ead957e5ed8f4edddbe2aa
[INFO] testing 0x55AAh/imbrut against beta-2025-09-21 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0x55AAh%2Fimbrut" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/0x55AAh/imbrut
[INFO] finished tweaking git repo https://github.com/0x55AAh/imbrut
[INFO] tweaked toml for git repo https://github.com/0x55AAh/imbrut written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0x55AAh/imbrut on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/0x55AAh/imbrut 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" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 951ca54671bf17d9c592fa6e235e2170cce610932434b842073f92037941784d
[INFO] running `Command { std: "docker" "start" "-a" "951ca54671bf17d9c592fa6e235e2170cce610932434b842073f92037941784d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "951ca54671bf17d9c592fa6e235e2170cce610932434b842073f92037941784d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "951ca54671bf17d9c592fa6e235e2170cce610932434b842073f92037941784d", kill_on_drop: false }`
[INFO] [stdout] 951ca54671bf17d9c592fa6e235e2170cce610932434b842073f92037941784d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 72ff9b0defe04200f6c542e1da947b1552d1b477bf93e3ed70bd6a96c0af1802
[INFO] running `Command { std: "docker" "start" "-a" "72ff9b0defe04200f6c542e1da947b1552d1b477bf93e3ed70bd6a96c0af1802", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.49
[INFO] [stderr]    Compiling unicode-ident v1.0.6
[INFO] [stderr]    Compiling quote v1.0.23
[INFO] [stderr]    Compiling libc v0.2.139
[INFO] [stderr]    Compiling syn v1.0.107
[INFO] [stderr]    Compiling once_cell v1.17.0
[INFO] [stderr]    Compiling cc v1.0.78
[INFO] [stderr]    Compiling pkg-config v0.3.26
[INFO] [stderr]    Compiling serde_derive v1.0.152
[INFO] [stderr]    Compiling serde v1.0.152
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling futures-core v0.3.25
[INFO] [stderr]    Compiling bytes v1.3.0
[INFO] [stderr]    Compiling itoa v1.0.5
[INFO] [stderr]    Compiling tokio v1.24.1
[INFO] [stderr]    Compiling thiserror v1.0.38
[INFO] [stderr]    Compiling slab v0.4.7
[INFO] [stderr]    Compiling futures-task v0.3.25
[INFO] [stderr]    Compiling tracing-core v0.1.30
[INFO] [stderr]    Compiling indexmap v1.9.2
[INFO] [stderr]    Compiling futures-util v0.3.25
[INFO] [stderr]    Compiling ucd-trie v0.1.5
[INFO] [stderr]    Compiling openssl v0.10.45
[INFO] [stderr]    Compiling http v0.2.8
[INFO] [stderr]    Compiling futures-channel v0.3.25
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]    Compiling futures-io v0.3.25
[INFO] [stderr]    Compiling futures-sink v0.3.25
[INFO] [stderr]    Compiling openssl-probe v0.1.5
[INFO] [stderr]    Compiling percent-encoding v2.2.0
[INFO] [stderr]    Compiling ryu v1.0.12
[INFO] [stderr]    Compiling want v0.3.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.22
[INFO] [stderr]    Compiling dlv-list v0.3.0
[INFO] [stderr]    Compiling async-trait v0.1.61
[INFO] [stderr]    Compiling serde_json v1.0.91
[INFO] [stderr]    Compiling form_urlencoded v1.1.0
[INFO] [stderr]    Compiling portable-atomic v0.3.19
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling tracing v0.1.37
[INFO] [stderr]    Compiling unicode-width v0.1.10
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling either v1.8.0
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling pathdiff v0.2.1
[INFO] [stderr]    Compiling ipnet v2.7.1
[INFO] [stderr]    Compiling getrandom v0.2.8
[INFO] [stderr]    Compiling num_cpus v1.15.0
[INFO] [stderr]    Compiling mio v0.8.5
[INFO] [stderr]    Compiling socket2 v0.4.7
[INFO] [stderr]    Compiling nom v7.1.2
[INFO] [stderr]    Compiling console v0.15.4
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling openssl-sys v0.9.80
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling http-body v0.4.5
[INFO] [stderr]    Compiling idna v0.3.0
[INFO] [stderr]    Compiling ordered-multimap v0.4.3
[INFO] [stderr]    Compiling indicatif v0.17.2
[INFO] [stderr]    Compiling url v2.3.1
[INFO] [stderr]    Compiling rust-ini v0.18.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.38
[INFO] [stderr]    Compiling openssl-macros v0.1.0
[INFO] [stderr]    Compiling pest v2.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.4
[INFO] [stderr]    Compiling h2 v0.3.15
[INFO] [stderr]    Compiling pest_meta v2.5.3
[INFO] [stderr]    Compiling pest_generator v2.5.3
[INFO] [stderr]    Compiling pest_derive v2.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.0
[INFO] [stderr]    Compiling hyper v0.14.23
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling json5 v0.4.1
[INFO] [stderr]    Compiling ron v0.7.1
[INFO] [stderr]    Compiling toml v0.5.10
[INFO] [stderr]    Compiling config v0.13.3
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.13
[INFO] [stderr]    Compiling imbrut v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0271]: expected `Box<dyn Iterator<Item = C>>` to be an iterator that yields `Box<dyn Any>`, but it yields `C`
[INFO] [stdout]   --> src/lib.rs:52:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |     impl<P, C> Proto for DynProto<P, C> 
[INFO] [stdout]    |             - found this type parameter
[INFO] [stdout] ...
[INFO] [stdout] 52 |             Box::new(self.proto.get_credentials())
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<dyn Any>`, found type parameter `C`
[INFO] [stdout]    |
[INFO] [stdout]    = note:      expected struct `Box<(dyn Any + 'static)>`
[INFO] [stdout]            found type parameter `C`
[INFO] [stdout]    = note: required for the cast from `Box<Box<dyn Iterator<Item = C>>>` to `Box<(dyn Iterator<Item = Box<(dyn Any + 'static)>> + 'static)>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Box<dyn Iterator<Item = std::string::String>>: Clone` is not satisfied
[INFO] [stdout]     --> src/lib.rs:201:40
[INFO] [stdout]      |
[INFO] [stdout]  201 |                     .cartesian_product(passwords)
[INFO] [stdout]      |                      ----------------- ^^^^^^^^^ the trait `Clone` is not implemented for `Box<dyn Iterator<Item = std::string::String>>`
[INFO] [stdout]      |                      |
[INFO] [stdout]      |                      required by a bound introduced by this call
[INFO] [stdout]      |
[INFO] [stdout]      = note: required for `Box<dyn Iterator<Item = std::string::String>>` to implement `Clone`
[INFO] [stdout] note: required by a bound in `cartesian_product`
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.10.5/src/lib.rs:1082:28
[INFO] [stdout]      |
[INFO] [stdout] 1078 |     fn cartesian_product<J>(self, other: J) -> Product<Self, J::IntoIter>
[INFO] [stdout]      |        ----------------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 1082 |               J::IntoIter: Clone
[INFO] [stdout]      |                            ^^^^^ required by this bound in `Itertools::cartesian_product`
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]      |
[INFO] [stdout]  201 |                     .cartesian_product(&passwords)
[INFO] [stdout]      |                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: the method `map` exists for struct `Product<Box<dyn Iterator<Item = String>>, Box<...>>`, but its trait bounds were not satisfied
[INFO] [stdout]    --> src/lib.rs:202:22
[INFO] [stdout]     |
[INFO] [stdout] 200 | /                 usernames
[INFO] [stdout] 201 | |                     .cartesian_product(passwords)
[INFO] [stdout] 202 | |                     .map(|(username, password)| Self::Creds {username, password})
[INFO] [stdout]     | |                     -^^^ method cannot be called due to unsatisfied trait bounds
[INFO] [stdout]     | |_____________________|
[INFO] [stdout]     |
[INFO] [stdout]     |
[INFO] [stdout]    ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/itertools-0.10.5/src/adaptors/mod.rs:284:1
[INFO] [stdout]     |
[INFO] [stdout] 284 |   pub struct Product<I, J>
[INFO] [stdout]     |   ------------------------ doesn't satisfy `_: Iterator`
[INFO] [stdout]     |
[INFO] [stdout]     = note: the following trait bounds were not satisfied:
[INFO] [stdout]             `Box<dyn Iterator<Item = std::string::String>>: Clone`
[INFO] [stdout]             which is required by `itertools::Product<Box<dyn Iterator<Item = std::string::String>>, Box<dyn Iterator<Item = std::string::String>>>: Iterator`
[INFO] [stdout]             `itertools::Product<Box<dyn Iterator<Item = std::string::String>>, Box<dyn Iterator<Item = std::string::String>>>: Iterator`
[INFO] [stdout]             which is required by `&mut itertools::Product<Box<dyn Iterator<Item = std::string::String>>, Box<dyn Iterator<Item = std::string::String>>>: Iterator`
[INFO] [stdout]     = note: the full name for the type has been written to '/opt/rustwide/target/debug/deps/imbrut-890820eba827d731.long-type-16041622841849461226.txt'
[INFO] [stdout]     = note: consider using `--verbose` to print the full type name to the console
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/lib.rs:95:13
[INFO] [stdout]     |
[INFO] [stdout]  66 |           pub fn new(app: &Application, target: &HashMap<String, config::Value>) -> Self {
[INFO] [stdout]     |                           - let's call the lifetime of this reference `'1`          ---- return type is HTTPProto<'2>
[INFO] [stdout] ...
[INFO] [stdout]  95 | /             Self { 
[INFO] [stdout]  96 | |                 app,
[INFO] [stdout]  97 | |                 auth_type,
[INFO] [stdout]  98 | |                 success_codes,
[INFO] [stdout] ...   |
[INFO] [stdout] 101 | |                 fail_if_contains,
[INFO] [stdout] 102 | |             }
[INFO] [stdout]     | |_____________^ associated function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let mut request = client.request(method, uri);
[INFO] [stdout]     |                 ----^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0515]: cannot return value referencing temporary value
[INFO] [stdout]    --> src/lib.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 251 |               let iter = allowed_chars
[INFO] [stdout]     |  ________________________-
[INFO] [stdout] 252 | |                 .concat()
[INFO] [stdout]     | |_________________________- temporary value created here
[INFO] [stdout] ...
[INFO] [stdout] 255 |               Self { iter }
[INFO] [stdout]     |               ^^^^^^^^^^^^^ returns a value referencing data owned by the current function
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `.collect()` to allocate the iterator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `*x` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:344:26
[INFO] [stdout]     |
[INFO] [stdout] 344 |                 .map(|x| x.into_table().unwrap())
[INFO] [stdout]     |                          ^ ------------ `*x` moved due to this method call
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          move occurs because `*x` has type `Value`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] note: `Value::into_table` takes ownership of the receiver `self`, which moves `*x`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/config-0.13.3/src/value.rs:644:23
[INFO] [stdout]     |
[INFO] [stdout] 644 |     pub fn into_table(self) -> Result<Map<String, Self>> {
[INFO] [stdout]     |                       ^^^^
[INFO] [stdout] help: you can `clone` the value and consume it, but this might not be your desired behavior
[INFO] [stdout]     |
[INFO] [stdout] 344 |                 .map(|x| <Value as Clone>::clone(&x).into_table().unwrap())
[INFO] [stdout]     |                          +++++++++++++++++++++++++ +
[INFO] [stdout] help: consider cloning the value if the performance cost is acceptable
[INFO] [stdout]     |
[INFO] [stdout] 344 |                 .map(|x| x.clone().into_table().unwrap())
[INFO] [stdout]     |                           ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/lib.rs:392:13
[INFO] [stdout]     |
[INFO] [stdout] 389 |           pub fn new(version: &str, workload: usize) -> Self {
[INFO] [stdout]     |                               -                         ---- return type is UI<'2>
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               let's call the lifetime of this reference `'1`
[INFO] [stdout] ...
[INFO] [stdout] 392 | /             Self { 
[INFO] [stdout] 393 | |                 version,
[INFO] [stdout] 394 | |                 progress,
[INFO] [stdout] 395 | |             }
[INFO] [stdout]     | |_____________^ associated function was supposed to return data with lifetime `'2` but it is returning data with lifetime `'1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of moved value: `proto`
[INFO] [stdout]    --> src/lib.rs:479:39
[INFO] [stdout]     |
[INFO] [stdout] 476 |         pub fn new<'a>(proto: Box<dyn Proto<Creds = Box<dyn Any>>>) -> Self {
[INFO] [stdout]     |                        ----- move occurs because `proto` has type `Box<dyn Proto<Creds = Box<dyn Any>>>`, which does not implement the `Copy` trait
[INFO] [stdout] 477 |             Self {
[INFO] [stdout] 478 |                 proto,
[INFO] [stdout]     |                 ----- value moved here
[INFO] [stdout] 479 |                 credentials: Box::new(proto.get_credentials().enumerate()),
[INFO] [stdout]     |                                       ^^^^^ value borrowed here after move
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]    --> src/lib.rs:503:29
[INFO] [stdout]     |
[INFO] [stdout] 503 |                 if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                             ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]    --> src/lib.rs:507:33
[INFO] [stdout]     |
[INFO] [stdout] 507 |                     if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.strategy.credentials` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:502:31
[INFO] [stdout]     |
[INFO] [stdout] 502 |             for (i, creds) in self.strategy.credentials {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self.strategy.credentials` moved due to this implicit call to `.into_iter()`
[INFO] [stdout]     |                               move occurs because `self.strategy.credentials` has type `Box<dyn Iterator<Item = (usize, Box<dyn Any>)>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `self.strategy.credentials`
[INFO] [stdout]    --> /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/iter/traits/collect.rs:310:18
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.strategy.ui` as enum variant `Some` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:503:35
[INFO] [stdout]     |
[INFO] [stdout] 503 |                 if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                             --    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             data moved here
[INFO] [stdout]     |                             move occurs because `ui` has type `Box<dyn UIApplication>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 503 |                 if let Some(ui) = &self.strategy.ui {
[INFO] [stdout]     |                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.strategy.ui` as enum variant `Some` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:507:39
[INFO] [stdout]     |
[INFO] [stdout] 507 |                     if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                                 --    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 data moved here
[INFO] [stdout]     |                                 move occurs because `ui` has type `Box<dyn UIApplication>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 507 |                     if let Some(ui) = &self.strategy.ui {
[INFO] [stdout]     |                                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]    --> src/lib.rs:524:29
[INFO] [stdout]     |
[INFO] [stdout] 524 |                 if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                             ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ui`
[INFO] [stdout]    --> src/lib.rs:528:33
[INFO] [stdout]     |
[INFO] [stdout] 528 |                     if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ui`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.strategy.credentials` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:523:31
[INFO] [stdout]     |
[INFO] [stdout] 523 |             for (_, creds) in self.strategy.credentials {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               `self.strategy.credentials` moved due to this implicit call to `.into_iter()`
[INFO] [stdout]     |                               move occurs because `self.strategy.credentials` has type `Box<dyn Iterator<Item = (usize, Box<dyn Any>)>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] note: `into_iter` takes ownership of the receiver `self`, which moves `self.strategy.credentials`
[INFO] [stdout]    --> /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/iter/traits/collect.rs:310:18
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.strategy.ui` as enum variant `Some` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:524:35
[INFO] [stdout]     |
[INFO] [stdout] 524 |                 if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                             --    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             data moved here
[INFO] [stdout]     |                             move occurs because `ui` has type `Box<dyn UIApplication>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 524 |                 if let Some(ui) = &self.strategy.ui {
[INFO] [stdout]     |                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.strategy.ui` as enum variant `Some` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:528:39
[INFO] [stdout]     |
[INFO] [stdout] 528 |                     if let Some(ui) = self.strategy.ui {
[INFO] [stdout]     |                                 --    ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 data moved here
[INFO] [stdout]     |                                 move occurs because `ui` has type `Box<dyn UIApplication>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 528 |                     if let Some(ui) = &self.strategy.ui {
[INFO] [stdout]     |                                       +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0507]: cannot move out of `self.states` which is behind a shared reference
[INFO] [stdout]    --> src/lib.rs:540:26
[INFO] [stdout]     |
[INFO] [stdout] 540 |             for state in self.states.unwrap().iter().cycle() {
[INFO] [stdout]     |                          ^^^^^^^^^^^ -------- `self.states` moved due to this method call
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          help: consider calling `.as_ref()` or `.as_mut()` to borrow the type's contents
[INFO] [stdout]     |                          move occurs because `self.states` has type `Option<Vec<Box<dyn State>>>`, which does not implement the `Copy` trait
[INFO] [stdout]     |
[INFO] [stdout] note: `Option::<T>::unwrap` takes ownership of the receiver `self`, which moves `self.states`
[INFO] [stdout]    --> /rustc/bb624dcb4c8ab987e10c0808d92d76f3b84dd117/library/core/src/option.rs:1007:25
[INFO] [stdout] help: you could `clone` the value and consume it, if the following trait bounds could be satisfied: `dyn State: Sized` and `dyn State: Clone`
[INFO] [stdout]     |
[INFO] [stdout] 540 |             for state in <Option<Vec<Box<dyn State>>> as Clone>::clone(&self.states).unwrap().iter().cycle() {
[INFO] [stdout]     |                          +++++++++++++++++++++++++++++++++++++++++++++++           +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.ui`, which is behind a `&` reference
[INFO] [stdout]    --> src/lib.rs:548:13
[INFO] [stdout]     |
[INFO] [stdout] 548 |             self.ui = Some(ui);
[INFO] [stdout]     |             ^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be written
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]     |
[INFO] [stdout] 547 |         pub fn set_ui(&mut self, ui: Box<dyn UIApplication>) -> &Self {
[INFO] [stdout]     |                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `states`
[INFO] [stdout]    --> src/lib.rs:555:21
[INFO] [stdout]     |
[INFO] [stdout] 555 |                 let states: Vec<Box<dyn State>> = raw_strategy.iter()
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_states`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: lifetime may not live long enough
[INFO] [stdout]    --> src/lib.rs:553:52
[INFO] [stdout]     |
[INFO] [stdout] 552 |         pub fn set_strategy(&self, raw_strategy: &Vec<(String, u64)>) -> &Self {
[INFO] [stdout]     |                             - let's call the lifetime of this reference `'1`
[INFO] [stdout] 553 |             let states: Vec<Box<dyn State>> = vec![Box::new(DefaultState{strategy: self})];
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ coercion requires that `'1` must outlive `'static`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0594]: cannot assign to `self.states`, which is behind a `&` reference
[INFO] [stdout]    --> src/lib.rs:571:13
[INFO] [stdout]     |
[INFO] [stdout] 571 |             self.states = Some(states);
[INFO] [stdout]     |             ^^^^^^^^^^^ `self` is a `&` reference, so the data it refers to cannot be written
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing this to be a mutable reference
[INFO] [stdout]     |
[INFO] [stdout] 552 |         pub fn set_strategy(&mut self, raw_strategy: &Vec<(String, u64)>) -> &Self {
[INFO] [stdout]     |                              +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/lib.rs:649:28
[INFO] [stdout]     |
[INFO] [stdout] 649 |             let strategy = Strategy::new(proto)
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^ creates a temporary value which is freed while still in use
[INFO] [stdout] 650 |                 .set_strategy(&self.settings.strategy)
[INFO] [stdout] 651 |                 .set_ui(ui);
[INFO] [stdout]     |                            - temporary value is freed at the end of this statement
[INFO] [stdout] ...
[INFO] [stdout] 654 |             strategy.run();
[INFO] [stdout]     |             -------- borrow later used here
[INFO] [stdout]     |
[INFO] [stdout] help: consider using a `let` binding to create a longer lived value
[INFO] [stdout]     |
[INFO] [stdout] 649 ~             let binding = Strategy::new(proto);
[INFO] [stdout] 650 ~             let strategy = binding
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: borrow of moved value: `ui`
[INFO] [stdout]    --> src/lib.rs:653:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |             let ui = Box::new(UI::new(&self.version, proto.get_workload()));
[INFO] [stdout]     |                 -- move occurs because `ui` has type `Box<UI<'_>>`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 651 |                 .set_ui(ui);
[INFO] [stdout]     |                         -- value moved here
[INFO] [stdout] 652 |
[INFO] [stdout] 653 |             ui.run();
[INFO] [stdout]     |             ^^ value borrowed here after move
[INFO] [stdout]     |
[INFO] [stdout] note: consider changing this parameter type in method `set_ui` to borrow instead if owning the value isn't necessary
[INFO] [stdout]    --> src/lib.rs:547:34
[INFO] [stdout]     |
[INFO] [stdout] 547 |         pub fn set_ui(&self, ui: Box<dyn UIApplication>) -> &Self {
[INFO] [stdout]     |                ------            ^^^^^^^^^^^^^^^^^^^^^^ this parameter takes ownership of the value
[INFO] [stdout]     |                |
[INFO] [stdout]     |                in this method
[INFO] [stdout] note: if `UI<'_>` implemented `Clone`, you could clone the value
[INFO] [stdout]    --> src/lib.rs:383:5
[INFO] [stdout]     |
[INFO] [stdout] 383 |     pub struct UI<'a> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 651 |                 .set_ui(ui);
[INFO] [stdout]     |                         -- you could clone this value
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0271, E0277, E0382, E0507, E0515, E0594, E0599, E0716.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0271`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `imbrut` (lib) due to 20 previous errors; 6 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "72ff9b0defe04200f6c542e1da947b1552d1b477bf93e3ed70bd6a96c0af1802", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72ff9b0defe04200f6c542e1da947b1552d1b477bf93e3ed70bd6a96c0af1802", kill_on_drop: false }`
[INFO] [stdout] 72ff9b0defe04200f6c542e1da947b1552d1b477bf93e3ed70bd6a96c0af1802
