[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] testing furuhama/design_patterns_in_rust against 1.60.0 for beta-1.61-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffuruhama%2Fdesign_patterns_in_rust" "/workspace/builds/worker-17/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-17/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/furuhama/design_patterns_in_rust on toolchain 1.60.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.60.0" "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-17/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" "+1.60.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5b85c0aaaaca8beb150b4dae8a0966e4a1df943b7a61d5be3a706d1d6109d8ea [INFO] running `Command { std: "docker" "start" "-a" "5b85c0aaaaca8beb150b4dae8a0966e4a1df943b7a61d5be3a706d1d6109d8ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5b85c0aaaaca8beb150b4dae8a0966e4a1df943b7a61d5be3a706d1d6109d8ea", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5b85c0aaaaca8beb150b4dae8a0966e4a1df943b7a61d5be3a706d1d6109d8ea", kill_on_drop: false }` [INFO] [stdout] 5b85c0aaaaca8beb150b4dae8a0966e4a1df943b7a61d5be3a706d1d6109d8ea [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/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=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 564c348cae92f7063061030f3da5112bd3d245d6f76d43519466c1d8b2a6d2db [INFO] running `Command { std: "docker" "start" "-a" "564c348cae92f7063061030f3da5112bd3d245d6f76d43519466c1d8b2a6d2db", kill_on_drop: false }` [INFO] [stderr] Compiling 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:53:22 [INFO] [stdout] | [INFO] [stdout] 53 | history: Vec>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 53 - history: Vec>, [INFO] [stdout] 53 + history: Vec>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 - observers: Vec<(bool, Box>)>, [INFO] [stdout] 51 + observers: Vec<(bool, Box>)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 - type BinaryFn = Fn(T, T) -> T; [INFO] [stdout] 23 + type BinaryFn = dyn Fn(T, T) -> T; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 102 - builder: Box, [INFO] [stdout] 102 + builder: Box, [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 58 - next: Option>, [INFO] [stdout] 58 + next: Option>, [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 - fn generate_memento(&self) -> Box; [INFO] [stdout] 20 + fn generate_memento(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 - fn restore_from_memento(&mut self, _: &Memento); [INFO] [stdout] 21 + fn restore_from_memento(&mut self, _: &dyn Memento); [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - fn add_memento(&mut self, _: Box); [INFO] [stdout] 25 + fn add_memento(&mut self, _: Box); [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - fn get_memento(&mut self, _: usize) -> &Memento; [INFO] [stdout] 26 + fn get_memento(&mut self, _: usize) -> &dyn Memento; [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 - fn generate_memento(&self) -> Box { [INFO] [stdout] 36 + fn generate_memento(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 - fn restore_from_memento(&mut self, m: &Memento) { [INFO] [stdout] 40 + fn restore_from_memento(&mut self, m: &dyn Memento) { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 - fn add_memento(&mut self, m: Box) { [INFO] [stdout] 65 + fn add_memento(&mut self, m: Box) { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - fn get_memento(&mut self, index: usize) -> &Memento { [INFO] [stdout] 69 + fn get_memento(&mut self, index: usize) -> &dyn Memento { [INFO] [stdout] | [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] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] 46 + fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 71 - fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] 71 + fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] | [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] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 95 - fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] 95 + fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 89 - fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] 89 + fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 - fn create_product_x(&self) -> Box; [INFO] [stdout] 23 + fn create_product_x(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - fn create_product_y(&self) -> Box; [INFO] [stdout] 24 + fn create_product_y(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 - fn create_product_x(&self) -> Box { [INFO] [stdout] 64 + fn create_product_x(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 - fn create_product_y(&self) -> Box { [INFO] [stdout] 68 + fn create_product_y(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 75 - fn create_product_x(&self) -> Box { [INFO] [stdout] 75 + fn create_product_x(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 - fn create_product_y(&self) -> Box { [INFO] [stdout] 79 + fn create_product_y(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 106 - fn new(builder: Box) -> Self { [INFO] [stdout] 106 + fn new(builder: Box) -> Self { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - fn process_request(&self, _: &mut Request); [INFO] [stdout] 18 + fn process_request(&self, _: &mut dyn Request); [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 63 - fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] 63 + fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 72 - fn process_request(&self, req: &mut Request) { [INFO] [stdout] 72 + fn process_request(&self, req: &mut dyn Request) { [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - fn process(c: &Component) { [INFO] [stdout] 48 + fn process(c: &dyn Component) { [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 - hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] 12 + hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] 13 + hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] 14 + hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 - Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] 65 + Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] 69 + Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 76 - Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] 76 + Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 - Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] 80 + Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 35 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.38s [INFO] running `Command { std: "docker" "inspect" "564c348cae92f7063061030f3da5112bd3d245d6f76d43519466c1d8b2a6d2db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "564c348cae92f7063061030f3da5112bd3d245d6f76d43519466c1d8b2a6d2db", kill_on_drop: false }` [INFO] [stdout] 564c348cae92f7063061030f3da5112bd3d245d6f76d43519466c1d8b2a6d2db [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/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=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7dd9313e64db09bef06a3c4a411277ca9917b7e9f94108f9767a8c71cef024a7 [INFO] running `Command { std: "docker" "start" "-a" "7dd9313e64db09bef06a3c4a411277ca9917b7e9f94108f9767a8c71cef024a7", kill_on_drop: false }` [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 53 - history: Vec>, [INFO] [stdout] 53 + history: Vec>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 - observers: Vec<(bool, Box>)>, [INFO] [stdout] 51 + observers: Vec<(bool, Box>)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 - type BinaryFn = Fn(T, T) -> T; [INFO] [stdout] 23 + type BinaryFn = dyn Fn(T, T) -> T; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 102 - builder: Box, [INFO] [stdout] 102 + builder: Box, [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 58 - next: Option>, [INFO] [stdout] 58 + next: Option>, [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 - fn generate_memento(&self) -> Box; [INFO] [stdout] 20 + fn generate_memento(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 - fn restore_from_memento(&mut self, _: &Memento); [INFO] [stdout] 21 + fn restore_from_memento(&mut self, _: &dyn Memento); [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - fn add_memento(&mut self, _: Box); [INFO] [stdout] 25 + fn add_memento(&mut self, _: Box); [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - fn get_memento(&mut self, _: usize) -> &Memento; [INFO] [stdout] 26 + fn get_memento(&mut self, _: usize) -> &dyn Memento; [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 - fn generate_memento(&self) -> Box { [INFO] [stdout] 36 + fn generate_memento(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 - fn restore_from_memento(&mut self, m: &Memento) { [INFO] [stdout] 40 + fn restore_from_memento(&mut self, m: &dyn Memento) { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 - fn add_memento(&mut self, m: Box) { [INFO] [stdout] 65 + fn add_memento(&mut self, m: Box) { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - fn get_memento(&mut self, index: usize) -> &Memento { [INFO] [stdout] 69 + fn get_memento(&mut self, index: usize) -> &dyn Memento { [INFO] [stdout] | [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] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] 46 + fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 71 - fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] 71 + fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] | [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] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 95 - fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] 95 + fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 89 - fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] 89 + fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 - fn create_product_x(&self) -> Box; [INFO] [stdout] 23 + fn create_product_x(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - fn create_product_y(&self) -> Box; [INFO] [stdout] 24 + fn create_product_y(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 - fn create_product_x(&self) -> Box { [INFO] [stdout] 64 + fn create_product_x(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 - fn create_product_y(&self) -> Box { [INFO] [stdout] 68 + fn create_product_y(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 75 - fn create_product_x(&self) -> Box { [INFO] [stdout] 75 + fn create_product_x(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 - fn create_product_y(&self) -> Box { [INFO] [stdout] 79 + fn create_product_y(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 106 - fn new(builder: Box) -> Self { [INFO] [stdout] 106 + fn new(builder: Box) -> Self { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - fn process_request(&self, _: &mut Request); [INFO] [stdout] 18 + fn process_request(&self, _: &mut dyn Request); [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 63 - fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] 63 + fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 72 - fn process_request(&self, req: &mut Request) { [INFO] [stdout] 72 + fn process_request(&self, req: &mut dyn Request) { [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - fn process(c: &Component) { [INFO] [stdout] 48 + fn process(c: &dyn Component) { [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 - hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] 12 + hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] 13 + hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] 14 + hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 - Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] 65 + Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] 69 + Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 76 - Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] 76 + Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 - Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] 80 + Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 35 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling 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:53:22 [INFO] [stdout] | [INFO] [stdout] 53 | history: Vec>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 53 - history: Vec>, [INFO] [stdout] 53 + history: Vec>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 51 - observers: Vec<(bool, Box>)>, [INFO] [stdout] 51 + observers: Vec<(bool, Box>)>, [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 - type BinaryFn = Fn(T, T) -> T; [INFO] [stdout] 23 + type BinaryFn = dyn Fn(T, T) -> T; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 102 - builder: Box, [INFO] [stdout] 102 + builder: Box, [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 58 - next: Option>, [INFO] [stdout] 58 + next: Option>, [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 20 - fn generate_memento(&self) -> Box; [INFO] [stdout] 20 + fn generate_memento(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 - fn restore_from_memento(&mut self, _: &Memento); [INFO] [stdout] 21 + fn restore_from_memento(&mut self, _: &dyn Memento); [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 25 - fn add_memento(&mut self, _: Box); [INFO] [stdout] 25 + fn add_memento(&mut self, _: Box); [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 - fn get_memento(&mut self, _: usize) -> &Memento; [INFO] [stdout] 26 + fn get_memento(&mut self, _: usize) -> &dyn Memento; [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 36 - fn generate_memento(&self) -> Box { [INFO] [stdout] 36 + fn generate_memento(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 40 - fn restore_from_memento(&mut self, m: &Memento) { [INFO] [stdout] 40 + fn restore_from_memento(&mut self, m: &dyn Memento) { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 - fn add_memento(&mut self, m: Box) { [INFO] [stdout] 65 + fn add_memento(&mut self, m: Box) { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - fn get_memento(&mut self, index: usize) -> &Memento { [INFO] [stdout] 69 + fn get_memento(&mut self, index: usize) -> &dyn Memento { [INFO] [stdout] | [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] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 46 - fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] 46 + fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 71 - fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] 71 + fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stdout] | [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] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 95 - fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] 95 + fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 89 - fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] 89 + fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 - fn create_product_x(&self) -> Box; [INFO] [stdout] 23 + fn create_product_x(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 24 - fn create_product_y(&self) -> Box; [INFO] [stdout] 24 + fn create_product_y(&self) -> Box; [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 64 - fn create_product_x(&self) -> Box { [INFO] [stdout] 64 + fn create_product_x(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 68 - fn create_product_y(&self) -> Box { [INFO] [stdout] 68 + fn create_product_y(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 75 - fn create_product_x(&self) -> Box { [INFO] [stdout] 75 + fn create_product_x(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 - fn create_product_y(&self) -> Box { [INFO] [stdout] 79 + fn create_product_y(&self) -> Box { [INFO] [stdout] | [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] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 106 - fn new(builder: Box) -> Self { [INFO] [stdout] 106 + fn new(builder: Box) -> Self { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 18 - fn process_request(&self, _: &mut Request); [INFO] [stdout] 18 + fn process_request(&self, _: &mut dyn Request); [INFO] [stdout] | [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] | ^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 63 - fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] 63 + fn new(level: Level, next: Option>) -> Self { [INFO] [stdout] | [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] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 72 - fn process_request(&self, req: &mut Request) { [INFO] [stdout] 72 + fn process_request(&self, req: &mut dyn Request) { [INFO] [stdout] | [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] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 48 - fn process(c: &Component) { [INFO] [stdout] 48 + fn process(c: &dyn Component) { [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 12 - hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] 12 + hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 13 - hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] 13 + hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stdout] | [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] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 14 - hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] 14 + hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 65 - Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] 65 + Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 69 - Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] 69 + Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 76 - Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] 76 + Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stdout] | [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] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 80 - Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] 80 + Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 35 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.48s [INFO] running `Command { std: "docker" "inspect" "7dd9313e64db09bef06a3c4a411277ca9917b7e9f94108f9767a8c71cef024a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7dd9313e64db09bef06a3c4a411277ca9917b7e9f94108f9767a8c71cef024a7", kill_on_drop: false }` [INFO] [stdout] 7dd9313e64db09bef06a3c4a411277ca9917b7e9f94108f9767a8c71cef024a7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-17/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=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+1.60.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 257a4c9506052cac4c0f05f2931f8306d8e84da9fabbb3fe6b1a7cbda124c34f [INFO] running `Command { std: "docker" "start" "-a" "257a4c9506052cac4c0f05f2931f8306d8e84da9fabbb3fe6b1a7cbda124c34f", kill_on_drop: false }` [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:53:22 [INFO] [stderr] | [INFO] [stderr] 53 | history: Vec>, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 53 - history: Vec>, [INFO] [stderr] 53 + history: Vec>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/observer.rs:51:31 [INFO] [stderr] | [INFO] [stderr] 51 | observers: Vec<(bool, Box>)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 51 - observers: Vec<(bool, Box>)>, [INFO] [stderr] 51 + observers: Vec<(bool, Box>)>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/strategy.rs:23:20 [INFO] [stderr] | [INFO] [stderr] 23 | type BinaryFn = Fn(T, T) -> T; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 23 - type BinaryFn = Fn(T, T) -> T; [INFO] [stderr] 23 + type BinaryFn = dyn Fn(T, T) -> T; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/builder.rs:102:18 [INFO] [stderr] | [INFO] [stderr] 102 | builder: Box, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 102 - builder: Box, [INFO] [stderr] 102 + builder: Box, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/chain_of_responsibility.rs:58:22 [INFO] [stderr] | [INFO] [stderr] 58 | next: Option>, [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 58 - next: Option>, [INFO] [stderr] 58 + next: Option>, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:20:39 [INFO] [stderr] | [INFO] [stderr] 20 | fn generate_memento(&self) -> Box; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 20 - fn generate_memento(&self) -> Box; [INFO] [stderr] 20 + fn generate_memento(&self) -> Box; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:21:44 [INFO] [stderr] | [INFO] [stderr] 21 | fn restore_from_memento(&mut self, _: &Memento); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 21 - fn restore_from_memento(&mut self, _: &Memento); [INFO] [stderr] 21 + fn restore_from_memento(&mut self, _: &dyn Memento); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:25:38 [INFO] [stderr] | [INFO] [stderr] 25 | fn add_memento(&mut self, _: Box); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 25 - fn add_memento(&mut self, _: Box); [INFO] [stderr] 25 + fn add_memento(&mut self, _: Box); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:26:45 [INFO] [stderr] | [INFO] [stderr] 26 | fn get_memento(&mut self, _: usize) -> &Memento; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 26 - fn get_memento(&mut self, _: usize) -> &Memento; [INFO] [stderr] 26 + fn get_memento(&mut self, _: usize) -> &dyn Memento; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:36:39 [INFO] [stderr] | [INFO] [stderr] 36 | fn generate_memento(&self) -> Box { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 36 - fn generate_memento(&self) -> Box { [INFO] [stderr] 36 + fn generate_memento(&self) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:40:44 [INFO] [stderr] | [INFO] [stderr] 40 | fn restore_from_memento(&mut self, m: &Memento) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 40 - fn restore_from_memento(&mut self, m: &Memento) { [INFO] [stderr] 40 + fn restore_from_memento(&mut self, m: &dyn Memento) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:65:38 [INFO] [stderr] | [INFO] [stderr] 65 | fn add_memento(&mut self, m: Box) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 65 - fn add_memento(&mut self, m: Box) { [INFO] [stderr] 65 + fn add_memento(&mut self, m: Box) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/memento.rs:69:49 [INFO] [stderr] | [INFO] [stderr] 69 | fn get_memento(&mut self, index: usize) -> &Memento { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 69 - fn get_memento(&mut self, index: usize) -> &Memento { [INFO] [stderr] 69 + fn get_memento(&mut self, index: usize) -> &dyn Memento { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/observer.rs:46:44 [INFO] [stderr] | [INFO] [stderr] 46 | fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 46 - fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stderr] 46 + fn register_observer(&mut self, _: Box>) -> usize; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/observer.rs:71:51 [INFO] [stderr] | [INFO] [stderr] 71 | fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 71 - fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stderr] 71 + fn register_observer(&mut self, observer: Box>) -> usize { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/state.rs:95:66 [INFO] [stderr] | [INFO] [stderr] 95 | fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 95 - fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stderr] 95 + fn press_button<'a>(&mut self, hmap: &HashMap>) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:89:46 [INFO] [stderr] | [INFO] [stderr] 89 | fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 89 - fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stderr] 89 + fn create_factory<'a>(id: &FactoryID) -> Box + 'a> { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:23:39 [INFO] [stderr] | [INFO] [stderr] 23 | fn create_product_x(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 23 - fn create_product_x(&self) -> Box; [INFO] [stderr] 23 + fn create_product_x(&self) -> Box; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:24:39 [INFO] [stderr] | [INFO] [stderr] 24 | fn create_product_y(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 24 - fn create_product_y(&self) -> Box; [INFO] [stderr] 24 + fn create_product_y(&self) -> Box; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:64:39 [INFO] [stderr] | [INFO] [stderr] 64 | fn create_product_x(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 64 - fn create_product_x(&self) -> Box { [INFO] [stderr] 64 + fn create_product_x(&self) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:68:39 [INFO] [stderr] | [INFO] [stderr] 68 | fn create_product_y(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 68 - fn create_product_y(&self) -> Box { [INFO] [stderr] 68 + fn create_product_y(&self) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:75:39 [INFO] [stderr] | [INFO] [stderr] 75 | fn create_product_x(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 75 - fn create_product_x(&self) -> Box { [INFO] [stderr] 75 + fn create_product_x(&self) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:79:39 [INFO] [stderr] | [INFO] [stderr] 79 | fn create_product_y(&self) -> Box { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 79 - fn create_product_y(&self) -> Box { [INFO] [stderr] 79 + fn create_product_y(&self) -> Box { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/builder.rs:106:25 [INFO] [stderr] | [INFO] [stderr] 106 | fn new(builder: Box) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 106 - fn new(builder: Box) -> Self { [INFO] [stderr] 106 + fn new(builder: Box) -> Self { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/chain_of_responsibility.rs:18:39 [INFO] [stderr] | [INFO] [stderr] 18 | fn process_request(&self, _: &mut Request); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 18 - fn process_request(&self, _: &mut Request); [INFO] [stderr] 18 + fn process_request(&self, _: &mut dyn Request); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/chain_of_responsibility.rs:63:43 [INFO] [stderr] | [INFO] [stderr] 63 | fn new(level: Level, next: Option>) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 63 - fn new(level: Level, next: Option>) -> Self { [INFO] [stderr] 63 + fn new(level: Level, next: Option>) -> Self { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/chain_of_responsibility.rs:72:41 [INFO] [stderr] | [INFO] [stderr] 72 | fn process_request(&self, req: &mut Request) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 72 - fn process_request(&self, req: &mut Request) { [INFO] [stderr] 72 + fn process_request(&self, req: &mut dyn Request) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/decorator.rs:48:16 [INFO] [stderr] | [INFO] [stderr] 48 | fn process(c: &Component) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 48 - fn process(c: &Component) { [INFO] [stderr] 48 + fn process(c: &dyn Component) { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/state.rs:12:67 [INFO] [stderr] | [INFO] [stderr] 12 | hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 12 - hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stderr] 12 + hmap.insert(StateDice::PowerOn, Box::new(StatePowerOn) as Box); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/state.rs:13:65 [INFO] [stderr] | [INFO] [stderr] 13 | hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 13 - hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stderr] 13 + hmap.insert(StateDice::StopDice, Box::new(StateStop) as Box); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/state.rs:14:69 [INFO] [stderr] | [INFO] [stderr] 14 | hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 14 - hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stderr] 14 + hmap.insert(StateDice::PowerOff, Box::new(StatePowerOff) as Box); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:65:72 [INFO] [stderr] | [INFO] [stderr] 65 | Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 65 - Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stderr] 65 + Box::new(ConcreteProductX::new("FactoryA".to_string())) as Box [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:69:72 [INFO] [stderr] | [INFO] [stderr] 69 | Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 69 - Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stderr] 69 + Box::new(ConcreteProductY::new("FactoryA".to_string())) as Box [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:76:72 [INFO] [stderr] | [INFO] [stderr] 76 | Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 76 - Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stderr] 76 + Box::new(ConcreteProductX::new("FactoryB".to_string())) as Box [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/patterns/template_method.rs:80:72 [INFO] [stderr] | [INFO] [stderr] 80 | Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stderr] = note: for more information, see [INFO] [stderr] help: use `dyn` [INFO] [stderr] | [INFO] [stderr] 80 - Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stderr] 80 + Box::new(ConcreteProductY::new("FactoryB".to_string())) as Box [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `design_pattern_in_rust` (lib) generated 35 warnings [INFO] [stderr] warning: `design_pattern_in_rust` (lib test) generated 35 warnings (35 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.00s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/design_pattern_in_rust-934a27cae47583dd) [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; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/design_pattern_in_rust-0568b441c8c79d21) [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; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests design_pattern_in_rust [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; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "257a4c9506052cac4c0f05f2931f8306d8e84da9fabbb3fe6b1a7cbda124c34f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "257a4c9506052cac4c0f05f2931f8306d8e84da9fabbb3fe6b1a7cbda124c34f", kill_on_drop: false }` [INFO] [stdout] 257a4c9506052cac4c0f05f2931f8306d8e84da9fabbb3fe6b1a7cbda124c34f