[INFO] cloning repository https://github.com/skarlman/Codingame-SpringChallenge-2021 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/skarlman/Codingame-SpringChallenge-2021" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskarlman%2FCodingame-SpringChallenge-2021", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskarlman%2FCodingame-SpringChallenge-2021'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 314f6fc5dc7cfe9bfccb2d4dd69af384c9624bb1 [INFO] checking skarlman/Codingame-SpringChallenge-2021 against try#3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f for pr-87248 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskarlman%2FCodingame-SpringChallenge-2021" "/workspace/builds/worker-12/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/skarlman/Codingame-SpringChallenge-2021 on toolchain 3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/skarlman/Codingame-SpringChallenge-2021 [INFO] finished tweaking git repo https://github.com/skarlman/Codingame-SpringChallenge-2021 [INFO] tweaked toml for git repo https://github.com/skarlman/Codingame-SpringChallenge-2021 written to /workspace/builds/worker-12/source/Cargo.toml [INFO] crate git repo https://github.com/skarlman/Codingame-SpringChallenge-2021 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b2e143a6ead0ef6d3687ececeeae0c49d14f787d5e542f2f433a6af55990a635 [INFO] running `Command { std: "docker" "start" "-a" "b2e143a6ead0ef6d3687ececeeae0c49d14f787d5e542f2f433a6af55990a635", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b2e143a6ead0ef6d3687ececeeae0c49d14f787d5e542f2f433a6af55990a635", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b2e143a6ead0ef6d3687ececeeae0c49d14f787d5e542f2f433a6af55990a635", kill_on_drop: false }` [INFO] [stdout] b2e143a6ead0ef6d3687ececeeae0c49d14f787d5e542f2f433a6af55990a635 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+3e59a8c2f14152ccc92a6c079f592dc2dc6fa93f" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dfeb6a122c9dc79c7cd066493f1175898216435a320e86b865869a2b16af5148 [INFO] running `Command { std: "docker" "start" "-a" "dfeb6a122c9dc79c7cd066493f1175898216435a320e86b865869a2b16af5148", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.94 [INFO] [stderr] Compiling getrandom v0.2.2 [INFO] [stderr] Checking rand_core v0.6.2 [INFO] [stderr] Checking rand_chacha v0.3.0 [INFO] [stderr] Checking rand v0.8.3 [INFO] [stderr] Checking rustbot v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::panic::resume_unwind` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::panic::resume_unwind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::arch::x86_64::_mm_sha1rnds4_epu32` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::arch::x86_64::_mm_sha1rnds4_epu32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:422:12 [INFO] [stdout] | [INFO] [stdout] 422 | if (current_sun_balance[player] < 4 || possible_choices.len() == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:516:36 [INFO] [stdout] | [INFO] [stdout] 516 | shadow_cost += (match board.get(&cell_index).unwrap().richness { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 517 | | 2 => nutrients + 2, [INFO] [stdout] 518 | | 3 => nutrients + 4, [INFO] [stdout] 519 | | _ => nutrients [INFO] [stdout] 520 | | }); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 516 | shadow_cost += match board.get(&cell_index).unwrap().richness { [INFO] [stdout] 517 | 2 => nutrients + 2, [INFO] [stdout] 518 | 3 => nutrients + 4, [INFO] [stdout] 519 | _ => nutrients [INFO] [stdout] 520 | }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::panic::resume_unwind` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::panic::resume_unwind; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Duration` [INFO] [stdout] --> src/main.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use std::time::{Duration, Instant}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::arch::x86_64::_mm_sha1rnds4_epu32` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::arch::x86_64::_mm_sha1rnds4_epu32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:422:12 [INFO] [stdout] | [INFO] [stdout] 422 | if (current_sun_balance[player] < 4 || possible_choices.len() == 0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around assigned value [INFO] [stdout] --> src/main.rs:516:36 [INFO] [stdout] | [INFO] [stdout] 516 | shadow_cost += (match board.get(&cell_index).unwrap().richness { [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 517 | | 2 => nutrients + 2, [INFO] [stdout] 518 | | 3 => nutrients + 4, [INFO] [stdout] 519 | | _ => nutrients [INFO] [stdout] 520 | | }); [INFO] [stdout] | |______________________^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 516 | shadow_cost += match board.get(&cell_index).unwrap().richness { [INFO] [stdout] 517 | 2 => nutrients + 2, [INFO] [stdout] 518 | 3 => nutrients + 4, [INFO] [stdout] 519 | _ => nutrients [INFO] [stdout] 520 | }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/main.rs:65:17 [INFO] [stdout] | [INFO] [stdout] 64 | panic!("Wrong action input"); [INFO] [stdout] | ----------------------------- any code following this expression is unreachable [INFO] [stdout] 65 | Action::Wait [INFO] [stdout] | ^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable expression [INFO] [stdout] --> src/main.rs:65:17 [INFO] [stdout] | [INFO] [stdout] 64 | panic!("Wrong action input"); [INFO] [stdout] | ----------------------------- any code following this expression is unreachable [INFO] [stdout] 65 | Action::Wait [INFO] [stdout] | ^^^^^^^^^^^^ unreachable expression [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | for i in 0..number_of_trees as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | for i in 0..number_of_possible_actions as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | for i in 0..number_of_cells as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_0` [INFO] [stdout] --> src/main.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | let neigh_0 = parse_input!(inputs[2], i32); // the index of the neighbouring cell for each direction [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_1` [INFO] [stdout] --> src/main.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | let neigh_1 = parse_input!(inputs[3], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_2` [INFO] [stdout] --> src/main.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | let neigh_2 = parse_input!(inputs[4], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_3` [INFO] [stdout] --> src/main.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | let neigh_3 = parse_input!(inputs[5], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_4` [INFO] [stdout] --> src/main.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let neigh_4 = parse_input!(inputs[6], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_5` [INFO] [stdout] --> src/main.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | let neigh_5 = parse_input!(inputs[7], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `previous_action` [INFO] [stdout] --> src/main.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut previous_action = Action::Null; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `is_new_day` is assigned to, but never used [INFO] [stdout] --> src/main.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | let mut is_new_day = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_is_new_day` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `is_new_day` is never read [INFO] [stdout] --> src/main.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | is_new_day = true; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ak` [INFO] [stdout] --> src/main.rs:332:23 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ak` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a_count` [INFO] [stdout] --> src/main.rs:332:28 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bk` [INFO] [stdout] --> src/main.rs:332:49 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b_count` [INFO] [stdout] --> src/main.rs:332:54 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `i` is assigned to, but never used [INFO] [stdout] --> src/main.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 242 | let mut i = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_i` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/main.rs:497:26 [INFO] [stdout] | [INFO] [stdout] 497 | for (k, t) in trees { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_actions` [INFO] [stdout] --> src/main.rs:338:298 [INFO] [stdout] | [INFO] [stdout] 338 | ...g: &mut ThreadRng, expected_actions: &ActionList) -> ([i32; 2], [i32; 2], i32, Action, GameContext, [[i32; 4]; 2], [bool; 2]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_actions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/main.rs:532:109 [INFO] [stdout] | [INFO] [stdout] 532 | let n:i32 = board[target_id].neighbors_ids.iter().filter(|id| !trees.contains_key(id)).map(|x| 1).sum(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `origin_id` [INFO] [stdout] --> src/main.rs:531:37 [INFO] [stdout] | [INFO] [stdout] 531 | Action::Seed(target_id, origin_id) => { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visited` [INFO] [stdout] --> src/main.rs:588:17 [INFO] [stdout] | [INFO] [stdout] 588 | let mut visited: HashSet = HashSet::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visited` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:639:23 [INFO] [stdout] | [INFO] [stdout] 639 | .filter(|(id, tree)| (tree.is_mine && player == 0 || !tree.is_mine && player == 1) && !tree.is_dormant && tree.size == 3) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:640:20 [INFO] [stdout] | [INFO] [stdout] 640 | .map(|(id, tree)| Action::Complete(tree.cell_index)) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:667:23 [INFO] [stdout] | [INFO] [stdout] 667 | ... .filter(|(id, tree)| (tree.is_mine && player == 0 || !tree.is_mine && player == 1) && !tree.is_dormant && tree.size < 3 && tree_cos... [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:710:27 [INFO] [stdout] | [INFO] [stdout] 710 | .filter(|(id, tree)| (tree.is_mine && player == 0 || !tree.is_mine && player == 1) && tree.size > 0) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:711:24 [INFO] [stdout] | [INFO] [stdout] 711 | .map(|(id, tree)| get_sun_points_from_tree(&tree, &board, &trees, sun_direction)).sum(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | let mut previous_action = Action::Null; [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:222:45 [INFO] [stdout] | [INFO] [stdout] 222 | fn playout_moves(context: &GameContext, mut forest: &mut Forest, board: &Area, expected_actions: &ActionList) -> (String, f64, i32, i... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: cannot borrow `results` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/main.rs:318:17 [INFO] [stdout] | [INFO] [stdout] 317 | let (cur_counts, cur_score) = results.get(&action_str).unwrap(); [INFO] [stdout] | ------- immutable borrow occurs here [INFO] [stdout] 318 | results.insert(action_str, (cur_counts + 1, (score as f64 + cur_score * (*cur_counts as f64)) / (cur_counts + 1) as f64)); [INFO] [stdout] | ^^^^^^^ ---------- immutable borrow later used here [INFO] [stdout] | | [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stdout] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stdout] = note: for more information, see issue #59159 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | for i in 0..number_of_trees as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | for i in 0..number_of_possible_actions as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/main.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | for i in 0..number_of_cells as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_0` [INFO] [stdout] --> src/main.rs:168:13 [INFO] [stdout] | [INFO] [stdout] 168 | let neigh_0 = parse_input!(inputs[2], i32); // the index of the neighbouring cell for each direction [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_1` [INFO] [stdout] --> src/main.rs:169:13 [INFO] [stdout] | [INFO] [stdout] 169 | let neigh_1 = parse_input!(inputs[3], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_2` [INFO] [stdout] --> src/main.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | let neigh_2 = parse_input!(inputs[4], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_3` [INFO] [stdout] --> src/main.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | let neigh_3 = parse_input!(inputs[5], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_4` [INFO] [stdout] --> src/main.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | let neigh_4 = parse_input!(inputs[6], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `neigh_5` [INFO] [stdout] --> src/main.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | let neigh_5 = parse_input!(inputs[7], i32); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_neigh_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `previous_action` [INFO] [stdout] --> src/main.rs:189:13 [INFO] [stdout] | [INFO] [stdout] 189 | let mut previous_action = Action::Null; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_previous_action` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `is_new_day` is assigned to, but never used [INFO] [stdout] --> src/main.rs:192:13 [INFO] [stdout] | [INFO] [stdout] 192 | let mut is_new_day = false; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_is_new_day` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `is_new_day` is never read [INFO] [stdout] --> src/main.rs:200:13 [INFO] [stdout] | [INFO] [stdout] 200 | is_new_day = true; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ak` [INFO] [stdout] --> src/main.rs:332:23 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ak` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a_count` [INFO] [stdout] --> src/main.rs:332:28 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `bk` [INFO] [stdout] --> src/main.rs:332:49 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_bk` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `b_count` [INFO] [stdout] --> src/main.rs:332:54 [INFO] [stdout] | [INFO] [stdout] 332 | .max_by(|(ak, (a_count, a_score)), (bk, (b_count, b_score))| a_score.partial_cmp(&b_score).unwrap()) [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_b_count` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `i` is assigned to, but never used [INFO] [stdout] --> src/main.rs:242:17 [INFO] [stdout] | [INFO] [stdout] 242 | let mut i = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_i` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/main.rs:497:26 [INFO] [stdout] | [INFO] [stdout] 497 | for (k, t) in trees { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `expected_actions` [INFO] [stdout] --> src/main.rs:338:298 [INFO] [stdout] | [INFO] [stdout] 338 | ...g: &mut ThreadRng, expected_actions: &ActionList) -> ([i32; 2], [i32; 2], i32, Action, GameContext, [[i32; 4]; 2], [bool; 2]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expected_actions` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/main.rs:532:109 [INFO] [stdout] | [INFO] [stdout] 532 | let n:i32 = board[target_id].neighbors_ids.iter().filter(|id| !trees.contains_key(id)).map(|x| 1).sum(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `origin_id` [INFO] [stdout] --> src/main.rs:531:37 [INFO] [stdout] | [INFO] [stdout] 531 | Action::Seed(target_id, origin_id) => { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_origin_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `visited` [INFO] [stdout] --> src/main.rs:588:17 [INFO] [stdout] | [INFO] [stdout] 588 | let mut visited: HashSet = HashSet::new(); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_visited` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:639:23 [INFO] [stdout] | [INFO] [stdout] 639 | .filter(|(id, tree)| (tree.is_mine && player == 0 || !tree.is_mine && player == 1) && !tree.is_dormant && tree.size == 3) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:640:20 [INFO] [stdout] | [INFO] [stdout] 640 | .map(|(id, tree)| Action::Complete(tree.cell_index)) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:667:23 [INFO] [stdout] | [INFO] [stdout] 667 | ... .filter(|(id, tree)| (tree.is_mine && player == 0 || !tree.is_mine && player == 1) && !tree.is_dormant && tree.size < 3 && tree_cos... [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:710:27 [INFO] [stdout] | [INFO] [stdout] 710 | .filter(|(id, tree)| (tree.is_mine && player == 0 || !tree.is_mine && player == 1) && tree.size > 0) [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `id` [INFO] [stdout] --> src/main.rs:711:24 [INFO] [stdout] | [INFO] [stdout] 711 | .map(|(id, tree)| get_sun_points_from_tree(&tree, &board, &trees, sun_direction)).sum(); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:588:13 [INFO] [stdout] | [INFO] [stdout] 588 | let mut visited: HashSet = HashSet::new(); [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:649:13 [INFO] [stdout] | [INFO] [stdout] 649 | let mut tree_costs = [0 + my_trees_counts[0], 1 + my_trees_counts[1], 3 + my_trees_counts[2], 7 + my_trees_counts[3]]; [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:189:9 [INFO] [stdout] | [INFO] [stdout] 189 | let mut previous_action = Action::Null; [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: field is never read: `op_is_waiting` [INFO] [stdout] --> src/main.rs:122:5 [INFO] [stdout] | [INFO] [stdout] 122 | op_is_waiting: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `index` [INFO] [stdout] --> src/main.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | index: i32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:222:45 [INFO] [stdout] | [INFO] [stdout] 222 | fn playout_moves(context: &GameContext, mut forest: &mut Forest, board: &Area, expected_actions: &ActionList) -> (String, f64, i32, i... [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: cannot borrow `results` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/main.rs:318:17 [INFO] [stdout] | [INFO] [stdout] 317 | let (cur_counts, cur_score) = results.get(&action_str).unwrap(); [INFO] [stdout] | ------- immutable borrow occurs here [INFO] [stdout] 318 | results.insert(action_str, (cur_counts + 1, (score as f64 + cur_score * (*cur_counts as f64)) / (cur_counts + 1) as f64)); [INFO] [stdout] | ^^^^^^^ ---------- immutable borrow later used here [INFO] [stdout] | | [INFO] [stdout] | mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mutable_borrow_reservation_conflict)]` on by default [INFO] [stdout] = warning: this borrowing pattern was not meant to be accepted, and may become a hard error in the future [INFO] [stdout] = note: for more information, see issue #59159 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 40 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:588:13 [INFO] [stdout] | [INFO] [stdout] 588 | let mut visited: HashSet = HashSet::new(); [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:649:13 [INFO] [stdout] | [INFO] [stdout] 649 | let mut tree_costs = [0 + my_trees_counts[0], 1 + my_trees_counts[1], 3 + my_trees_counts[2], 7 + my_trees_counts[3]]; [INFO] [stdout] | ----^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `op_is_waiting` [INFO] [stdout] --> src/main.rs:122:5 [INFO] [stdout] | [INFO] [stdout] 122 | op_is_waiting: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `index` [INFO] [stdout] --> src/main.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | index: i32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 40 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.18s [INFO] running `Command { std: "docker" "inspect" "dfeb6a122c9dc79c7cd066493f1175898216435a320e86b865869a2b16af5148", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dfeb6a122c9dc79c7cd066493f1175898216435a320e86b865869a2b16af5148", kill_on_drop: false }` [INFO] [stdout] dfeb6a122c9dc79c7cd066493f1175898216435a320e86b865869a2b16af5148