[INFO] updating cached repository wolf1996/ws_battlecity [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/wolf1996/ws_battlecity [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/wolf1996/ws_battlecity" "work/ex/beta-1.38-1/sources/1.37.0/gh/wolf1996/ws_battlecity"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/1.37.0/gh/wolf1996/ws_battlecity'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/wolf1996/ws_battlecity" "work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/wolf1996/ws_battlecity"` [INFO] [stderr] Cloning into 'work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/wolf1996/ws_battlecity'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1082764de779a6386ae635b2ca0283050dfa58e0 [INFO] sha for GitHub repo wolf1996/ws_battlecity: 1082764de779a6386ae635b2ca0283050dfa58e0 [INFO] validating manifest of wolf1996/ws_battlecity on toolchain 1.37.0 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of wolf1996/ws_battlecity on toolchain beta-2019-08-13 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing wolf1996/ws_battlecity [INFO] finished frobbing wolf1996/ws_battlecity [INFO] frobbed toml for wolf1996/ws_battlecity written to work/ex/beta-1.38-1/sources/1.37.0/gh/wolf1996/ws_battlecity/Cargo.toml [INFO] started frobbing wolf1996/ws_battlecity [INFO] finished frobbing wolf1996/ws_battlecity [INFO] frobbed toml for wolf1996/ws_battlecity written to work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/wolf1996/ws_battlecity/Cargo.toml [INFO] crate wolf1996/ws_battlecity already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+1.37.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+beta-2019-08-13" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] testing wolf1996/ws_battlecity against beta-2019-08-13 for beta-1.38-1 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-5/beta-2019-08-13:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/wolf1996/ws_battlecity:/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=warn" "-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" "+beta-2019-08-13" "build" "--frozen"` [INFO] [stdout] a7dc0e57de4b0b5a13c467efec1cf9e7f5498912f2443f4dd65e9b6b82f8d3e5 [INFO] running `"docker" "start" "-a" "a7dc0e57de4b0b5a13c467efec1cf9e7f5498912f2443f4dd65e9b6b82f8d3e5"` [INFO] [stderr] Compiling num-traits v0.1.42 [INFO] [stderr] Compiling iovec v0.1.1 [INFO] [stderr] Compiling rand v0.3.20 [INFO] [stderr] Compiling bytes v0.4.6 [INFO] [stderr] Compiling mio v0.6.12 [INFO] [stderr] Compiling serde_json v1.0.9 [INFO] [stderr] Compiling ws v0.7.3 [INFO] [stderr] Compiling battle_city v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/errors.rs:24:32 [INFO] [stderr] | [INFO] [stderr] 24 | fn cause(&self) -> Option<&error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [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/app/errors.rs:51:32 [INFO] [stderr] | [INFO] [stderr] 51 | fn cause(&self) -> Option<&error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/errors.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | fn cause(&self) -> Option<&error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameLogicError` [INFO] [stderr] --> src/app/game/logic.rs:6:25 [INFO] [stderr] | [INFO] [stderr] 6 | use app::game::errors::{GameLogicError, LogicResult}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Serialize` [INFO] [stderr] --> src/app/game/logic.rs:14:18 [INFO] [stderr] | [INFO] [stderr] 14 | use serde::ser::{Serialize, Serializer, SerializeSeq}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:26:32 [INFO] [stderr] | [INFO] [stderr] 26 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:31:20 [INFO] [stderr] | [INFO] [stderr] 31 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:32:28 [INFO] [stderr] | [INFO] [stderr] 32 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:122:23 [INFO] [stderr] | [INFO] [stderr] 122 | GameInfo (Vec>), [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:125:53 [INFO] [stderr] | [INFO] [stderr] 125 | fn info_object_serializer(to_serialize :&Vec>, serializer: S) -> Result where S: Serializer { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:139:43 [INFO] [stderr] | [INFO] [stderr] 139 | fn get_info(&self) -> LogicResult>; [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:204:63 [INFO] [stderr] | [INFO] [stderr] 204 | pub fn collect_info(&self) -> errors::LogicResult>> { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Position` [INFO] [stderr] --> src/app/game/tank.rs:2:24 [INFO] [stderr] | [INFO] [stderr] 2 | use app::game::logic::{Position, GameObject, MessageContainer, Events, Commands, InfoObject}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/app/game/tank.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/tank.rs:124:51 [INFO] [stderr] | [INFO] [stderr] 124 | fn get_info(&self) -> errors::LogicResult>{ [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::errors::GameLogicError` [INFO] [stderr] --> src/app/game/user.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use app::game::errors::GameLogicError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::logic::Position` [INFO] [stderr] --> src/app/game/user.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use app::game::logic::Position; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::logic::Events` [INFO] [stderr] --> src/app/game/user.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use app::game::logic::Events; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::events::Broker` [INFO] [stderr] --> src/app/game/user.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use app::game::events::Broker; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/user.rs:22:33 [INFO] [stderr] | [INFO] [stderr] 22 | units : Vec>>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/user.rs:76:51 [INFO] [stderr] | [INFO] [stderr] 76 | fn get_info(&self) -> errors::LogicResult>{ [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::logic::Events as MessageEvents` [INFO] [stderr] --> src/app/game/events.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use app::game::logic::Events as MessageEvents; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:14:45 [INFO] [stderr] | [INFO] [stderr] 14 | channels :HashMap>>>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:15:41 [INFO] [stderr] | [INFO] [stderr] 15 | units :HashMap>>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:52:52 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn add_system(&mut self, gobjo: Rc>) -> errors::LogicResult<()> { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:101:63 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn collect_info(&self) -> errors::LogicResult>> { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/app/game/map.rs:68:24 [INFO] [stderr] | [INFO] [stderr] 68 | if ((ycoll < 0.0) && (xcoll < 0.0)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/app/game/map.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | if ((ycoll < 0.0) && (xcoll < 0.0)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `Events` [INFO] [stderr] --> src/app/game/mapobj.rs:1:61 [INFO] [stderr] | [INFO] [stderr] 1 | use app::game::logic::{GameObject,EventContainer,EventsList,Events, InfoObject}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `erased_serde` [INFO] [stderr] --> src/app/game/mapobj.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use erased_serde; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde` [INFO] [stderr] --> src/app/game/mapobj.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use serde; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/mapobj.rs:40:43 [INFO] [stderr] | [INFO] [stderr] 40 | fn get_info(&self) -> LogicResult>{ [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/app/handler.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | Ok(()) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/app/game/tank.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | Ok(vec![Events::ChangeDirection{dir:self.dir.clone() },],) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/app/game/user.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/tank.rs:57:41 [INFO] [stderr] | [INFO] [stderr] 57 | fn moving_command_process(&mut self,brok: &mut events::Broker, map: &mut GameField, dir: Direction) -> errors::LogicResult>{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/tank.rs:57:68 [INFO] [stderr] | [INFO] [stderr] 57 | fn moving_command_process(&mut self,brok: &mut events::Broker, map: &mut GameField, dir: Direction) -> errors::LogicResult>{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/user.rs:54:27 [INFO] [stderr] | [INFO] [stderr] 54 | fn process(&mut self, brok: &mut events::Broker, map: &mut GameField, msg : EventContainer) -> errors::LogicResult{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/user.rs:54:54 [INFO] [stderr] | [INFO] [stderr] 54 | fn process(&mut self, brok: &mut events::Broker, map: &mut GameField, msg : EventContainer) -> errors::LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `unit` [INFO] [stderr] --> src/app/game/events.rs:24:14 [INFO] [stderr] | [INFO] [stderr] 24 | for (unit, gobj) in self.units.clone().iter() { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_unit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/app/game/events.rs:103:18 [INFO] [stderr] | [INFO] [stderr] 103 | for (ref i, ref j) in self.units.iter(){ [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `default` [INFO] [stderr] --> src/app/game/map.rs:72:29 [INFO] [stderr] | [INFO] [stderr] 72 | default => unimplemented!() [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_default` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `default` [INFO] [stderr] --> src/app/game/map.rs:82:29 [INFO] [stderr] | [INFO] [stderr] 82 | default => unimplemented!() [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_default` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/map.rs:94:33 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn move_unit(&mut self, brok :&mut Broker, ind: usize, dir: Direction, d :usize) -> errors::LogicResult> { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/mapobj.rs:31:28 [INFO] [stderr] | [INFO] [stderr] 31 | fn process (&mut self, brok: &mut events::Broker, map: &mut GameField, msg :EventContainer) -> LogicResult{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/mapobj.rs:31:56 [INFO] [stderr] | [INFO] [stderr] 31 | fn process (&mut self, brok: &mut events::Broker, map: &mut GameField, msg :EventContainer) -> LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> src/app/game/mapobj.rs:31:77 [INFO] [stderr] | [INFO] [stderr] 31 | fn process (&mut self, brok: &mut events::Broker, map: &mut GameField, msg :EventContainer) -> LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_msg` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/mapobj.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | fn tick (&mut self, brok: &mut events::Broker, map: &mut GameField) -> LogicResult{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/mapobj.rs:34:54 [INFO] [stderr] | [INFO] [stderr] 34 | fn tick (&mut self, brok: &mut events::Broker, map: &mut GameField) -> LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/message_manager.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let mut rms = rms_arc.as_ref(); [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/app/message_manager.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let mut msg : logic::Message = serde_json::from_str(&mgg[..]).unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/logic.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | for mut msg in &mut self.channel.try_iter(){ [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/logic.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | let mut us = User::new(key); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/logic.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let mut info = self.collect_info()?; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/logic.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | let mut infoevent = EventContainer{unit: SYSTEM, evs: Events::GameInfo(info)}; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/tank.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | let mut ev = EventContainer{ [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/events.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let mut brok = Broker{units: HashMap::new() ,channels: HashMap::new(), counter: SYSTEM}; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/events.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | let mut e2 = RefCell::borrow(j).get_info()?; [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: private trait `app::game::logic::InfoObjectClone` in public interface (error E0445) [INFO] [stderr] --> src/app/game/logic.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | / pub trait InfoObject: ESerialize + Send + Debug + InfoObjectClone{ [INFO] [stderr] 19 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(private_in_public)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_player` [INFO] [stderr] --> src/app/room_manager.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn add_player(&self, msg: inf_logic::MessageContainer)-> Result<(), MessageHandlerError>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `remove_player` [INFO] [stderr] --> src/app/room_manager.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn remove_player(&self, msg: inf_logic::MessageContainer)-> Result<(), MessageHandlerError>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ChannelWrapper` [INFO] [stderr] --> src/app/logic.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | struct ChannelWrapper { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Fire` [INFO] [stderr] --> src/app/game/logic.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / Fire { [INFO] [stderr] 106 | | pos :Position, [INFO] [stderr] 107 | | dir :Direction, [INFO] [stderr] 108 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_position` [INFO] [stderr] --> src/app/game/map.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn get_position(&self, ind: usize) -> errors::LogicResult{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/app/handler.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | self.system.send(system_message); [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/app/room_manager.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | self.out.lock().unwrap().send(rc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/responce_manager.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | j.send(msg_str); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/logic.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | RefCell::borrow_mut(&mut self.logic.system).add_system(refu.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: the `delta:` in this pattern is redundant [INFO] [stderr] --> src/app/game/tank.rs:102:29 [INFO] [stderr] | [INFO] [stderr] 102 | Status::Moving{ delta: delta} => { [INFO] [stderr] | ------^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/app/game/user.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | stm.add_system(tankref.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/user.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | stm.subscribe((*tankref).borrow().key(), self.id.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/map.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | brok.add_system(wl); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/map.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | brok.add_system(wl); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 17.43s [INFO] running `"docker" "inspect" "a7dc0e57de4b0b5a13c467efec1cf9e7f5498912f2443f4dd65e9b6b82f8d3e5"` [INFO] running `"docker" "rm" "-f" "a7dc0e57de4b0b5a13c467efec1cf9e7f5498912f2443f4dd65e9b6b82f8d3e5"` [INFO] [stdout] a7dc0e57de4b0b5a13c467efec1cf9e7f5498912f2443f4dd65e9b6b82f8d3e5 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-5/beta-2019-08-13:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/wolf1996/ws_battlecity:/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=warn" "-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" "+beta-2019-08-13" "test" "--frozen" "--no-run"` [INFO] [stdout] b602a518af7d7b06e42289c02f6a6766b95575e197654887a58187f4ce7cefb0 [INFO] running `"docker" "start" "-a" "b602a518af7d7b06e42289c02f6a6766b95575e197654887a58187f4ce7cefb0"` [INFO] [stderr] Compiling battle_city v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/errors.rs:24:32 [INFO] [stderr] | [INFO] [stderr] 24 | fn cause(&self) -> Option<&error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [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/app/errors.rs:51:32 [INFO] [stderr] | [INFO] [stderr] 51 | fn cause(&self) -> Option<&error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/errors.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | fn cause(&self) -> Option<&error::Error> { [INFO] [stderr] | ^^^^^^^^^^^^ help: use `dyn`: `dyn error::Error` [INFO] [stderr] [INFO] [stderr] warning: unused import: `GameLogicError` [INFO] [stderr] --> src/app/game/logic.rs:6:25 [INFO] [stderr] | [INFO] [stderr] 6 | use app::game::errors::{GameLogicError, LogicResult}; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Serialize` [INFO] [stderr] --> src/app/game/logic.rs:14:18 [INFO] [stderr] | [INFO] [stderr] 14 | use serde::ser::{Serialize, Serializer, SerializeSeq}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:22:32 [INFO] [stderr] | [INFO] [stderr] 22 | fn clone_box(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:26:32 [INFO] [stderr] | [INFO] [stderr] 26 | fn clone_box(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:31:20 [INFO] [stderr] | [INFO] [stderr] 31 | impl Clone for Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:32:28 [INFO] [stderr] | [INFO] [stderr] 32 | fn clone(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:122:23 [INFO] [stderr] | [INFO] [stderr] 122 | GameInfo (Vec>), [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:125:53 [INFO] [stderr] | [INFO] [stderr] 125 | fn info_object_serializer(to_serialize :&Vec>, serializer: S) -> Result where S: Serializer { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:139:43 [INFO] [stderr] | [INFO] [stderr] 139 | fn get_info(&self) -> LogicResult>; [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/logic.rs:204:63 [INFO] [stderr] | [INFO] [stderr] 204 | pub fn collect_info(&self) -> errors::LogicResult>> { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Position` [INFO] [stderr] --> src/app/game/tank.rs:2:24 [INFO] [stderr] | [INFO] [stderr] 2 | use app::game::logic::{Position, GameObject, MessageContainer, Events, Commands, InfoObject}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::rc::Rc` [INFO] [stderr] --> src/app/game/tank.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::rc::Rc; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/tank.rs:124:51 [INFO] [stderr] | [INFO] [stderr] 124 | fn get_info(&self) -> errors::LogicResult>{ [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::errors::GameLogicError` [INFO] [stderr] --> src/app/game/user.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use app::game::errors::GameLogicError; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::logic::Position` [INFO] [stderr] --> src/app/game/user.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use app::game::logic::Position; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::logic::Events` [INFO] [stderr] --> src/app/game/user.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use app::game::logic::Events; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::events::Broker` [INFO] [stderr] --> src/app/game/user.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | use app::game::events::Broker; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/user.rs:22:33 [INFO] [stderr] | [INFO] [stderr] 22 | units : Vec>>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/user.rs:76:51 [INFO] [stderr] | [INFO] [stderr] 76 | fn get_info(&self) -> errors::LogicResult>{ [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unused import: `app::game::logic::Events as MessageEvents` [INFO] [stderr] --> src/app/game/events.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use app::game::logic::Events as MessageEvents; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:14:45 [INFO] [stderr] | [INFO] [stderr] 14 | channels :HashMap>>>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:15:41 [INFO] [stderr] | [INFO] [stderr] 15 | units :HashMap>>, [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:52:52 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn add_system(&mut self, gobjo: Rc>) -> errors::LogicResult<()> { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn GameObject` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/events.rs:101:63 [INFO] [stderr] | [INFO] [stderr] 101 | pub fn collect_info(&self) -> errors::LogicResult>> { [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/app/game/map.rs:68:24 [INFO] [stderr] | [INFO] [stderr] 68 | if ((ycoll < 0.0) && (xcoll < 0.0)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/app/game/map.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | if ((ycoll < 0.0) && (xcoll < 0.0)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `Events` [INFO] [stderr] --> src/app/game/mapobj.rs:1:61 [INFO] [stderr] | [INFO] [stderr] 1 | use app::game::logic::{GameObject,EventContainer,EventsList,Events, InfoObject}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `erased_serde` [INFO] [stderr] --> src/app/game/mapobj.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use erased_serde; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `serde` [INFO] [stderr] --> src/app/game/mapobj.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use serde; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/app/game/mapobj.rs:40:43 [INFO] [stderr] | [INFO] [stderr] 40 | fn get_info(&self) -> LogicResult>{ [INFO] [stderr] | ^^^^^^^^^^ help: use `dyn`: `dyn InfoObject` [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/app/handler.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 73 | Ok(()) [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable expression [INFO] [stderr] --> src/app/game/tank.rs:48:9 [INFO] [stderr] | [INFO] [stderr] 48 | Ok(vec![Events::ChangeDirection{dir:self.dir.clone() },],) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::borrow::Borrow` [INFO] [stderr] --> src/app/game/user.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use std::borrow::Borrow; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/tank.rs:57:41 [INFO] [stderr] | [INFO] [stderr] 57 | fn moving_command_process(&mut self,brok: &mut events::Broker, map: &mut GameField, dir: Direction) -> errors::LogicResult>{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/tank.rs:57:68 [INFO] [stderr] | [INFO] [stderr] 57 | fn moving_command_process(&mut self,brok: &mut events::Broker, map: &mut GameField, dir: Direction) -> errors::LogicResult>{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/user.rs:54:27 [INFO] [stderr] | [INFO] [stderr] 54 | fn process(&mut self, brok: &mut events::Broker, map: &mut GameField, msg : EventContainer) -> errors::LogicResult{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/user.rs:54:54 [INFO] [stderr] | [INFO] [stderr] 54 | fn process(&mut self, brok: &mut events::Broker, map: &mut GameField, msg : EventContainer) -> errors::LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `unit` [INFO] [stderr] --> src/app/game/events.rs:24:14 [INFO] [stderr] | [INFO] [stderr] 24 | for (unit, gobj) in self.units.clone().iter() { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_unit` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/app/game/events.rs:103:18 [INFO] [stderr] | [INFO] [stderr] 103 | for (ref i, ref j) in self.units.iter(){ [INFO] [stderr] | ^ help: consider prefixing with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `default` [INFO] [stderr] --> src/app/game/map.rs:72:29 [INFO] [stderr] | [INFO] [stderr] 72 | default => unimplemented!() [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_default` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `default` [INFO] [stderr] --> src/app/game/map.rs:82:29 [INFO] [stderr] | [INFO] [stderr] 82 | default => unimplemented!() [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_default` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/map.rs:94:33 [INFO] [stderr] | [INFO] [stderr] 94 | pub fn move_unit(&mut self, brok :&mut Broker, ind: usize, dir: Direction, d :usize) -> errors::LogicResult> { [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/mapobj.rs:31:28 [INFO] [stderr] | [INFO] [stderr] 31 | fn process (&mut self, brok: &mut events::Broker, map: &mut GameField, msg :EventContainer) -> LogicResult{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/mapobj.rs:31:56 [INFO] [stderr] | [INFO] [stderr] 31 | fn process (&mut self, brok: &mut events::Broker, map: &mut GameField, msg :EventContainer) -> LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `msg` [INFO] [stderr] --> src/app/game/mapobj.rs:31:77 [INFO] [stderr] | [INFO] [stderr] 31 | fn process (&mut self, brok: &mut events::Broker, map: &mut GameField, msg :EventContainer) -> LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_msg` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `brok` [INFO] [stderr] --> src/app/game/mapobj.rs:34:25 [INFO] [stderr] | [INFO] [stderr] 34 | fn tick (&mut self, brok: &mut events::Broker, map: &mut GameField) -> LogicResult{ [INFO] [stderr] | ^^^^ help: consider prefixing with an underscore: `_brok` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `map` [INFO] [stderr] --> src/app/game/mapobj.rs:34:54 [INFO] [stderr] | [INFO] [stderr] 34 | fn tick (&mut self, brok: &mut events::Broker, map: &mut GameField) -> LogicResult{ [INFO] [stderr] | ^^^ help: consider prefixing with an underscore: `_map` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/message_manager.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let mut rms = rms_arc.as_ref(); [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/app/message_manager.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let mut msg : logic::Message = serde_json::from_str(&mgg[..]).unwrap(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/logic.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | for mut msg in &mut self.channel.try_iter(){ [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/logic.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | let mut us = User::new(key); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/logic.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | let mut info = self.collect_info()?; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/logic.rs:180:13 [INFO] [stderr] | [INFO] [stderr] 180 | let mut infoevent = EventContainer{unit: SYSTEM, evs: Events::GameInfo(info)}; [INFO] [stderr] | ----^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/tank.rs:91:17 [INFO] [stderr] | [INFO] [stderr] 91 | let mut ev = EventContainer{ [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/events.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let mut brok = Broker{units: HashMap::new() ,channels: HashMap::new(), counter: SYSTEM}; [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/app/game/events.rs:104:17 [INFO] [stderr] | [INFO] [stderr] 104 | let mut e2 = RefCell::borrow(j).get_info()?; [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: private trait `app::game::logic::InfoObjectClone` in public interface (error E0445) [INFO] [stderr] --> src/app/game/logic.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | / pub trait InfoObject: ESerialize + Send + Debug + InfoObjectClone{ [INFO] [stderr] 19 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(private_in_public)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #34537 [INFO] [stderr] [INFO] [stderr] warning: method is never used: `add_player` [INFO] [stderr] --> src/app/room_manager.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn add_player(&self, msg: inf_logic::MessageContainer)-> Result<(), MessageHandlerError>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `remove_player` [INFO] [stderr] --> src/app/room_manager.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 40 | pub fn remove_player(&self, msg: inf_logic::MessageContainer)-> Result<(), MessageHandlerError>{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `ChannelWrapper` [INFO] [stderr] --> src/app/logic.rs:14:1 [INFO] [stderr] | [INFO] [stderr] 14 | struct ChannelWrapper { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Fire` [INFO] [stderr] --> src/app/game/logic.rs:105:5 [INFO] [stderr] | [INFO] [stderr] 105 | / Fire { [INFO] [stderr] 106 | | pos :Position, [INFO] [stderr] 107 | | dir :Direction, [INFO] [stderr] 108 | | }, [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_position` [INFO] [stderr] --> src/app/game/map.rs:43:5 [INFO] [stderr] | [INFO] [stderr] 43 | pub fn get_position(&self, ind: usize) -> errors::LogicResult{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/app/handler.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | self.system.send(system_message); [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/app/room_manager.rs:52:9 [INFO] [stderr] | [INFO] [stderr] 52 | self.out.lock().unwrap().send(rc); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/responce_manager.rs:16:9 [INFO] [stderr] | [INFO] [stderr] 16 | j.send(msg_str); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/logic.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | RefCell::borrow_mut(&mut self.logic.system).add_system(refu.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: the `delta:` in this pattern is redundant [INFO] [stderr] --> src/app/game/tank.rs:102:29 [INFO] [stderr] | [INFO] [stderr] 102 | Status::Moving{ delta: delta} => { [INFO] [stderr] | ------^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_shorthand_field_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/app/game/user.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | stm.add_system(tankref.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/user.rs:47:9 [INFO] [stderr] | [INFO] [stderr] 47 | stm.subscribe((*tankref).borrow().key(), self.id.clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/map.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | brok.add_system(wl); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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/app/game/map.rs:36:9 [INFO] [stderr] | [INFO] [stderr] 36 | brok.add_system(wl); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.87s [INFO] running `"docker" "inspect" "b602a518af7d7b06e42289c02f6a6766b95575e197654887a58187f4ce7cefb0"` [INFO] running `"docker" "rm" "-f" "b602a518af7d7b06e42289c02f6a6766b95575e197654887a58187f4ce7cefb0"` [INFO] [stdout] b602a518af7d7b06e42289c02f6a6766b95575e197654887a58187f4ce7cefb0 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/beta-1.38-1/worker-5/beta-2019-08-13:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/beta-1.38-1/sources/beta-2019-08-13/gh/wolf1996/ws_battlecity:/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=warn" "-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" "+beta-2019-08-13" "test" "--frozen"` [INFO] [stdout] 6532dd1cbbbb82761c4215bc7ba5523723d7ad9e884f77188525d661d825e3e5 [INFO] running `"docker" "start" "-a" "6532dd1cbbbb82761c4215bc7ba5523723d7ad9e884f77188525d661d825e3e5"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.05s [INFO] [stderr] Running /opt/crater/target/debug/deps/battle_city-5b20c7efa6f71670 [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "6532dd1cbbbb82761c4215bc7ba5523723d7ad9e884f77188525d661d825e3e5"` [INFO] running `"docker" "rm" "-f" "6532dd1cbbbb82761c4215bc7ba5523723d7ad9e884f77188525d661d825e3e5"` [INFO] [stdout] 6532dd1cbbbb82761c4215bc7ba5523723d7ad9e884f77188525d661d825e3e5