[INFO] updating cached repository alexanderbladyko/caverna_bot [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/alexanderbladyko/caverna_bot [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/alexanderbladyko/caverna_bot" "work/ex/clippy-test-run/sources/stable/gh/alexanderbladyko/caverna_bot"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/alexanderbladyko/caverna_bot'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/alexanderbladyko/caverna_bot" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/alexanderbladyko/caverna_bot"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/alexanderbladyko/caverna_bot'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 068b3bfa0f647edd09952e9749f8186b02103877 [INFO] sha for GitHub repo alexanderbladyko/caverna_bot: 068b3bfa0f647edd09952e9749f8186b02103877 [INFO] validating manifest of alexanderbladyko/caverna_bot on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of alexanderbladyko/caverna_bot on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing alexanderbladyko/caverna_bot [INFO] finished frobbing alexanderbladyko/caverna_bot [INFO] frobbed toml for alexanderbladyko/caverna_bot written to work/ex/clippy-test-run/sources/stable/gh/alexanderbladyko/caverna_bot/Cargo.toml [INFO] started frobbing alexanderbladyko/caverna_bot [INFO] finished frobbing alexanderbladyko/caverna_bot [INFO] frobbed toml for alexanderbladyko/caverna_bot written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/alexanderbladyko/caverna_bot/Cargo.toml [INFO] crate alexanderbladyko/caverna_bot has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting alexanderbladyko/caverna_bot against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/alexanderbladyko/caverna_bot:/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" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 4ec604a8f398c88b843bc905676d208e02fca864a45b9c72b81809321ddeb580 [INFO] running `"docker" "start" "-a" "4ec604a8f398c88b843bc905676d208e02fca864a45b9c72b81809321ddeb580"` [INFO] [stderr] Checking clap v2.28.0 [INFO] [stderr] Checking serde_yaml v0.7.3 [INFO] [stderr] Checking caverna_bot v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/common.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | / macro_rules! hash_set( [INFO] [stderr] 21 | | { $($x:expr),+ } => { [INFO] [stderr] 22 | | { [INFO] [stderr] 23 | | let mut m = HashSet::new(); [INFO] [stderr] ... | [INFO] [stderr] 29 | | }; [INFO] [stderr] 30 | | ); [INFO] [stderr] | |__^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/actions/constants.rs:8:32 [INFO] [stderr] | [INFO] [stderr] 8 | pub const ALL_PLAYER_ACTIONS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/moves/constants.rs:25:23 [INFO] [stderr] | [INFO] [stderr] 25 | pub const ALL_MOVES: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/moves/constants.rs:35:31 [INFO] [stderr] | [INFO] [stderr] 35 | pub const TWO_PLAYERS_MOVES: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/moves/core.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | actions [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/moves/core.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | let actions = moves [INFO] [stderr] | ___________________^ [INFO] [stderr] 49 | | .iter() [INFO] [stderr] 50 | | .flat_map(|&m| { [INFO] [stderr] 51 | | m.get_all_actions(game.clone(), moves_config).into_iter().map(|a| { [INFO] [stderr] ... | [INFO] [stderr] 57 | | }) [INFO] [stderr] 58 | | .collect(); [INFO] [stderr] | |__________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | pub const ALL_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | pub const GREEN_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:22:26 [INFO] [stderr] | [INFO] [stderr] 22 | pub const YELLOW_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | pub const GINGER_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/test/test_actions/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod test_actions; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/actions/constants.rs:8:32 [INFO] [stderr] | [INFO] [stderr] 8 | pub const ALL_PLAYER_ACTIONS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/moves/constants.rs:25:23 [INFO] [stderr] | [INFO] [stderr] 25 | pub const ALL_MOVES: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/moves/constants.rs:35:31 [INFO] [stderr] | [INFO] [stderr] 35 | pub const TWO_PLAYERS_MOVES: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/moves/core.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | actions [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/moves/core.rs:48:19 [INFO] [stderr] | [INFO] [stderr] 48 | let actions = moves [INFO] [stderr] | ___________________^ [INFO] [stderr] 49 | | .iter() [INFO] [stderr] 50 | | .flat_map(|&m| { [INFO] [stderr] 51 | | m.get_all_actions(game.clone(), moves_config).into_iter().map(|a| { [INFO] [stderr] ... | [INFO] [stderr] 57 | | }) [INFO] [stderr] 58 | | .collect(); [INFO] [stderr] | |__________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:9:23 [INFO] [stderr] | [INFO] [stderr] 9 | pub const ALL_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | pub const GREEN_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:22:26 [INFO] [stderr] | [INFO] [stderr] 22 | pub const YELLOW_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/rooms/constants.rs:25:26 [INFO] [stderr] | [INFO] [stderr] 25 | pub const GINGER_ROOMS: &'static [&str] = &[ [INFO] [stderr] | -^^^^^^^------- help: consider removing `'static`: `&[&str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/test/test_actions/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod test_actions; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unused variable: `actions` [INFO] [stderr] --> src/test/test_moves/test_core.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | let actions = player_move.get_all_actions(game, &moves_config); [INFO] [stderr] | ^^^^^^^ help: consider using `_actions` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/actions/mod.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | format!("Game turn +1") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Game turn +1".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/actions/mod.rs:336:9 [INFO] [stderr] | [INFO] [stderr] 336 | format!("Releasing all moves") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Releasing all moves".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/actions/mod.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | format!("Game turn +1") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Game turn +1".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/actions/mod.rs:336:9 [INFO] [stderr] | [INFO] [stderr] 336 | format!("Releasing all moves") [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Releasing all moves".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/balance/utils.rs:144:19 [INFO] [stderr] | [INFO] [stderr] 144 | ALL_RESOURCES.into_iter().for_each(|r| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/balance/utils.rs:152:39 [INFO] [stderr] | [INFO] [stderr] 152 | MovesConstants::TWO_PLAYERS_MOVES.into_iter().for_each(|r| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/balance/utils.rs:144:19 [INFO] [stderr] | [INFO] [stderr] 144 | ALL_RESOURCES.into_iter().for_each(|r| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/balance/utils.rs:160:42 [INFO] [stderr] | [INFO] [stderr] 160 | ActionsConstants::ALL_PLAYER_ACTIONS.into_iter().for_each(|r| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/balance/utils.rs:189:58 [INFO] [stderr] | [INFO] [stderr] 189 | let score = BalanceConfig::calculate(balance_config.resources.get(resource).unwrap(), game, player); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&balance_config.resources[resource]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/balance/utils.rs:196:58 [INFO] [stderr] | [INFO] [stderr] 196 | let score = BalanceConfig::calculate(balance_config.rooms.get(&room.room_type).unwrap(), game, player); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&balance_config.rooms[&room.room_type]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/balance/utils.rs:152:39 [INFO] [stderr] | [INFO] [stderr] 152 | MovesConstants::TWO_PLAYERS_MOVES.into_iter().for_each(|r| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/balance/utils.rs:160:42 [INFO] [stderr] | [INFO] [stderr] 160 | ActionsConstants::ALL_PLAYER_ACTIONS.into_iter().for_each(|r| { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/balance/utils.rs:201:38 [INFO] [stderr] | [INFO] [stderr] 201 | let action_balance = balance_config.actions.get(action.get_name()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&balance_config.actions[action.get_name()]` [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/balance/utils.rs:189:58 [INFO] [stderr] | [INFO] [stderr] 189 | let score = BalanceConfig::calculate(balance_config.resources.get(resource).unwrap(), game, player); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&balance_config.resources[resource]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/balance/utils.rs:196:58 [INFO] [stderr] | [INFO] [stderr] 196 | let score = BalanceConfig::calculate(balance_config.rooms.get(&room.room_type).unwrap(), game, player); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&balance_config.rooms[&room.room_type]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/balance/utils.rs:201:38 [INFO] [stderr] | [INFO] [stderr] 201 | let action_balance = balance_config.actions.get(action.get_name()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&balance_config.actions[action.get_name()]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/models/game.rs:74:39 [INFO] [stderr] | [INFO] [stderr] 74 | let mut slots: HashSet = HashSet::from( [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 75 | | self.rooms.iter().map(|r| r.position).collect() [INFO] [stderr] 76 | | ); [INFO] [stderr] | |_________^ help: consider removing `HashSet::from()`: `self.rooms.iter().map(|r| r.position).collect()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/models/game.rs:88:39 [INFO] [stderr] | [INFO] [stderr] 88 | let mut slots: HashSet = HashSet::from( [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 89 | | self.fields.iter().map(|r| r.position).collect() [INFO] [stderr] 90 | | ); [INFO] [stderr] | |_________^ help: consider removing `HashSet::from()`: `self.fields.iter().map(|r| r.position).collect()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/models/game.rs:74:39 [INFO] [stderr] | [INFO] [stderr] 74 | let mut slots: HashSet = HashSet::from( [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 75 | | self.rooms.iter().map(|r| r.position).collect() [INFO] [stderr] 76 | | ); [INFO] [stderr] | |_________^ help: consider removing `HashSet::from()`: `self.rooms.iter().map(|r| r.position).collect()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/models/game.rs:88:39 [INFO] [stderr] | [INFO] [stderr] 88 | let mut slots: HashSet = HashSet::from( [INFO] [stderr] | _______________________________________^ [INFO] [stderr] 89 | | self.fields.iter().map(|r| r.position).collect() [INFO] [stderr] 90 | | ); [INFO] [stderr] | |_________^ help: consider removing `HashSet::from()`: `self.fields.iter().map(|r| r.position).collect()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/models/game.rs:204:51 [INFO] [stderr] | [INFO] [stderr] 204 | pub fn get_player_mut(&mut self, player_name: &String) -> &mut Player { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/models/game.rs:204:51 [INFO] [stderr] | [INFO] [stderr] 204 | pub fn get_player_mut(&mut self, player_name: &String) -> &mut Player { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/simulation.rs:62:31 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap, S>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/simulation.rs:62:47 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/simulation.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | let some_key = cfg.keys().into_iter().skip(first).next().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/simulation.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | let some_key = cfg.keys().into_iter().skip(first).next().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `cfg.keys()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/simulation.rs:69:26 [INFO] [stderr] | [INFO] [stderr] 69 | let some_inner_key = inner_hash.keys().skip(second).next().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/simulation.rs:75:65 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn simulate_tournament(moves_config: &MovesConfig, configs: &Vec) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[BalanceConfig]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / match new_move { [INFO] [stderr] 45 | | Some(m) => actions.push(Box::from(OpenNewMove { [INFO] [stderr] 46 | | new_move: String::from(m), [INFO] [stderr] 47 | | })), [INFO] [stderr] 48 | | None => (), [INFO] [stderr] 49 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 44 | if let Some(m) = new_move { actions.push(Box::from(OpenNewMove { [INFO] [stderr] 45 | new_move: String::from(m), [INFO] [stderr] 46 | })) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/test/base.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | assert_eq!(*player.resources.get(&resource.str_key()).unwrap(), value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&player.resources[&resource.str_key()]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/test/test_actions/test_actions.rs:19:32 [INFO] [stderr] | [INFO] [stderr] 19 | update_hash.insert(String::from(constants::ResourceType::Gold.str_key()), 30); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `constants::ResourceType::Gold.str_key()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/simulation.rs:62:31 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap, S>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/simulation.rs:62:47 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 62 | pub fn _mutate_hash(cfg: &mut HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/simulation.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | let some_key = cfg.keys().into_iter().skip(first).next().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/simulation.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | let some_key = cfg.keys().into_iter().skip(first).next().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `cfg.keys()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/simulation.rs:69:26 [INFO] [stderr] | [INFO] [stderr] 69 | let some_inner_key = inner_hash.keys().skip(second).next().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/simulation.rs:75:65 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn simulate_tournament(moves_config: &MovesConfig, configs: &Vec) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: change this to: `&[BalanceConfig]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/utils.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | / match new_move { [INFO] [stderr] 45 | | Some(m) => actions.push(Box::from(OpenNewMove { [INFO] [stderr] 46 | | new_move: String::from(m), [INFO] [stderr] 47 | | })), [INFO] [stderr] 48 | | None => (), [INFO] [stderr] 49 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 44 | if let Some(m) = new_move { actions.push(Box::from(OpenNewMove { [INFO] [stderr] 45 | new_move: String::from(m), [INFO] [stderr] 46 | })) }; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:165:17 [INFO] [stderr] | [INFO] [stderr] 165 | Err(_) => panic!(format!("Not found implementation for command: {}", m)), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/test/base.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | assert_eq!(*player.resources.get(&resource.str_key()).unwrap(), value); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&player.resources[&resource.str_key()]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | Err(_) => panic!(format!("Not found implementation for command: {}", name)), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 225 | / match cmd.value_of("new_move") { [INFO] [stderr] 226 | | Some(new_move) => match get_from_string(new_move) { [INFO] [stderr] 227 | | Ok(_) => { [INFO] [stderr] 228 | | for mov in game.clone().get_all_moves() { [INFO] [stderr] ... | [INFO] [stderr] 241 | | _ => {}, [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 225 | if let Some(new_move) = cmd.value_of("new_move") { match get_from_string(new_move) { [INFO] [stderr] 226 | Ok(_) => { [INFO] [stderr] 227 | for mov in game.clone().get_all_moves() { [INFO] [stderr] 228 | mov.on_next_turn(game, &moves_config); [INFO] [stderr] 229 | } [INFO] [stderr] 230 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:239:13 [INFO] [stderr] | [INFO] [stderr] 239 | Err(_) => panic!(format!("Not found implementation for command: {}", new_move)), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:165:17 [INFO] [stderr] | [INFO] [stderr] 165 | Err(_) => panic!(format!("Not found implementation for command: {}", m)), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:212:9 [INFO] [stderr] | [INFO] [stderr] 212 | Err(_) => panic!(format!("Not found implementation for command: {}", name)), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:225:5 [INFO] [stderr] | [INFO] [stderr] 225 | / match cmd.value_of("new_move") { [INFO] [stderr] 226 | | Some(new_move) => match get_from_string(new_move) { [INFO] [stderr] 227 | | Ok(_) => { [INFO] [stderr] 228 | | for mov in game.clone().get_all_moves() { [INFO] [stderr] ... | [INFO] [stderr] 241 | | _ => {}, [INFO] [stderr] 242 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 225 | if let Some(new_move) = cmd.value_of("new_move") { match get_from_string(new_move) { [INFO] [stderr] 226 | Ok(_) => { [INFO] [stderr] 227 | for mov in game.clone().get_all_moves() { [INFO] [stderr] 228 | mov.on_next_turn(game, &moves_config); [INFO] [stderr] 229 | } [INFO] [stderr] 230 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:239:13 [INFO] [stderr] | [INFO] [stderr] 239 | Err(_) => panic!(format!("Not found implementation for command: {}", new_move)), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 17.29s [INFO] running `"docker" "inspect" "4ec604a8f398c88b843bc905676d208e02fca864a45b9c72b81809321ddeb580"` [INFO] running `"docker" "rm" "-f" "4ec604a8f398c88b843bc905676d208e02fca864a45b9c72b81809321ddeb580"` [INFO] [stdout] 4ec604a8f398c88b843bc905676d208e02fca864a45b9c72b81809321ddeb580