[INFO] updating cached repository masonium/card-engine [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/masonium/card-engine [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/masonium/card-engine" "work/ex/pr-61874/sources/master#9f06855064ed06a50c496577b21ca50f92a2e67d/gh/masonium/card-engine"` [INFO] [stderr] Cloning into 'work/ex/pr-61874/sources/master#9f06855064ed06a50c496577b21ca50f92a2e67d/gh/masonium/card-engine'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/masonium/card-engine" "work/ex/pr-61874/sources/try#d3301713b54af69ca9de941a8c6b0d8287dbd6df/gh/masonium/card-engine"` [INFO] [stderr] Cloning into 'work/ex/pr-61874/sources/try#d3301713b54af69ca9de941a8c6b0d8287dbd6df/gh/masonium/card-engine'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 82041c99c5a84b4425e2c3ffb656a591da7e0775 [INFO] sha for GitHub repo masonium/card-engine: 82041c99c5a84b4425e2c3ffb656a591da7e0775 [INFO] validating manifest of masonium/card-engine on toolchain master#9f06855064ed06a50c496577b21ca50f92a2e67d [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+9f06855064ed06a50c496577b21ca50f92a2e67d-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of masonium/card-engine on toolchain try#d3301713b54af69ca9de941a8c6b0d8287dbd6df [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+d3301713b54af69ca9de941a8c6b0d8287dbd6df-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing masonium/card-engine [INFO] finished frobbing masonium/card-engine [INFO] frobbed toml for masonium/card-engine written to work/ex/pr-61874/sources/master#9f06855064ed06a50c496577b21ca50f92a2e67d/gh/masonium/card-engine/Cargo.toml [INFO] started frobbing masonium/card-engine [INFO] finished frobbing masonium/card-engine [INFO] frobbed toml for masonium/card-engine written to work/ex/pr-61874/sources/try#d3301713b54af69ca9de941a8c6b0d8287dbd6df/gh/masonium/card-engine/Cargo.toml [INFO] crate masonium/card-engine already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+9f06855064ed06a50c496577b21ca50f92a2e67d-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+d3301713b54af69ca9de941a8c6b0d8287dbd6df-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking masonium/card-engine against try#d3301713b54af69ca9de941a8c6b0d8287dbd6df for pr-61874 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-61874/worker-2/try#d3301713b54af69ca9de941a8c6b0d8287dbd6df:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-61874/sources/try#d3301713b54af69ca9de941a8c6b0d8287dbd6df/gh/masonium/card-engine:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+d3301713b54af69ca9de941a8c6b0d8287dbd6df-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 01cf80c0d2e143b18ec8f14af11f93aaca1d6e569bd6ef42cfbc2f88b3e78201 [INFO] running `"docker" "start" "-a" "01cf80c0d2e143b18ec8f14af11f93aaca1d6e569bd6ef42cfbc2f88b3e78201"` [INFO] [stderr] Compiling ndarray v0.9.1 [INFO] [stderr] Checking num-complex v0.1.37 [INFO] [stderr] Checking termion v1.3.0 [INFO] [stderr] Checking ndarray-rand v0.5.0 [INFO] [stderr] Checking card-engine v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/germanwhist/phase.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | /// this is the first card played [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 44 | gs.player_view_mut(action.player).remove_card(&action.card)?; [INFO] [stderr] | ------------------------------------------------------------ rustdoc does not generate documentation for expressions [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_doc_comments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/germanwhist/phase.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | /// this is the first card played [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 44 | gs.player_view_mut(action.player).remove_card(&action.card)?; [INFO] [stderr] | ------------------------------------------------------------ rustdoc does not generate documentation for expressions [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/germanwhist/phase.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | /// Give players their new cards [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 91 | / { [INFO] [stderr] 92 | | let r = gs.revealed.take().expect("must be a revealed card"); [INFO] [stderr] 93 | | gs.player_view_mut(winner).add_card(r.clone()); [INFO] [stderr] 94 | | [INFO] [stderr] ... | [INFO] [stderr] 100 | | events[loser].push(rec_ev); [INFO] [stderr] 101 | | } [INFO] [stderr] | |_________________- rustdoc does not generate documentation for expressions [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/learning/training.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | /// epsilon-greedy state-choosing [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 49 | let mut rng = thread_rng(); [INFO] [stderr] | --------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_doc_comments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/germanwhist/phase.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | /// Give players their new cards [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 91 | / { [INFO] [stderr] 92 | | let r = gs.revealed.take().expect("must be a revealed card"); [INFO] [stderr] 93 | | gs.player_view_mut(winner).add_card(r.clone()); [INFO] [stderr] 94 | | [INFO] [stderr] ... | [INFO] [stderr] 100 | | events[loser].push(rec_ev); [INFO] [stderr] 101 | | } [INFO] [stderr] | |_________________- rustdoc does not generate documentation for expressions [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/learning/training.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | /// epsilon-greedy state-choosing [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 49 | let mut rng = thread_rng(); [INFO] [stderr] | --------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/engine.rs:71:16 [INFO] [stderr] | [INFO] [stderr] 71 | phase: Box, [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/engine.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | let phase: Box = Box::new(GameOverPhase{}); [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/engine.rs:126:33 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn get_phase(&self) -> &GamePhase { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/phase.rs:17:57 [INFO] [stderr] | [INFO] [stderr] 17 | fn transition(&mut self, gs: &mut GameState) -> Box; [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/phase.rs:164:56 [INFO] [stderr] | [INFO] [stderr] 164 | fn transition(&mut self, _: &mut GameState) -> Box { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/phase.rs:190:56 [INFO] [stderr] | [INFO] [stderr] 190 | fn transition(&mut self, _: &mut GameState) -> Box { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/engine.rs:71:16 [INFO] [stderr] | [INFO] [stderr] 71 | phase: Box, [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/engine.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | let phase: Box = Box::new(GameOverPhase{}); [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/engine.rs:126:33 [INFO] [stderr] | [INFO] [stderr] 126 | pub fn get_phase(&self) -> &GamePhase { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/phase.rs:17:57 [INFO] [stderr] | [INFO] [stderr] 17 | fn transition(&mut self, gs: &mut GameState) -> Box; [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/phase.rs:164:56 [INFO] [stderr] | [INFO] [stderr] 164 | fn transition(&mut self, _: &mut GameState) -> Box { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/germanwhist/phase.rs:190:56 [INFO] [stderr] | [INFO] [stderr] 190 | fn transition(&mut self, _: &mut GameState) -> Box { [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn GamePhase` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/germanwhist/player.rs:189:23 [INFO] [stderr] | [INFO] [stderr] 189 | fn card_to_vector(mut x: &mut ArrayViewMut, card: &Option, suit_order: &[Suit]) { [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/germanwhist/player.rs:189:23 [INFO] [stderr] | [INFO] [stderr] 189 | fn card_to_vector(mut x: &mut ArrayViewMut, card: &Option, suit_order: &[Suit]) { [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: method is never used: `dump` [INFO] [stderr] --> src/learning/neural_net.rs:283:5 [INFO] [stderr] | [INFO] [stderr] 283 | fn dump(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `dump` [INFO] [stderr] --> src/learning/neural_net.rs:283:5 [INFO] [stderr] | [INFO] [stderr] 283 | fn dump(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/basic_player.rs:200:5 [INFO] [stderr] | [INFO] [stderr] 200 | /// start the game [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 201 | let mut actions = eng.possible_actions(); [INFO] [stderr] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_doc_comments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused doc comment [INFO] [stderr] --> src/bin/basic_player.rs:200:5 [INFO] [stderr] | [INFO] [stderr] 200 | /// start the game [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 201 | let mut actions = eng.possible_actions(); [INFO] [stderr] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_doc_comments)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/bin/basic_player.rs:100:23 [INFO] [stderr] | [INFO] [stderr] 100 | let players: [Box; 2] = [Box::new(BasicPlayer::new(r)), Box::new(RandomPlayer::new())]; [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/bin/basic_player.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | let players: [Box; 2] = [Box::new(BasicPlayer::new(None)), Box::new(RandomPlayer::new())]; [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/bin/basic_player.rs:100:23 [INFO] [stderr] | [INFO] [stderr] 100 | let players: [Box; 2] = [Box::new(BasicPlayer::new(r)), Box::new(RandomPlayer::new())]; [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(bare_trait_objects)] on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/bin/basic_player.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | let players: [Box; 2] = [Box::new(BasicPlayer::new(None)), Box::new(RandomPlayer::new())]; [INFO] [stderr] | ^^^^^^ help: use `dyn`: `dyn Player` [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bin/basic_player.rs:251:9 [INFO] [stderr] | [INFO] [stderr] 251 | sl.train_on_episode(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/bin/basic_player.rs:251:9 [INFO] [stderr] | [INFO] [stderr] 251 | sl.train_on_episode(false); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: static variable `b` should have an upper case name [INFO] [stderr] --> src/bin/single_layer_learn.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | static ref b: Array = arr1(&[-0.071, 0.4]); [INFO] [stderr] | ^ help: convert the identifier to upper case: `B` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] warning: static variable `b` should have an upper case name [INFO] [stderr] --> src/bin/single_layer_learn.rs:29:20 [INFO] [stderr] | [INFO] [stderr] 29 | static ref b: Array = arr1(&[-0.071, 0.4]); [INFO] [stderr] | ^ help: convert the identifier to upper case: `B` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_upper_case_globals)] on by default [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 13.47s [INFO] running `"docker" "inspect" "01cf80c0d2e143b18ec8f14af11f93aaca1d6e569bd6ef42cfbc2f88b3e78201"` [INFO] running `"docker" "rm" "-f" "01cf80c0d2e143b18ec8f14af11f93aaca1d6e569bd6ef42cfbc2f88b3e78201"` [INFO] [stdout] 01cf80c0d2e143b18ec8f14af11f93aaca1d6e569bd6ef42cfbc2f88b3e78201