[INFO] cloning repository https://github.com/dfb159/scythe_bot [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dfb159/scythe_bot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdfb159%2Fscythe_bot", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdfb159%2Fscythe_bot'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bb8914590aee5985810a03ebf2cfdf46c7005017 [INFO] checking dfb159/scythe_bot against master#9d28fe39763974a96d61232e96ac856735e4cdd6 for pr-139624 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdfb159%2Fscythe_bot" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/dfb159/scythe_bot on toolchain 9d28fe39763974a96d61232e96ac856735e4cdd6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9d28fe39763974a96d61232e96ac856735e4cdd6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/dfb159/scythe_bot [INFO] finished tweaking git repo https://github.com/dfb159/scythe_bot [INFO] tweaked toml for git repo https://github.com/dfb159/scythe_bot written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/dfb159/scythe_bot 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" "+9d28fe39763974a96d61232e96ac856735e4cdd6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+9d28fe39763974a96d61232e96ac856735e4cdd6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 457825559f2464ccd1b0e0774f05b6d4b1ead92d4c31550b7c7ba4024a9336a5 [INFO] running `Command { std: "docker" "start" "-a" "457825559f2464ccd1b0e0774f05b6d4b1ead92d4c31550b7c7ba4024a9336a5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "457825559f2464ccd1b0e0774f05b6d4b1ead92d4c31550b7c7ba4024a9336a5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "457825559f2464ccd1b0e0774f05b6d4b1ead92d4c31550b7c7ba4024a9336a5", kill_on_drop: false }` [INFO] [stdout] 457825559f2464ccd1b0e0774f05b6d4b1ead92d4c31550b7c7ba4024a9336a5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+9d28fe39763974a96d61232e96ac856735e4cdd6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] aeeb5cbe1a86027824bc648592484fd1c23b326032e3329f3b3d53b46f63c5e2 [INFO] running `Command { std: "docker" "start" "-a" "aeeb5cbe1a86027824bc648592484fd1c23b326032e3329f3b3d53b46f63c5e2", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking rawpointer v0.2.1 [INFO] [stderr] Checking either v1.13.0 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling matrixmultiply v0.3.8 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking num-complex v0.4.6 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking ndarray v0.15.6 [INFO] [stderr] Checking scythe_bot v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `random::RandomAgent` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | random::RandomAgent, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `random::RandomAgent` [INFO] [stdout] --> src/main.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | random::RandomAgent, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PredictiveQAgent` is never constructed [INFO] [stdout] --> src/agent/fcnn.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) struct PredictiveQAgent<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `predict`, `train`, and `max_turn` are never used [INFO] [stdout] --> src/agent/fcnn.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 16 | impl PredictiveQAgent<'_> { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 17 | pub(crate) fn new(hidden: usize, layout: Layout) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub(crate) fn predict(&self, state: &PlayerState) -> f64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub(crate) fn train(&mut self, state: &PlayerState, gamma: f64, learning_rate: f64) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn max_turn(&mut self, state: &PlayerState) -> (TurnMask, f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Layout` is never used [INFO] [stdout] --> src/agent/fcnn.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | pub(crate) enum Layout { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VECTOR_SIZE` is never used [INFO] [stdout] --> src/agent/fcnn.rs:95:7 [INFO] [stdout] | [INFO] [stdout] 95 | const VECTOR_SIZE: usize = 65; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transform_state` is never used [INFO] [stdout] --> src/agent/fcnn.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn transform_state(state: &PlayerState) -> Array1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RandomAgent` is never constructed [INFO] [stdout] --> src/agent/random.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | pub(crate) struct RandomAgent { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `choose_primary`, `choose_secondary`, and `move_tile` are never used [INFO] [stdout] --> src/agent/random.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 23 | impl RandomAgent { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 24 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn choose_primary(&mut self, state: &PlayerState) -> Primary { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | fn choose_secondary( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 275 | fn move_tile(&self, tile: Tile) -> (Tile, Tile) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOCATIONS` is never used [INFO] [stdout] --> src/agent/random.rs:297:7 [INFO] [stdout] | [INFO] [stdout] 297 | const LOCATIONS: [Tile; 5] = [ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/campaign/mod.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Player<'a> { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 8 | pub(crate) name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Player` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `starting_index` are never read [INFO] [stdout] --> src/campaign/mod.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 25 | pub(crate) struct PlayerMat<'a> { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 26 | pub(crate) name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] 27 | pub(crate) starting_index: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlayerMat` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Produce2` and `Produce3` are never constructed [INFO] [stdout] --> src/game/turnmask.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) enum Produce { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 29 | Produce1(Tile), [INFO] [stdout] 30 | Produce2(Tile, Tile), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 31 | Produce3(Tile, Tile, Tile), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Produce` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_actions` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) fn get_actions(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_primaries` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn get_primaries(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_secondaries` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn get_secondaries(state: &PlayerState, secondary: SecondaryAction) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enlists` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn get_enlists(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_builds` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn get_builds(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_deploys` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn get_deploys(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PRIMARY_UPGRADES` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:137:7 [INFO] [stdout] | [INFO] [stdout] 137 | const PRIMARY_UPGRADES: [PrimaryUpgrade; 6] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SECONDARY_UPGRADES` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:146:7 [INFO] [stdout] | [INFO] [stdout] 146 | const SECONDARY_UPGRADES: [SecondaryUpgrade; 4] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_upgrades` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:153:4 [INFO] [stdout] | [INFO] [stdout] 153 | fn get_upgrades(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_moves` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:173:4 [INFO] [stdout] | [INFO] [stdout] 173 | fn get_moves(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILES` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:214:7 [INFO] [stdout] | [INFO] [stdout] 214 | const TILES: [Tile; 5] = [ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_produces` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn get_produces(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_trades` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:253:4 [INFO] [stdout] | [INFO] [stdout] 253 | fn get_trades() -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_won` is never used [INFO] [stdout] --> src/game_state/mod.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 43 | impl PlayerState { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | pub(crate) fn has_won(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_build` is never used [INFO] [stdout] --> src/game_state/buildings.rs:50:19 [INFO] [stdout] | [INFO] [stdout] 15 | impl BuildingsState { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub(crate) fn can_build(&self, building: Building) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_deploy` is never used [INFO] [stdout] --> src/game_state/mechs.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 12 | impl MechsState { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub(crate) fn can_deploy(&self, mech: Mech) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_recruit` and `is_onetime_recruited` are never used [INFO] [stdout] --> src/game_state/recruits.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 18 | impl RecruitsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 77 | pub(crate) fn can_recruit(&self, secondary: Recruit, onetime: Recruit) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub(crate) fn is_onetime_recruited(&self, onetime: Recruit) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_upgrade`, `can_upgrade_primary`, and `can_upgrade_secondary` are never used [INFO] [stdout] --> src/game_state/upgrades.rs:112:19 [INFO] [stdout] | [INFO] [stdout] 31 | impl UpgradesState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub(crate) fn can_upgrade( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub(crate) fn can_upgrade_primary(&self, primary: &PrimaryUpgrade) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub(crate) fn can_upgrade_secondary(&self, secondary: &SecondaryUpgrade) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MathFn` is never used [INFO] [stdout] --> src/network/fcnn.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type MathFn = fn(f64) -> f64; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MathFnClosure` is never used [INFO] [stdout] --> src/network/fcnn.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type MathFnClosure<'a> = Box f64 + 'a>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MLFunction` is never used [INFO] [stdout] --> src/network/fcnn.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) enum MLFunction<'a> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_fn_pair` is never used [INFO] [stdout] --> src/network/fcnn.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl<'a> MLFunction<'a> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 17 | fn as_fn_pair(&self) -> (MathFnClosure, MathFnClosure) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sigmoid` is never used [INFO] [stdout] --> src/network/fcnn.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn sigmoid(x: f64) -> f64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tanh_norm` is never used [INFO] [stdout] --> src/network/fcnn.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn tanh_norm(x: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `relu` is never used [INFO] [stdout] --> src/network/fcnn.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn relu(x: f64) -> f64 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `leaky_relu` is never used [INFO] [stdout] --> src/network/fcnn.rs:60:4 [INFO] [stdout] | [INFO] [stdout] 60 | fn leaky_relu(x: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `elu` is never used [INFO] [stdout] --> src/network/fcnn.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn elu(x: f64) -> f64 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FCNN` is never constructed [INFO] [stdout] --> src/network/fcnn.rs:76:19 [INFO] [stdout] | [INFO] [stdout] 76 | pub(crate) struct FCNN<'a> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_softmax` are never used [INFO] [stdout] --> src/network/fcnn.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl<'a> FCNN<'a> { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 84 | pub fn new(heights: Vec, output_func: &'a MLFunction<'a>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn new_softmax(heights: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Predictor` is never used [INFO] [stdout] --> src/network/fcnn.rs:110:18 [INFO] [stdout] | [INFO] [stdout] 110 | pub(crate) trait Predictor { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Trainer` is never used [INFO] [stdout] --> src/network/fcnn.rs:129:18 [INFO] [stdout] | [INFO] [stdout] 129 | pub(crate) trait Trainer { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `J` should have a snake case name [INFO] [stdout] --> src/network/fcnn.rs:155:18 [INFO] [stdout] | [INFO] [stdout] 155 | let (J, K) = self.weights[i].dim(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `j` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `K` should have a snake case name [INFO] [stdout] --> src/network/fcnn.rs:155:21 [INFO] [stdout] | [INFO] [stdout] 155 | let (J, K) = self.weights[i].dim(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PredictiveQAgent` is never constructed [INFO] [stdout] --> src/agent/fcnn.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | pub(crate) struct PredictiveQAgent<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `predict`, `train`, and `max_turn` are never used [INFO] [stdout] --> src/agent/fcnn.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 16 | impl PredictiveQAgent<'_> { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 17 | pub(crate) fn new(hidden: usize, layout: Layout) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub(crate) fn predict(&self, state: &PlayerState) -> f64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub(crate) fn train(&mut self, state: &PlayerState, gamma: f64, learning_rate: f64) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 61 | fn max_turn(&mut self, state: &PlayerState) -> (TurnMask, f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Layout` is never used [INFO] [stdout] --> src/agent/fcnn.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | pub(crate) enum Layout { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `VECTOR_SIZE` is never used [INFO] [stdout] --> src/agent/fcnn.rs:95:7 [INFO] [stdout] | [INFO] [stdout] 95 | const VECTOR_SIZE: usize = 65; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `transform_state` is never used [INFO] [stdout] --> src/agent/fcnn.rs:97:4 [INFO] [stdout] | [INFO] [stdout] 97 | fn transform_state(state: &PlayerState) -> Array1 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RandomAgent` is never constructed [INFO] [stdout] --> src/agent/random.rs:20:19 [INFO] [stdout] | [INFO] [stdout] 20 | pub(crate) struct RandomAgent { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `choose_primary`, `choose_secondary`, and `move_tile` are never used [INFO] [stdout] --> src/agent/random.rs:24:19 [INFO] [stdout] | [INFO] [stdout] 23 | impl RandomAgent { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 24 | pub(crate) fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn choose_primary(&mut self, state: &PlayerState) -> Primary { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 135 | fn choose_secondary( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 275 | fn move_tile(&self, tile: Tile) -> (Tile, Tile) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOCATIONS` is never used [INFO] [stdout] --> src/agent/random.rs:297:7 [INFO] [stdout] | [INFO] [stdout] 297 | const LOCATIONS: [Tile; 5] = [ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `name` is never read [INFO] [stdout] --> src/campaign/mod.rs:8:16 [INFO] [stdout] | [INFO] [stdout] 7 | pub(crate) struct Player<'a> { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 8 | pub(crate) name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Player` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `starting_index` are never read [INFO] [stdout] --> src/campaign/mod.rs:26:16 [INFO] [stdout] | [INFO] [stdout] 25 | pub(crate) struct PlayerMat<'a> { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 26 | pub(crate) name: &'a str, [INFO] [stdout] | ^^^^ [INFO] [stdout] 27 | pub(crate) starting_index: i32, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PlayerMat` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Produce2` and `Produce3` are never constructed [INFO] [stdout] --> src/game/turnmask.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub(crate) enum Produce { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 29 | Produce1(Tile), [INFO] [stdout] 30 | Produce2(Tile, Tile), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 31 | Produce3(Tile, Tile, Tile), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Produce` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_actions` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:15:15 [INFO] [stdout] | [INFO] [stdout] 15 | pub(crate) fn get_actions(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_primaries` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn get_primaries(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_secondaries` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:50:4 [INFO] [stdout] | [INFO] [stdout] 50 | fn get_secondaries(state: &PlayerState, secondary: SecondaryAction) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_enlists` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn get_enlists(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_builds` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:98:4 [INFO] [stdout] | [INFO] [stdout] 98 | fn get_builds(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_deploys` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:120:4 [INFO] [stdout] | [INFO] [stdout] 120 | fn get_deploys(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PRIMARY_UPGRADES` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:137:7 [INFO] [stdout] | [INFO] [stdout] 137 | const PRIMARY_UPGRADES: [PrimaryUpgrade; 6] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SECONDARY_UPGRADES` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:146:7 [INFO] [stdout] | [INFO] [stdout] 146 | const SECONDARY_UPGRADES: [SecondaryUpgrade; 4] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_upgrades` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:153:4 [INFO] [stdout] | [INFO] [stdout] 153 | fn get_upgrades(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_moves` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:173:4 [INFO] [stdout] | [INFO] [stdout] 173 | fn get_moves(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `TILES` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:214:7 [INFO] [stdout] | [INFO] [stdout] 214 | const TILES: [Tile; 5] = [ [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_produces` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:222:4 [INFO] [stdout] | [INFO] [stdout] 222 | fn get_produces(state: &PlayerState) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_trades` is never used [INFO] [stdout] --> src/game/turnpredictor.rs:253:4 [INFO] [stdout] | [INFO] [stdout] 253 | fn get_trades() -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has_won` is never used [INFO] [stdout] --> src/game_state/mod.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 43 | impl PlayerState { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | pub(crate) fn has_won(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_build` is never used [INFO] [stdout] --> src/game_state/buildings.rs:50:19 [INFO] [stdout] | [INFO] [stdout] 15 | impl BuildingsState { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 50 | pub(crate) fn can_build(&self, building: Building) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `can_deploy` is never used [INFO] [stdout] --> src/game_state/mechs.rs:47:19 [INFO] [stdout] | [INFO] [stdout] 12 | impl MechsState { [INFO] [stdout] | --------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 47 | pub(crate) fn can_deploy(&self, mech: Mech) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_recruit` and `is_onetime_recruited` are never used [INFO] [stdout] --> src/game_state/recruits.rs:77:19 [INFO] [stdout] | [INFO] [stdout] 18 | impl RecruitsState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 77 | pub(crate) fn can_recruit(&self, secondary: Recruit, onetime: Recruit) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | pub(crate) fn is_onetime_recruited(&self, onetime: Recruit) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_upgrade`, `can_upgrade_primary`, and `can_upgrade_secondary` are never used [INFO] [stdout] --> src/game_state/upgrades.rs:112:19 [INFO] [stdout] | [INFO] [stdout] 31 | impl UpgradesState { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub(crate) fn can_upgrade( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 120 | pub(crate) fn can_upgrade_primary(&self, primary: &PrimaryUpgrade) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 131 | pub(crate) fn can_upgrade_secondary(&self, secondary: &SecondaryUpgrade) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MathFn` is never used [INFO] [stdout] --> src/network/fcnn.rs:3:6 [INFO] [stdout] | [INFO] [stdout] 3 | type MathFn = fn(f64) -> f64; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `MathFnClosure` is never used [INFO] [stdout] --> src/network/fcnn.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | type MathFnClosure<'a> = Box f64 + 'a>; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MLFunction` is never used [INFO] [stdout] --> src/network/fcnn.rs:6:17 [INFO] [stdout] | [INFO] [stdout] 6 | pub(crate) enum MLFunction<'a> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `as_fn_pair` is never used [INFO] [stdout] --> src/network/fcnn.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 16 | impl<'a> MLFunction<'a> { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] 17 | fn as_fn_pair(&self) -> (MathFnClosure, MathFnClosure) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sigmoid` is never used [INFO] [stdout] --> src/network/fcnn.rs:48:4 [INFO] [stdout] | [INFO] [stdout] 48 | fn sigmoid(x: f64) -> f64 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tanh_norm` is never used [INFO] [stdout] --> src/network/fcnn.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn tanh_norm(x: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `relu` is never used [INFO] [stdout] --> src/network/fcnn.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn relu(x: f64) -> f64 { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `leaky_relu` is never used [INFO] [stdout] --> src/network/fcnn.rs:60:4 [INFO] [stdout] | [INFO] [stdout] 60 | fn leaky_relu(x: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `elu` is never used [INFO] [stdout] --> src/network/fcnn.rs:68:4 [INFO] [stdout] | [INFO] [stdout] 68 | fn elu(x: f64) -> f64 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FCNN` is never constructed [INFO] [stdout] --> src/network/fcnn.rs:76:19 [INFO] [stdout] | [INFO] [stdout] 76 | pub(crate) struct FCNN<'a> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_softmax` are never used [INFO] [stdout] --> src/network/fcnn.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl<'a> FCNN<'a> { [INFO] [stdout] | ----------------- associated functions in this implementation [INFO] [stdout] 84 | pub fn new(heights: Vec, output_func: &'a MLFunction<'a>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn new_softmax(heights: Vec) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Predictor` is never used [INFO] [stdout] --> src/network/fcnn.rs:110:18 [INFO] [stdout] | [INFO] [stdout] 110 | pub(crate) trait Predictor { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Trainer` is never used [INFO] [stdout] --> src/network/fcnn.rs:129:18 [INFO] [stdout] | [INFO] [stdout] 129 | pub(crate) trait Trainer { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `J` should have a snake case name [INFO] [stdout] --> src/network/fcnn.rs:155:18 [INFO] [stdout] | [INFO] [stdout] 155 | let (J, K) = self.weights[i].dim(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `j` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `K` should have a snake case name [INFO] [stdout] --> src/network/fcnn.rs:155:21 [INFO] [stdout] | [INFO] [stdout] 155 | let (J, K) = self.weights[i].dim(); [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `k` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.32s [INFO] running `Command { std: "docker" "inspect" "aeeb5cbe1a86027824bc648592484fd1c23b326032e3329f3b3d53b46f63c5e2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aeeb5cbe1a86027824bc648592484fd1c23b326032e3329f3b3d53b46f63c5e2", kill_on_drop: false }` [INFO] [stdout] aeeb5cbe1a86027824bc648592484fd1c23b326032e3329f3b3d53b46f63c5e2