[INFO] cloning repository https://github.com/furuhama/design_patterns_in_rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/furuhama/design_patterns_in_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuruhama%2Fdesign_patterns_in_rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuruhama%2Fdesign_patterns_in_rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4f28215061cbca47aa818df3af83dc1557b5d6a8 [INFO] checking furuhama/design_patterns_in_rust against try#8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 for pr-82565 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuruhama%2Fdesign_patterns_in_rust" "/workspace/builds/worker-8/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/furuhama/design_patterns_in_rust on toolchain 8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/furuhama/design_patterns_in_rust [INFO] finished tweaking git repo https://github.com/furuhama/design_patterns_in_rust [INFO] tweaked toml for git repo https://github.com/furuhama/design_patterns_in_rust written to /workspace/builds/worker-8/source/Cargo.toml [INFO] crate git repo https://github.com/furuhama/design_patterns_in_rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] d83e7eb1fb32df291fda2e92ee90d7658faa9c7e477bc0276eb1adaefc2667f8 [INFO] running `Command { std: "docker" "start" "-a" "d83e7eb1fb32df291fda2e92ee90d7658faa9c7e477bc0276eb1adaefc2667f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d83e7eb1fb32df291fda2e92ee90d7658faa9c7e477bc0276eb1adaefc2667f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d83e7eb1fb32df291fda2e92ee90d7658faa9c7e477bc0276eb1adaefc2667f8", kill_on_drop: false }` [INFO] [stdout] d83e7eb1fb32df291fda2e92ee90d7658faa9c7e477bc0276eb1adaefc2667f8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 71e6388662d34b27920589de6e0ef0df72e6311d0330c57cb4ef28100d457f0b [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "71e6388662d34b27920589de6e0ef0df72e6311d0330c57cb4ef28100d457f0b", kill_on_drop: false }` [INFO] [stderr] Checking design_pattern_in_rust v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:20:39 [INFO] [stdout] | [INFO] [stdout] 20 | fn generate_memento(&self) -> Box; [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:21:44 [INFO] [stdout] | [INFO] [stdout] 21 | fn restore_from_memento(&mut self, _: &Memento); [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:25:38 [INFO] [stdout] | [INFO] [stdout] 25 | fn add_memento(&mut self, _: Box); [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | fn get_memento(&mut self, _: usize) -> &Memento; [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | fn generate_memento(&self) -> Box { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:40:44 [INFO] [stdout] | [INFO] [stdout] 40 | fn restore_from_memento(&mut self, m: &Memento) { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:53:22 [INFO] [stdout] | [INFO] [stdout] 53 | history: Vec>, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:65:38 [INFO] [stdout] | [INFO] [stdout] 65 | fn add_memento(&mut self, m: Box) { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:69:49 [INFO] [stdout] | [INFO] [stdout] 69 | fn get_memento(&mut self, index: usize) -> &Memento { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/observer.rs:46:44 [INFO] [stdout] | [INFO] [stdout] 46 | fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Observer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/observer.rs:51:31 [INFO] [stdout] | [INFO] [stdout] 51 | observers: Vec<(bool, Box>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Observer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/observer.rs:71:51 [INFO] [stdout] | [INFO] [stdout] 71 | fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Observer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:12:67 [INFO] [stdout] | [INFO] [stdout] 12 | hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn State` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:13:65 [INFO] [stdout] | [INFO] [stdout] 13 | hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn State` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:14:69 [INFO] [stdout] | [INFO] [stdout] 14 | hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn State` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:95:66 [INFO] [stdout] | [INFO] [stdout] 95 | fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn State + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/strategy.rs:23:20 [INFO] [stdout] | [INFO] [stdout] 23 | type BinaryFn = Fn(T, T) -> T; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:23:39 [INFO] [stdout] | [INFO] [stdout] 23 | fn create_product_x(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductX + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:24:39 [INFO] [stdout] | [INFO] [stdout] 24 | fn create_product_y(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductY + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:64:39 [INFO] [stdout] | [INFO] [stdout] 64 | fn create_product_x(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductX + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:65:72 [INFO] [stdout] | [INFO] [stdout] 65 | Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:68:39 [INFO] [stdout] | [INFO] [stdout] 68 | fn create_product_y(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductY + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:69:72 [INFO] [stdout] | [INFO] [stdout] 69 | Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductY` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:75:39 [INFO] [stdout] | [INFO] [stdout] 75 | fn create_product_x(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductX + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:76:72 [INFO] [stdout] | [INFO] [stdout] 76 | Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:79:39 [INFO] [stdout] | [INFO] [stdout] 79 | fn create_product_y(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductY + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:80:72 [INFO] [stdout] | [INFO] [stdout] 80 | Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductY` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:89:46 [INFO] [stdout] | [INFO] [stdout] 89 | fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn AbstractFactory<'a> + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/builder.rs:102:18 [INFO] [stdout] | [INFO] [stdout] 102 | builder: Box, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PersonBuilder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/builder.rs:106:25 [INFO] [stdout] | [INFO] [stdout] 106 | fn new(builder: Box) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PersonBuilder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:18:39 [INFO] [stdout] | [INFO] [stdout] 18 | fn process_request(&self, _: &mut Request); [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | next: Option>, [INFO] [stdout] | ^^^ help: use `dyn`: `dyn CoR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] | ^^^ help: use `dyn`: `dyn CoR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:72:41 [INFO] [stdout] | [INFO] [stdout] 72 | fn process_request(&self, req: &mut Request) { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/decorator.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | fn process(c: &Component) { [INFO] [stdout] | ^^^^^^^^^ help: use `dyn`: `dyn Component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:20:39 [INFO] [stdout] | [INFO] [stdout] 20 | fn generate_memento(&self) -> Box; [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:21:44 [INFO] [stdout] | [INFO] [stdout] 21 | fn restore_from_memento(&mut self, _: &Memento); [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:25:38 [INFO] [stdout] | [INFO] [stdout] 25 | fn add_memento(&mut self, _: Box); [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:26:45 [INFO] [stdout] | [INFO] [stdout] 26 | fn get_memento(&mut self, _: usize) -> &Memento; [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:36:39 [INFO] [stdout] | [INFO] [stdout] 36 | fn generate_memento(&self) -> Box { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:40:44 [INFO] [stdout] | [INFO] [stdout] 40 | fn restore_from_memento(&mut self, m: &Memento) { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:53:22 [INFO] [stdout] | [INFO] [stdout] 53 | history: Vec>, [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:65:38 [INFO] [stdout] | [INFO] [stdout] 65 | fn add_memento(&mut self, m: Box) { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/memento.rs:69:49 [INFO] [stdout] | [INFO] [stdout] 69 | fn get_memento(&mut self, index: usize) -> &Memento { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Memento` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/observer.rs:46:44 [INFO] [stdout] | [INFO] [stdout] 46 | fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn Observer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/observer.rs:51:31 [INFO] [stdout] | [INFO] [stdout] 51 | observers: Vec<(bool, Box>)>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Observer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/observer.rs:71:51 [INFO] [stdout] | [INFO] [stdout] 71 | fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Observer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:12:67 [INFO] [stdout] | [INFO] [stdout] 12 | hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn State` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:13:65 [INFO] [stdout] | [INFO] [stdout] 13 | hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn State` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:14:69 [INFO] [stdout] | [INFO] [stdout] 14 | hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn State` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/state.rs:95:66 [INFO] [stdout] | [INFO] [stdout] 95 | fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] | ^^^^^^^^^^ help: use `dyn`: `dyn State + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/strategy.rs:23:20 [INFO] [stdout] | [INFO] [stdout] 23 | type BinaryFn = Fn(T, T) -> T; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:23:39 [INFO] [stdout] | [INFO] [stdout] 23 | fn create_product_x(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductX + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:24:39 [INFO] [stdout] | [INFO] [stdout] 24 | fn create_product_y(&self) -> Box; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductY + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:64:39 [INFO] [stdout] | [INFO] [stdout] 64 | fn create_product_x(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductX + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:65:72 [INFO] [stdout] | [INFO] [stdout] 65 | Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:68:39 [INFO] [stdout] | [INFO] [stdout] 68 | fn create_product_y(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductY + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:69:72 [INFO] [stdout] | [INFO] [stdout] 69 | Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductY` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:75:39 [INFO] [stdout] | [INFO] [stdout] 75 | fn create_product_x(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductX + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:76:72 [INFO] [stdout] | [INFO] [stdout] 76 | Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductX` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:79:39 [INFO] [stdout] | [INFO] [stdout] 79 | fn create_product_y(&self) -> Box { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn ProductY + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:80:72 [INFO] [stdout] | [INFO] [stdout] 80 | Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] | ^^^^^^^^ help: use `dyn`: `dyn ProductY` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/template_method.rs:89:46 [INFO] [stdout] | [INFO] [stdout] 89 | fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn AbstractFactory<'a> + 'a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/builder.rs:102:18 [INFO] [stdout] | [INFO] [stdout] 102 | builder: Box, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PersonBuilder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/builder.rs:106:25 [INFO] [stdout] | [INFO] [stdout] 106 | fn new(builder: Box) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn PersonBuilder` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:18:39 [INFO] [stdout] | [INFO] [stdout] 18 | fn process_request(&self, _: &mut Request); [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:58:22 [INFO] [stdout] | [INFO] [stdout] 58 | next: Option>, [INFO] [stdout] | ^^^ help: use `dyn`: `dyn CoR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:63:43 [INFO] [stdout] | [INFO] [stdout] 63 | fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] | ^^^ help: use `dyn`: `dyn CoR` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/chain_of_responsibility.rs:72:41 [INFO] [stdout] | [INFO] [stdout] 72 | fn process_request(&self, req: &mut Request) { [INFO] [stdout] | ^^^^^^^ help: use `dyn`: `dyn Request` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/patterns/decorator.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | fn process(c: &Component) { [INFO] [stdout] | ^^^^^^^^^ help: use `dyn`: `dyn Component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 35 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 35 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.94s [INFO] running `Command { std: "docker" "inspect" "71e6388662d34b27920589de6e0ef0df72e6311d0330c57cb4ef28100d457f0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "71e6388662d34b27920589de6e0ef0df72e6311d0330c57cb4ef28100d457f0b", kill_on_drop: false }` [INFO] [stdout] 71e6388662d34b27920589de6e0ef0df72e6311d0330c57cb4ef28100d457f0b