[INFO] cloning repository https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fryyanmapes%2FMinecraft-Recipe-Randomizer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fryyanmapes%2FMinecraft-Recipe-Randomizer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ed090bb135f3aa550e74b84a4c56f28e0d6188e1
[INFO] testing ryyanmapes/Minecraft-Recipe-Randomizer against master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fryyanmapes%2FMinecraft-Recipe-Randomizer" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer
[INFO] finished tweaking git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer
[INFO] tweaked toml for git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer 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" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2c9bbfad71fb346352f72c4a366edc7bbc007072925c27d9b937494cceb7078c
[INFO] running `Command { std: "docker" "start" "-a" "2c9bbfad71fb346352f72c4a366edc7bbc007072925c27d9b937494cceb7078c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c9bbfad71fb346352f72c4a366edc7bbc007072925c27d9b937494cceb7078c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c9bbfad71fb346352f72c4a366edc7bbc007072925c27d9b937494cceb7078c", kill_on_drop: false }`
[INFO] [stdout] 2c9bbfad71fb346352f72c4a366edc7bbc007072925c27d9b937494cceb7078c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 65057c47f3539d2197023c4e3773517f475f87bd4102f16d20920bbe305abe84
[INFO] running `Command { std: "docker" "start" "-a" "65057c47f3539d2197023c4e3773517f475f87bd4102f16d20920bbe305abe84", kill_on_drop: false }`
[INFO] [stderr]    Compiling rand_core v0.4.0
[INFO] [stderr]    Compiling autocfg v0.1.4
[INFO] [stderr]    Compiling libc v0.2.55
[INFO] [stderr]    Compiling ryu v0.2.8
[INFO] [stderr]    Compiling serde v1.0.91
[INFO] [stderr]    Compiling itoa v0.4.4
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling serde_json v1.0.39
[INFO] [stderr]    Compiling minecraft_randomizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]  --> src/main.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::{Result, Value};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main.rs:77:6
[INFO] [stdout]    |
[INFO] [stdout] 77 |         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stdout]    |            ^                                                                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stdout] 77 +         if (iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:128:6
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (remaining_products.len() == 0) {
[INFO] [stdout]     |            ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (remaining_products.len() == 0) {
[INFO] [stdout] 128 +         if remaining_products.len() == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `random_num_3` is never read
[INFO] [stdout]   --> src/main.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut random_num_3: usize = 0;
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:166:20
[INFO] [stdout]     |
[INFO] [stdout] 166 |                     Value::String(s) => {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let mut all_recipes = get_all_products(&all_recipe_files);
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:57:6
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut all_products = get_products_from_recipes(&all_recipes);
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut reader = BufReader::new(&f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let mut result = obj.get_mut("result")
[INFO] [stdout]     |                     ----^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:161:11
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         let mut item = result_obj.get_mut("item")
[INFO] [stdout]     |                             ----^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:215:6
[INFO] [stdout]     |
[INFO] [stdout] 215 |     let mut filename = file.file_name().unwrap().to_str().unwrap().to_string();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:392:7
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut reader = BufReader::new(f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:601:7
[INFO] [stdout]     |
[INFO] [stdout] 601 |         let mut reader = BufReader::new(f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:661:6
[INFO] [stdout]     |
[INFO] [stdout] 661 |     let mut reader = BufReader::new(f);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_dead_end_products` is never used
[INFO] [stdout]    --> src/main.rs:237:4
[INFO] [stdout]     |
[INFO] [stdout] 237 | fn get_dead_end_products(recipes: &Vec<Recipe>, products: &Vec<String>, tags: &HashMap<String, LogicDependency>) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:179:3
[INFO] [stdout]     |
[INFO] [stdout] 179 |         f.set_len(0);
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let _ = f.set_len(0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:182:3
[INFO] [stdout]     |
[INFO] [stdout] 182 |         writer.seek(SeekFrom::Start(0));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let _ = writer.seek(SeekFrom::Start(0));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:183:3
[INFO] [stdout]     |
[INFO] [stdout] 183 |         writer.write(new_json.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let _ = writer.write(new_json.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/main.rs:647:11
[INFO] [stdout]     |
[INFO] [stdout] 647 |     for a in fs::read_dir(recipes_dir) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 647 |     while let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stdout]     |     ~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 647 |     if let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stdout]     |     ~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.93s
[INFO] running `Command { std: "docker" "inspect" "65057c47f3539d2197023c4e3773517f475f87bd4102f16d20920bbe305abe84", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65057c47f3539d2197023c4e3773517f475f87bd4102f16d20920bbe305abe84", kill_on_drop: false }`
[INFO] [stdout] 65057c47f3539d2197023c4e3773517f475f87bd4102f16d20920bbe305abe84
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6cf34bd8bdbc06aab74f465bee5b72facdfebd83cc5c95a7f33b453cd0d26300
[INFO] running `Command { std: "docker" "start" "-a" "6cf34bd8bdbc06aab74f465bee5b72facdfebd83cc5c95a7f33b453cd0d26300", kill_on_drop: false }`
[INFO] [stderr]    Compiling minecraft_randomizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]  --> src/main.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::{Result, Value};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main.rs:77:6
[INFO] [stdout]    |
[INFO] [stdout] 77 |         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stdout]    |            ^                                                                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stdout] 77 +         if (iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:128:6
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (remaining_products.len() == 0) {
[INFO] [stdout]     |            ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (remaining_products.len() == 0) {
[INFO] [stdout] 128 +         if remaining_products.len() == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `random_num_3` is never read
[INFO] [stdout]   --> src/main.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut random_num_3: usize = 0;
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:166:20
[INFO] [stdout]     |
[INFO] [stdout] 166 |                     Value::String(s) => {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let mut all_recipes = get_all_products(&all_recipe_files);
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:57:6
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut all_products = get_products_from_recipes(&all_recipes);
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut reader = BufReader::new(&f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let mut result = obj.get_mut("result")
[INFO] [stdout]     |                     ----^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:161:11
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         let mut item = result_obj.get_mut("item")
[INFO] [stdout]     |                             ----^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:215:6
[INFO] [stdout]     |
[INFO] [stdout] 215 |     let mut filename = file.file_name().unwrap().to_str().unwrap().to_string();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:392:7
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut reader = BufReader::new(f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:601:7
[INFO] [stdout]     |
[INFO] [stdout] 601 |         let mut reader = BufReader::new(f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:661:6
[INFO] [stdout]     |
[INFO] [stdout] 661 |     let mut reader = BufReader::new(f);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_dead_end_products` is never used
[INFO] [stdout]    --> src/main.rs:237:4
[INFO] [stdout]     |
[INFO] [stdout] 237 | fn get_dead_end_products(recipes: &Vec<Recipe>, products: &Vec<String>, tags: &HashMap<String, LogicDependency>) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:179:3
[INFO] [stdout]     |
[INFO] [stdout] 179 |         f.set_len(0);
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let _ = f.set_len(0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:182:3
[INFO] [stdout]     |
[INFO] [stdout] 182 |         writer.seek(SeekFrom::Start(0));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let _ = writer.seek(SeekFrom::Start(0));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:183:3
[INFO] [stdout]     |
[INFO] [stdout] 183 |         writer.write(new_json.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let _ = writer.write(new_json.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/main.rs:647:11
[INFO] [stdout]     |
[INFO] [stdout] 647 |     for a in fs::read_dir(recipes_dir) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 647 |     while let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stdout]     |     ~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 647 |     if let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stdout]     |     ~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s
[INFO] running `Command { std: "docker" "inspect" "6cf34bd8bdbc06aab74f465bee5b72facdfebd83cc5c95a7f33b453cd0d26300", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6cf34bd8bdbc06aab74f465bee5b72facdfebd83cc5c95a7f33b453cd0d26300", kill_on_drop: false }`
[INFO] [stdout] 6cf34bd8bdbc06aab74f465bee5b72facdfebd83cc5c95a7f33b453cd0d26300
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 30898f0bccd5838df4ae73110b1de4d6533f87a708547b9a3861cf128a39a54a
[INFO] running `Command { std: "docker" "start" "-a" "30898f0bccd5838df4ae73110b1de4d6533f87a708547b9a3861cf128a39a54a", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Result`
[INFO] [stderr]  --> src/main.rs:7:18
[INFO] [stderr]   |
[INFO] [stderr] 7 | use serde_json::{Result, Value};
[INFO] [stderr]   |                  ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]   --> src/main.rs:77:6
[INFO] [stderr]    |
[INFO] [stderr] 77 |         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stderr]    |            ^                                                                            ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 77 -         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stderr] 77 +         if (iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0 {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around `if` condition
[INFO] [stderr]    --> src/main.rs:128:6
[INFO] [stderr]     |
[INFO] [stderr] 128 |         if (remaining_products.len() == 0) {
[INFO] [stderr]     |            ^                             ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 128 -         if (remaining_products.len() == 0) {
[INFO] [stderr] 128 +         if remaining_products.len() == 0 {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `random_num_3` is never read
[INFO] [stderr]   --> src/main.rs:78:12
[INFO] [stderr]    |
[INFO] [stderr] 78 |             let mut random_num_3: usize = 0;
[INFO] [stderr]    |                     ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `s`
[INFO] [stderr]    --> src/main.rs:166:20
[INFO] [stderr]     |
[INFO] [stderr] 166 |                     Value::String(s) => {
[INFO] [stderr]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:55:6
[INFO] [stderr]    |
[INFO] [stderr] 55 |     let mut all_recipes = get_all_products(&all_recipe_files);
[INFO] [stderr]    |         ----^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:57:6
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let mut all_products = get_products_from_recipes(&all_recipes);
[INFO] [stderr]    |         ----^^^^^^^^^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:145:7
[INFO] [stderr]     |
[INFO] [stderr] 145 |         let mut reader = BufReader::new(&f);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:155:9
[INFO] [stderr]     |
[INFO] [stderr] 155 |                 let mut result = obj.get_mut("result")
[INFO] [stderr]     |                     ----^^^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:161:11
[INFO] [stderr]     |
[INFO] [stderr] 161 |                         let mut item = result_obj.get_mut("item")
[INFO] [stderr]     |                             ----^^^^
[INFO] [stderr]     |                             |
[INFO] [stderr]     |                             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:215:6
[INFO] [stderr]     |
[INFO] [stderr] 215 |     let mut filename = file.file_name().unwrap().to_str().unwrap().to_string();
[INFO] [stderr]     |         ----^^^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:392:7
[INFO] [stderr]     |
[INFO] [stderr] 392 |         let mut reader = BufReader::new(f);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:601:7
[INFO] [stderr]     |
[INFO] [stderr] 601 |         let mut reader = BufReader::new(f);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/main.rs:661:6
[INFO] [stderr]     |
[INFO] [stderr] 661 |     let mut reader = BufReader::new(f);
[INFO] [stderr]     |         ----^^^^^^
[INFO] [stderr]     |         |
[INFO] [stderr]     |         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_dead_end_products` is never used
[INFO] [stderr]    --> src/main.rs:237:4
[INFO] [stderr]     |
[INFO] [stderr] 237 | fn get_dead_end_products(recipes: &Vec<Recipe>, products: &Vec<String>, tags: &HashMap<String, LogicDependency>) -> Vec<String> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:179:3
[INFO] [stderr]     |
[INFO] [stderr] 179 |         f.set_len(0);
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 179 |         let _ = f.set_len(0);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:182:3
[INFO] [stderr]     |
[INFO] [stderr] 182 |         writer.seek(SeekFrom::Start(0));
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 182 |         let _ = writer.seek(SeekFrom::Start(0));
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/main.rs:183:3
[INFO] [stderr]     |
[INFO] [stderr] 183 |         writer.write(new_json.as_bytes());
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 183 |         let _ = writer.write(new_json.as_bytes());
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stderr]    --> src/main.rs:647:11
[INFO] [stderr]     |
[INFO] [stderr] 647 |     for a in fs::read_dir(recipes_dir) {
[INFO] [stderr]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stderr] help: to check pattern in a loop use `while let`
[INFO] [stderr]     |
[INFO] [stderr] 647 |     while let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stderr]     |     ~~~~~~~~~~~~~ ~~~
[INFO] [stderr] help: consider using `if let` to clear intent
[INFO] [stderr]     |
[INFO] [stderr] 647 |     if let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stderr]     |     ~~~~~~~~~~ ~~~
[INFO] [stderr] 
[INFO] [stderr] warning: `minecraft_randomizer` (bin "minecraft_randomizer" test) generated 19 warnings (run `cargo fix --bin "minecraft_randomizer" --tests` to apply 12 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/minecraft_randomizer-334b224eb25066f5)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "30898f0bccd5838df4ae73110b1de4d6533f87a708547b9a3861cf128a39a54a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "30898f0bccd5838df4ae73110b1de4d6533f87a708547b9a3861cf128a39a54a", kill_on_drop: false }`
[INFO] [stdout] 30898f0bccd5838df4ae73110b1de4d6533f87a708547b9a3861cf128a39a54a
[INFO] testing ryyanmapes/Minecraft-Recipe-Randomizer against try#b642703cf9526da1e72c0b6755753b939a9c6b6d for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fryyanmapes%2FMinecraft-Recipe-Randomizer" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer on toolchain b642703cf9526da1e72c0b6755753b939a9c6b6d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer
[INFO] finished tweaking git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer
[INFO] tweaked toml for git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/ryyanmapes/Minecraft-Recipe-Randomizer 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" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a62b8dba63d3274946ba8264fe665f3a948aa0d78b852a415a9c784b1c45ee6d
[INFO] running `Command { std: "docker" "start" "-a" "a62b8dba63d3274946ba8264fe665f3a948aa0d78b852a415a9c784b1c45ee6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a62b8dba63d3274946ba8264fe665f3a948aa0d78b852a415a9c784b1c45ee6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a62b8dba63d3274946ba8264fe665f3a948aa0d78b852a415a9c784b1c45ee6d", kill_on_drop: false }`
[INFO] [stdout] a62b8dba63d3274946ba8264fe665f3a948aa0d78b852a415a9c784b1c45ee6d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b63296935942b91b6f8bbbbd8be473acf0bed2b53ecd08f797ca7613559d8786
[INFO] running `Command { std: "docker" "start" "-a" "b63296935942b91b6f8bbbbd8be473acf0bed2b53ecd08f797ca7613559d8786", kill_on_drop: false }`
[INFO] [stderr]    Compiling rand_core v0.4.0
[INFO] [stderr]    Compiling autocfg v0.1.4
[INFO] [stderr]    Compiling libc v0.2.55
[INFO] [stderr]    Compiling ryu v0.2.8
[INFO] [stderr]    Compiling serde v1.0.91
[INFO] [stderr]    Compiling itoa v0.4.4
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling serde_json v1.0.39
[INFO] [stderr]    Compiling minecraft_randomizer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Result`
[INFO] [stdout]  --> src/main.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use serde_json::{Result, Value};
[INFO] [stdout]   |                  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/main.rs:77:6
[INFO] [stdout]    |
[INFO] [stdout] 77 |         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stdout]    |            ^                                                                            ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -         if ((iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0) {
[INFO] [stdout] 77 +         if (iterations >= 5 && rng.gen_range(0,2) == 1) || craftable_recipes.len() == 0 {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/main.rs:128:6
[INFO] [stdout]     |
[INFO] [stdout] 128 |         if (remaining_products.len() == 0) {
[INFO] [stdout]     |            ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 128 -         if (remaining_products.len() == 0) {
[INFO] [stdout] 128 +         if remaining_products.len() == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `random_num_3` is never read
[INFO] [stdout]   --> src/main.rs:78:12
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut random_num_3: usize = 0;
[INFO] [stdout]    |                     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/main.rs:166:20
[INFO] [stdout]     |
[INFO] [stdout] 166 |                     Value::String(s) => {
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let mut all_recipes = get_all_products(&all_recipe_files);
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:57:6
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let mut all_products = get_products_from_recipes(&all_recipes);
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:145:7
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let mut reader = BufReader::new(&f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let mut result = obj.get_mut("result")
[INFO] [stdout]     |                     ----^^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:161:11
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         let mut item = result_obj.get_mut("item")
[INFO] [stdout]     |                             ----^^^^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:215:6
[INFO] [stdout]     |
[INFO] [stdout] 215 |     let mut filename = file.file_name().unwrap().to_str().unwrap().to_string();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:392:7
[INFO] [stdout]     |
[INFO] [stdout] 392 |         let mut reader = BufReader::new(f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:601:7
[INFO] [stdout]     |
[INFO] [stdout] 601 |         let mut reader = BufReader::new(f);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:661:6
[INFO] [stdout]     |
[INFO] [stdout] 661 |     let mut reader = BufReader::new(f);
[INFO] [stdout]     |         ----^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_dead_end_products` is never used
[INFO] [stdout]    --> src/main.rs:237:4
[INFO] [stdout]     |
[INFO] [stdout] 237 | fn get_dead_end_products(recipes: &Vec<Recipe>, products: &Vec<String>, tags: &HashMap<String, LogicDependency>) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:179:3
[INFO] [stdout]     |
[INFO] [stdout] 179 |         f.set_len(0);
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let _ = f.set_len(0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:182:3
[INFO] [stdout]     |
[INFO] [stdout] 182 |         writer.seek(SeekFrom::Start(0));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let _ = writer.seek(SeekFrom::Start(0));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:183:3
[INFO] [stdout]     |
[INFO] [stdout] 183 |         writer.write(new_json.as_bytes());
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let _ = writer.write(new_json.as_bytes());
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over a `Result`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/main.rs:647:11
[INFO] [stdout]     |
[INFO] [stdout] 647 |     for a in fs::read_dir(recipes_dir) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 647 |     while let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stdout]     |     ~~~~~~~~~~~~~ ~~~
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 647 |     if let Ok(a) = fs::read_dir(recipes_dir) {
[INFO] [stdout]     |     ~~~~~~~~~~ ~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.04s
[INFO] running `Command { std: "docker" "inspect" "b63296935942b91b6f8bbbbd8be473acf0bed2b53ecd08f797ca7613559d8786", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b63296935942b91b6f8bbbbd8be473acf0bed2b53ecd08f797ca7613559d8786", kill_on_drop: false }`
[INFO] [stdout] b63296935942b91b6f8bbbbd8be473acf0bed2b53ecd08f797ca7613559d8786
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+b642703cf9526da1e72c0b6755753b939a9c6b6d" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] db27e03a9dcfae95388bac88a881ceee4abe7f141f85cd6b9ba8e82c0da45aac
[INFO] running `Command { std: "docker" "start" "-a" "db27e03a9dcfae95388bac88a881ceee4abe7f141f85cd6b9ba8e82c0da45aac", kill_on_drop: false }`
[INFO] [stderr] time="2024-05-26T13:16:30Z" level=error msg="error waiting for container: "
[INFO] [stderr] Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error mounting "/var/lib/crater-agent-workspace/cargo-home" to rootfs at "/opt/rustwide/cargo-home": mkdir /var/lib/docker/overlay2/cb014b008250c022b5781f30ee4574ccead45c4f1b647c6458eb5f6b0caebe60/merged/opt/rustwide/cargo-home: no space left on device: unknown
[INFO] running `Command { std: "docker" "inspect" "db27e03a9dcfae95388bac88a881ceee4abe7f141f85cd6b9ba8e82c0da45aac", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db27e03a9dcfae95388bac88a881ceee4abe7f141f85cd6b9ba8e82c0da45aac", kill_on_drop: false }`
[INFO] [stdout] db27e03a9dcfae95388bac88a881ceee4abe7f141f85cd6b9ba8e82c0da45aac
