[INFO] updating cached repository https://github.com/frostRed/head_first_design_patterns_rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune", kill_on_drop: false }` [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 779447adaf64ad62404312d51b8363b8602c3552 [INFO] testing frostRed/head_first_design_patterns_rust against try#03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 for pr-74409 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfrostRed%2Fhead_first_design_patterns_rust" "/workspace/builds/worker-5/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/frostRed/head_first_design_patterns_rust on toolchain 03a1ea71b075ab964b5278bc6e74cd6c52c36ee0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/frostRed/head_first_design_patterns_rust [INFO] finished tweaking git repo https://github.com/frostRed/head_first_design_patterns_rust [INFO] tweaked toml for git repo https://github.com/frostRed/head_first_design_patterns_rust written to /workspace/builds/worker-5/source/Cargo.toml [INFO] crate git repo https://github.com/frostRed/head_first_design_patterns_rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 409d4b3d148bdeb21b021f0a09211e36546c85431faef49f2e0f12b98de4b921 [INFO] running `Command { std: "docker" "start" "-a" "409d4b3d148bdeb21b021f0a09211e36546c85431faef49f2e0f12b98de4b921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "409d4b3d148bdeb21b021f0a09211e36546c85431faef49f2e0f12b98de4b921", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "409d4b3d148bdeb21b021f0a09211e36546c85431faef49f2e0f12b98de4b921", kill_on_drop: false }` [INFO] [stdout] 409d4b3d148bdeb21b021f0a09211e36546c85431faef49f2e0f12b98de4b921 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8172981ba98824db6f04b0f5032c4713106fc147f7f1e65e3a8bc2e0940247d9 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "8172981ba98824db6f04b0f5032c4713106fc147f7f1e65e3a8bc2e0940247d9", kill_on_drop: false }` [INFO] [stderr] Compiling lazy_static v1.2.0 [INFO] [stderr] Compiling head_first_design_patterns v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary braces around block return value [INFO] [stdout] --> src/singleton.rs:50:49 [INFO] [stdout] | [INFO] [stdout] 50 | pub static ref C: RwLock = { RwLock::new(ChocolateBoiler::new()) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:19:48 [INFO] [stdout] | [INFO] [stdout] 19 | fn quack_behavior(&self) -> Rc>>; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:24:46 [INFO] [stdout] | [INFO] [stdout] 24 | fn fly_behavior(&self) -> Rc>>; [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:29:50 [INFO] [stdout] | [INFO] [stdout] 29 | fn set_fly_behavior(&self, fly_behavior: Box) { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:83:36 [INFO] [stdout] | [INFO] [stdout] 83 | quack_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:84:34 [INFO] [stdout] | [INFO] [stdout] 84 | fly_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:90:73 [INFO] [stdout] | [INFO] [stdout] 90 | let fly = Rc::new(RefCell::new(Box::new(FlyWithWings {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:91:68 [INFO] [stdout] | [INFO] [stdout] 91 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:103:48 [INFO] [stdout] | [INFO] [stdout] 103 | fn quack_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:106:46 [INFO] [stdout] | [INFO] [stdout] 106 | fn fly_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:113:36 [INFO] [stdout] | [INFO] [stdout] 113 | quack_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:114:34 [INFO] [stdout] | [INFO] [stdout] 114 | fly_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:119:69 [INFO] [stdout] | [INFO] [stdout] 119 | let fly = Rc::new(RefCell::new(Box::new(FlyNoWay {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:120:68 [INFO] [stdout] | [INFO] [stdout] 120 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:131:48 [INFO] [stdout] | [INFO] [stdout] 131 | fn quack_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:134:46 [INFO] [stdout] | [INFO] [stdout] 134 | fn fly_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/template_method.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::{self, Read}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Beverage`, `DarkRost`, `Espresso`, `HouseBlend`, `Mocha`, `Soy`, `Whip` [INFO] [stdout] --> src/lib.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::decorator::{Beverage, DarkRost, Espresso, HouseBlend, Mocha, Soy, Whip}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChicagoPizzaStore`, `NYPizzaStore`, `PizzaStore`, `Pizza` [INFO] [stdout] --> src/lib.rs:20:29 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::factory_method::{ChicagoPizzaStore, NYPizzaStore, Pizza, PizzaStore}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CurrentConditionsDisplay`, `Subject`, `WeatherDate` [INFO] [stdout] --> src/lib.rs:21:23 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::observer::{CurrentConditionsDisplay, Subject, WeatherDate}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `C`, `ChocolateBoiler` [INFO] [stdout] --> src/lib.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::singleton::{ChocolateBoiler, C}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duck`, `FlyBehavior`, `FlyRocketPowered`, `MallardDuck`, `ModelDuck` [INFO] [stdout] --> src/lib.rs:23:23 [INFO] [stdout] | [INFO] [stdout] 23 | use crate::strategy::{Duck, FlyBehavior, FlyRocketPowered, MallardDuck, ModelDuck}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::vec::Vec::::remove_item': Removing the first item equal to a needle is already easily possible with iterators and the current Vec methods. Furthermore, having a method for one particular case of removal (linear search, only the first item, no swap remove) but not for others is inconsistent. This method will be removed soon. [INFO] [stdout] --> src/observer.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | self.observers.remove_item(&o) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/command.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | for i in 0..7 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dvd` [INFO] [stdout] --> src/facade.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dvd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:27:23 [INFO] [stdout] | [INFO] [stdout] 27 | fn add(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/composite.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | fn child(&self, i: usize) -> Result, MenuComponentErr> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/composite.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(ref mut v) = self.menu_components { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:127:26 [INFO] [stdout] | [INFO] [stdout] 127 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let mut g = GumballMachine { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `weather_data` [INFO] [stdout] --> src/observer.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | weather_data: std::rc::Weak>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/command.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/command.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `undo_command` [INFO] [stdout] --> src/command.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | undo_command: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/command.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_command` [INFO] [stdout] --> src/command.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn set_command( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on_button_was_pushed` [INFO] [stdout] --> src/command.rs:233:12 [INFO] [stdout] | [INFO] [stdout] 233 | pub fn on_button_was_pushed(&mut self, slot: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off_button_was_pushed` [INFO] [stdout] --> src/command.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn off_button_was_pushed(&mut self, slot: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `undo_button_was_pushed` [INFO] [stdout] --> src/command.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | pub fn undo_button_was_pushed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Amplifier` [INFO] [stdout] --> src/facade.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct Amplifier; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_dvd` [INFO] [stdout] --> src/facade.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_surround_sound` [INFO] [stdout] --> src/facade.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | fn set_surround_sound(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_volume` [INFO] [stdout] --> src/facade.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | fn set_volume(&self, volume: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Tuner` [INFO] [stdout] --> src/facade.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | struct Tuner; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `DvdPlayer` [INFO] [stdout] --> src/facade.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | struct DvdPlayer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `stop` [INFO] [stdout] --> src/facade.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | fn stop(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `play` [INFO] [stdout] --> src/facade.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | fn play(&mut self, movie: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `eject` [INFO] [stdout] --> src/facade.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | fn eject(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `CdPlayer` [INFO] [stdout] --> src/facade.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | struct CdPlayer; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Projector` [INFO] [stdout] --> src/facade.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | struct Projector; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `wide_screen_mode` [INFO] [stdout] --> src/facade.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | fn wide_screen_mode(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `TheaterLights` [INFO] [stdout] --> src/facade.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | struct TheaterLights; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `dim` [INFO] [stdout] --> src/facade.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | fn dim(&self, num: usize) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Screen` [INFO] [stdout] --> src/facade.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | struct Screen; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `down` [INFO] [stdout] --> src/facade.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | fn down(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `up` [INFO] [stdout] --> src/facade.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | fn up(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `PopcornPopper` [INFO] [stdout] --> src/facade.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | struct PopcornPopper; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `pop` [INFO] [stdout] --> src/facade.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | fn pop(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `HomeTheaterFacade` [INFO] [stdout] --> src/facade.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | struct HomeTheaterFacade { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/facade.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `watch_movie` [INFO] [stdout] --> src/facade.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 127 | fn watch_movie(&mut self, movie: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `end_movie` [INFO] [stdout] --> src/facade.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 142 | fn end_movie(&self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `dough` [INFO] [stdout] --> src/factory_method.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | dough: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sauce` [INFO] [stdout] --> src/factory_method.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | sauce: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `dough` [INFO] [stdout] --> src/factory_method.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | dough: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sauce` [INFO] [stdout] --> src/factory_method.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | sauce: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | fn new(name: &str, description: &str, vegetarian: bool, price: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_item` [INFO] [stdout] --> src/iterator.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `menu_items` [INFO] [stdout] --> src/iterator.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | fn menu_items(&self) -> &[MenuItem] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `number_of_items` [INFO] [stdout] --> src/iterator.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | number_of_items: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_item` [INFO] [stdout] --> src/iterator.rs:118:8 [INFO] [stdout] | [INFO] [stdout] 118 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Waitress` [INFO] [stdout] --> src/iterator.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | struct Waitress { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 234 | fn new(pancake_house_menu: PancakeHouseMenu, diner_menu: DinerMenu) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print_menu` [INFO] [stdout] --> src/iterator.rs:240:8 [INFO] [stdout] | [INFO] [stdout] 240 | fn print_menu(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `print` [INFO] [stdout] --> src/iterator.rs:248:4 [INFO] [stdout] | [INFO] [stdout] 248 | fn print<'a>(ite: impl IntoIterator>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/composite.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | fn new(name: String, description: String, vegetarian: bool, price: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/composite.rs:108:8 [INFO] [stdout] | [INFO] [stdout] 108 | fn new(name: String, description: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Waitress` [INFO] [stdout] --> src/composite.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | struct Waitress { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/composite.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | fn new(all_menus: Rc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print_menu` [INFO] [stdout] --> src/composite.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | fn print_menu(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | fn new(number_gumballs: usize) -> Rc> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `insert_quarter` [INFO] [stdout] --> src/state.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | fn insert_quarter(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `eject_quarter` [INFO] [stdout] --> src/state.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | fn eject_quarter(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `turn_crank` [INFO] [stdout] --> src/state.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | fn turn_crank(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 179 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `gumball_machine` [INFO] [stdout] --> src/state.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 213 | gumball_machine: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 216 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/composite.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | self.all_menus.print(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 102 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.51s [INFO] running `Command { std: "docker" "inspect" "8172981ba98824db6f04b0f5032c4713106fc147f7f1e65e3a8bc2e0940247d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8172981ba98824db6f04b0f5032c4713106fc147f7f1e65e3a8bc2e0940247d9", kill_on_drop: false }` [INFO] [stdout] 8172981ba98824db6f04b0f5032c4713106fc147f7f1e65e3a8bc2e0940247d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 3f7f19d81f230eb0369a03f4ebffd57de0d17a8b6470cec9815df91196bce7af [INFO] running `Command { std: "docker" "start" "-a" "3f7f19d81f230eb0369a03f4ebffd57de0d17a8b6470cec9815df91196bce7af", kill_on_drop: false }` [INFO] [stderr] Compiling head_first_design_patterns v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary braces around block return value [INFO] [stdout] --> src/singleton.rs:50:49 [INFO] [stdout] | [INFO] [stdout] 50 | pub static ref C: RwLock = { RwLock::new(ChocolateBoiler::new()) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:19:48 [INFO] [stdout] | [INFO] [stdout] 19 | fn quack_behavior(&self) -> Rc>>; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:24:46 [INFO] [stdout] | [INFO] [stdout] 24 | fn fly_behavior(&self) -> Rc>>; [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:29:50 [INFO] [stdout] | [INFO] [stdout] 29 | fn set_fly_behavior(&self, fly_behavior: Box) { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:83:36 [INFO] [stdout] | [INFO] [stdout] 83 | quack_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:84:34 [INFO] [stdout] | [INFO] [stdout] 84 | fly_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:90:73 [INFO] [stdout] | [INFO] [stdout] 90 | let fly = Rc::new(RefCell::new(Box::new(FlyWithWings {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:91:68 [INFO] [stdout] | [INFO] [stdout] 91 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:103:48 [INFO] [stdout] | [INFO] [stdout] 103 | fn quack_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:106:46 [INFO] [stdout] | [INFO] [stdout] 106 | fn fly_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:113:36 [INFO] [stdout] | [INFO] [stdout] 113 | quack_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:114:34 [INFO] [stdout] | [INFO] [stdout] 114 | fly_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:119:69 [INFO] [stdout] | [INFO] [stdout] 119 | let fly = Rc::new(RefCell::new(Box::new(FlyNoWay {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:120:68 [INFO] [stdout] | [INFO] [stdout] 120 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:131:48 [INFO] [stdout] | [INFO] [stdout] 131 | fn quack_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:134:46 [INFO] [stdout] | [INFO] [stdout] 134 | fn fly_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/template_method.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::{self, Read}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Beverage`, `DarkRost`, `Espresso`, `HouseBlend`, `Mocha`, `Soy`, `Whip` [INFO] [stdout] --> src/lib.rs:19:24 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::decorator::{Beverage, DarkRost, Espresso, HouseBlend, Mocha, Soy, Whip}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChicagoPizzaStore`, `NYPizzaStore`, `PizzaStore`, `Pizza` [INFO] [stdout] --> src/lib.rs:20:29 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::factory_method::{ChicagoPizzaStore, NYPizzaStore, Pizza, PizzaStore}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `CurrentConditionsDisplay`, `Subject`, `WeatherDate` [INFO] [stdout] --> src/lib.rs:21:23 [INFO] [stdout] | [INFO] [stdout] 21 | use crate::observer::{CurrentConditionsDisplay, Subject, WeatherDate}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `C`, `ChocolateBoiler` [INFO] [stdout] --> src/lib.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::singleton::{ChocolateBoiler, C}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duck`, `FlyBehavior`, `FlyRocketPowered`, `MallardDuck`, `ModelDuck` [INFO] [stdout] --> src/lib.rs:23:23 [INFO] [stdout] | [INFO] [stdout] 23 | use crate::strategy::{Duck, FlyBehavior, FlyRocketPowered, MallardDuck, ModelDuck}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::vec::Vec::::remove_item': Removing the first item equal to a needle is already easily possible with iterators and the current Vec methods. Furthermore, having a method for one particular case of removal (linear search, only the first item, no swap remove) but not for others is inconsistent. This method will be removed soon. [INFO] [stdout] --> src/observer.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | self.observers.remove_item(&o) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/command.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | for i in 0..7 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dvd` [INFO] [stdout] --> src/facade.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dvd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:27:23 [INFO] [stdout] | [INFO] [stdout] 27 | fn add(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/composite.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | fn child(&self, i: usize) -> Result, MenuComponentErr> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/composite.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(ref mut v) = self.menu_components { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:127:26 [INFO] [stdout] | [INFO] [stdout] 127 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let mut g = GumballMachine { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `weather_data` [INFO] [stdout] --> src/observer.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | weather_data: std::rc::Weak>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/command.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/command.rs:49:8 [INFO] [stdout] | [INFO] [stdout] 49 | fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `undo_command` [INFO] [stdout] --> src/command.rs:204:5 [INFO] [stdout] | [INFO] [stdout] 204 | undo_command: Box, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/command.rs:208:12 [INFO] [stdout] | [INFO] [stdout] 208 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_command` [INFO] [stdout] --> src/command.rs:223:12 [INFO] [stdout] | [INFO] [stdout] 223 | pub fn set_command( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on_button_was_pushed` [INFO] [stdout] --> src/command.rs:233:12 [INFO] [stdout] | [INFO] [stdout] 233 | pub fn on_button_was_pushed(&mut self, slot: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off_button_was_pushed` [INFO] [stdout] --> src/command.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn off_button_was_pushed(&mut self, slot: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `undo_button_was_pushed` [INFO] [stdout] --> src/command.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | pub fn undo_button_was_pushed(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Amplifier` [INFO] [stdout] --> src/facade.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct Amplifier; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_dvd` [INFO] [stdout] --> src/facade.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_surround_sound` [INFO] [stdout] --> src/facade.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | fn set_surround_sound(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `set_volume` [INFO] [stdout] --> src/facade.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | fn set_volume(&self, volume: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Tuner` [INFO] [stdout] --> src/facade.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | struct Tuner; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `DvdPlayer` [INFO] [stdout] --> src/facade.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | struct DvdPlayer { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `stop` [INFO] [stdout] --> src/facade.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | fn stop(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `play` [INFO] [stdout] --> src/facade.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | fn play(&mut self, movie: &str) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `eject` [INFO] [stdout] --> src/facade.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | fn eject(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `CdPlayer` [INFO] [stdout] --> src/facade.rs:50:8 [INFO] [stdout] | [INFO] [stdout] 50 | struct CdPlayer; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Projector` [INFO] [stdout] --> src/facade.rs:51:8 [INFO] [stdout] | [INFO] [stdout] 51 | struct Projector; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `wide_screen_mode` [INFO] [stdout] --> src/facade.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | fn wide_screen_mode(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `TheaterLights` [INFO] [stdout] --> src/facade.rs:63:8 [INFO] [stdout] | [INFO] [stdout] 63 | struct TheaterLights; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `dim` [INFO] [stdout] --> src/facade.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | fn dim(&self, num: usize) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:68:8 [INFO] [stdout] | [INFO] [stdout] 68 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Screen` [INFO] [stdout] --> src/facade.rs:72:8 [INFO] [stdout] | [INFO] [stdout] 72 | struct Screen; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `down` [INFO] [stdout] --> src/facade.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | fn down(&self) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `up` [INFO] [stdout] --> src/facade.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | fn up(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `PopcornPopper` [INFO] [stdout] --> src/facade.rs:81:8 [INFO] [stdout] | [INFO] [stdout] 81 | struct PopcornPopper; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on` [INFO] [stdout] --> src/facade.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 83 | fn on(&self) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `off` [INFO] [stdout] --> src/facade.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | fn off(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `pop` [INFO] [stdout] --> src/facade.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | fn pop(&self) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `HomeTheaterFacade` [INFO] [stdout] --> src/facade.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | struct HomeTheaterFacade { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/facade.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `watch_movie` [INFO] [stdout] --> src/facade.rs:127:8 [INFO] [stdout] | [INFO] [stdout] 127 | fn watch_movie(&mut self, movie: &str) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `end_movie` [INFO] [stdout] --> src/facade.rs:142:8 [INFO] [stdout] | [INFO] [stdout] 142 | fn end_movie(&self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `dough` [INFO] [stdout] --> src/factory_method.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | dough: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sauce` [INFO] [stdout] --> src/factory_method.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | sauce: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `dough` [INFO] [stdout] --> src/factory_method.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | dough: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sauce` [INFO] [stdout] --> src/factory_method.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | sauce: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | fn new(name: &str, description: &str, vegetarian: bool, price: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_item` [INFO] [stdout] --> src/iterator.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `menu_items` [INFO] [stdout] --> src/iterator.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | fn menu_items(&self) -> &[MenuItem] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `number_of_items` [INFO] [stdout] --> src/iterator.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | number_of_items: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:74:8 [INFO] [stdout] | [INFO] [stdout] 74 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_item` [INFO] [stdout] --> src/iterator.rs:118:8 [INFO] [stdout] | [INFO] [stdout] 118 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Waitress` [INFO] [stdout] --> src/iterator.rs:228:8 [INFO] [stdout] | [INFO] [stdout] 228 | struct Waitress { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/iterator.rs:234:8 [INFO] [stdout] | [INFO] [stdout] 234 | fn new(pancake_house_menu: PancakeHouseMenu, diner_menu: DinerMenu) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print_menu` [INFO] [stdout] --> src/iterator.rs:240:8 [INFO] [stdout] | [INFO] [stdout] 240 | fn print_menu(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `print` [INFO] [stdout] --> src/iterator.rs:248:4 [INFO] [stdout] | [INFO] [stdout] 248 | fn print<'a>(ite: impl IntoIterator>) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/composite.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | fn new(name: String, description: String, vegetarian: bool, price: f64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/composite.rs:108:8 [INFO] [stdout] | [INFO] [stdout] 108 | fn new(name: String, description: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Waitress` [INFO] [stdout] --> src/composite.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | struct Waitress { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/composite.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | fn new(all_menus: Rc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print_menu` [INFO] [stdout] --> src/composite.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | fn print_menu(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | fn new(number_gumballs: usize) -> Rc> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `insert_quarter` [INFO] [stdout] --> src/state.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | fn insert_quarter(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `eject_quarter` [INFO] [stdout] --> src/state.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | fn eject_quarter(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `turn_crank` [INFO] [stdout] --> src/state.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | fn turn_crank(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:145:8 [INFO] [stdout] | [INFO] [stdout] 145 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:179:8 [INFO] [stdout] | [INFO] [stdout] 179 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `gumball_machine` [INFO] [stdout] --> src/state.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 213 | gumball_machine: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/state.rs:216:8 [INFO] [stdout] | [INFO] [stdout] 216 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/composite.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | self.all_menus.print(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 102 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary braces around block return value [INFO] [stdout] --> src/singleton.rs:50:49 [INFO] [stdout] | [INFO] [stdout] 50 | pub static ref C: RwLock = { RwLock::new(ChocolateBoiler::new()) }; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_braces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:19:48 [INFO] [stdout] | [INFO] [stdout] 19 | fn quack_behavior(&self) -> Rc>>; [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:24:46 [INFO] [stdout] | [INFO] [stdout] 24 | fn fly_behavior(&self) -> Rc>>; [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:29:50 [INFO] [stdout] | [INFO] [stdout] 29 | fn set_fly_behavior(&self, fly_behavior: Box) { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:83:36 [INFO] [stdout] | [INFO] [stdout] 83 | quack_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:84:34 [INFO] [stdout] | [INFO] [stdout] 84 | fly_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:90:73 [INFO] [stdout] | [INFO] [stdout] 90 | let fly = Rc::new(RefCell::new(Box::new(FlyWithWings {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:91:68 [INFO] [stdout] | [INFO] [stdout] 91 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:103:48 [INFO] [stdout] | [INFO] [stdout] 103 | fn quack_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:106:46 [INFO] [stdout] | [INFO] [stdout] 106 | fn fly_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:113:36 [INFO] [stdout] | [INFO] [stdout] 113 | quack_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:114:34 [INFO] [stdout] | [INFO] [stdout] 114 | fly_behavior: Rc>>, [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:119:69 [INFO] [stdout] | [INFO] [stdout] 119 | let fly = Rc::new(RefCell::new(Box::new(FlyNoWay {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:120:68 [INFO] [stdout] | [INFO] [stdout] 120 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:131:48 [INFO] [stdout] | [INFO] [stdout] 131 | fn quack_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/strategy.rs:134:46 [INFO] [stdout] | [INFO] [stdout] 134 | fn fly_behavior(&self) -> Rc>> { [INFO] [stdout] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/template_method.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::{self, Read}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ChocolateBoiler` [INFO] [stdout] --> src/lib.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | use crate::singleton::{ChocolateBoiler, C}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `FlyBehavior` [INFO] [stdout] --> src/lib.rs:23:29 [INFO] [stdout] | [INFO] [stdout] 23 | use crate::strategy::{Duck, FlyBehavior, FlyRocketPowered, MallardDuck, ModelDuck}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::vec::Vec::::remove_item': Removing the first item equal to a needle is already easily possible with iterators and the current Vec methods. Furthermore, having a method for one particular case of removal (linear search, only the first item, no swap remove) but not for others is inconsistent. This method will be removed soon. [INFO] [stdout] --> src/observer.rs:57:24 [INFO] [stdout] | [INFO] [stdout] 57 | self.observers.remove_item(&o) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Pizza` [INFO] [stdout] --> src/lib.rs:20:62 [INFO] [stdout] | [INFO] [stdout] 20 | use crate::factory_method::{ChicagoPizzaStore, NYPizzaStore, Pizza, PizzaStore}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/command.rs:213:13 [INFO] [stdout] | [INFO] [stdout] 213 | for i in 0..7 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dvd` [INFO] [stdout] --> src/facade.rs:15:23 [INFO] [stdout] | [INFO] [stdout] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_dvd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:27:23 [INFO] [stdout] | [INFO] [stdout] 27 | fn add(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:30:26 [INFO] [stdout] | [INFO] [stdout] 30 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/composite.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 33 | fn child(&self, i: usize) -> Result, MenuComponentErr> { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/composite.rs:128:21 [INFO] [stdout] | [INFO] [stdout] 128 | if let Some(ref mut v) = self.menu_components { [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `menu_component` [INFO] [stdout] --> src/composite.rs:127:26 [INFO] [stdout] | [INFO] [stdout] 127 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/state.rs:32:13 [INFO] [stdout] | [INFO] [stdout] 32 | let mut g = GumballMachine { [INFO] [stdout] | ----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `weather_data` [INFO] [stdout] --> src/observer.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | weather_data: std::rc::Weak>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `tuner` [INFO] [stdout] --> src/facade.rs:96:5 [INFO] [stdout] | [INFO] [stdout] 96 | tuner: Tuner, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `cd` [INFO] [stdout] --> src/facade.rs:98:5 [INFO] [stdout] | [INFO] [stdout] 98 | cd: CdPlayer, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `dough` [INFO] [stdout] --> src/factory_method.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | dough: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sauce` [INFO] [stdout] --> src/factory_method.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | sauce: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `dough` [INFO] [stdout] --> src/factory_method.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | dough: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sauce` [INFO] [stdout] --> src/factory_method.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | sauce: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_item` [INFO] [stdout] --> src/iterator.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `menu_items` [INFO] [stdout] --> src/iterator.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | fn menu_items(&self) -> &[MenuItem] { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `number_of_items` [INFO] [stdout] --> src/iterator.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | number_of_items: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `add_item` [INFO] [stdout] --> src/iterator.rs:118:8 [INFO] [stdout] | [INFO] [stdout] 118 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Waitress` [INFO] [stdout] --> src/composite.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | struct Waitress { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/composite.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | fn new(all_menus: Rc) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print_menu` [INFO] [stdout] --> src/composite.rs:167:8 [INFO] [stdout] | [INFO] [stdout] 167 | fn print_menu(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `eject_quarter` [INFO] [stdout] --> src/state.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | fn eject_quarter(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `turn_crank` [INFO] [stdout] --> src/state.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | fn turn_crank(&self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `gumball_machine` [INFO] [stdout] --> src/state.rs:213:5 [INFO] [stdout] | [INFO] [stdout] 213 | gumball_machine: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/composite.rs:168:9 [INFO] [stdout] | [INFO] [stdout] 168 | self.all_menus.print(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 47 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 2.28s [INFO] running `Command { std: "docker" "inspect" "3f7f19d81f230eb0369a03f4ebffd57de0d17a8b6470cec9815df91196bce7af", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3f7f19d81f230eb0369a03f4ebffd57de0d17a8b6470cec9815df91196bce7af", kill_on_drop: false }` [INFO] [stdout] 3f7f19d81f230eb0369a03f4ebffd57de0d17a8b6470cec9815df91196bce7af [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:38e1b949b06cde1964af550a6e548bd9b2b2ea170003ae122f8fc0886596cc07" "/opt/rustwide/cargo-home/bin/cargo" "+03a1ea71b075ab964b5278bc6e74cd6c52c36ee0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 2f9d1a3fecafae2241206631c3e45f6e025b04898ba9252a965af7e4bf935259 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "2f9d1a3fecafae2241206631c3e45f6e025b04898ba9252a965af7e4bf935259", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary braces around block return value [INFO] [stderr] --> src/singleton.rs:50:49 [INFO] [stderr] | [INFO] [stderr] 50 | pub static ref C: RwLock = { RwLock::new(ChocolateBoiler::new()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_braces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:19:48 [INFO] [stderr] | [INFO] [stderr] 19 | fn quack_behavior(&self) -> Rc>>; [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:24:46 [INFO] [stderr] | [INFO] [stderr] 24 | fn fly_behavior(&self) -> Rc>>; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:29:50 [INFO] [stderr] | [INFO] [stderr] 29 | fn set_fly_behavior(&self, fly_behavior: Box) { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:83:36 [INFO] [stderr] | [INFO] [stderr] 83 | quack_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:84:34 [INFO] [stderr] | [INFO] [stderr] 84 | fly_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:90:73 [INFO] [stderr] | [INFO] [stderr] 90 | let fly = Rc::new(RefCell::new(Box::new(FlyWithWings {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:91:68 [INFO] [stderr] | [INFO] [stderr] 91 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:103:48 [INFO] [stderr] | [INFO] [stderr] 103 | fn quack_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:106:46 [INFO] [stderr] | [INFO] [stderr] 106 | fn fly_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:113:36 [INFO] [stderr] | [INFO] [stderr] 113 | quack_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:114:34 [INFO] [stderr] | [INFO] [stderr] 114 | fly_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:119:69 [INFO] [stderr] | [INFO] [stderr] 119 | let fly = Rc::new(RefCell::new(Box::new(FlyNoWay {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:120:68 [INFO] [stderr] | [INFO] [stderr] 120 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:131:48 [INFO] [stderr] | [INFO] [stderr] 131 | fn quack_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:134:46 [INFO] [stderr] | [INFO] [stderr] 134 | fn fly_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/template_method.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::{self, Read}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Beverage`, `DarkRost`, `Espresso`, `HouseBlend`, `Mocha`, `Soy`, `Whip` [INFO] [stderr] --> src/lib.rs:19:24 [INFO] [stderr] | [INFO] [stderr] 19 | use crate::decorator::{Beverage, DarkRost, Espresso, HouseBlend, Mocha, Soy, Whip}; [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^ ^^^^^ ^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ChicagoPizzaStore`, `NYPizzaStore`, `PizzaStore`, `Pizza` [INFO] [stderr] --> src/lib.rs:20:29 [INFO] [stderr] | [INFO] [stderr] 20 | use crate::factory_method::{ChicagoPizzaStore, NYPizzaStore, Pizza, PizzaStore}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `CurrentConditionsDisplay`, `Subject`, `WeatherDate` [INFO] [stderr] --> src/lib.rs:21:23 [INFO] [stderr] | [INFO] [stderr] 21 | use crate::observer::{CurrentConditionsDisplay, Subject, WeatherDate}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `C`, `ChocolateBoiler` [INFO] [stderr] --> src/lib.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | use crate::singleton::{ChocolateBoiler, C}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ ^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Duck`, `FlyBehavior`, `FlyRocketPowered`, `MallardDuck`, `ModelDuck` [INFO] [stderr] --> src/lib.rs:23:23 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::strategy::{Duck, FlyBehavior, FlyRocketPowered, MallardDuck, ModelDuck}; [INFO] [stderr] | ^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::vec::Vec::::remove_item': Removing the first item equal to a needle is already easily possible with iterators and the current Vec methods. Furthermore, having a method for one particular case of removal (linear search, only the first item, no swap remove) but not for others is inconsistent. This method will be removed soon. [INFO] [stderr] --> src/observer.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | self.observers.remove_item(&o) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/command.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | for i in 0..7 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dvd` [INFO] [stderr] --> src/facade.rs:15:23 [INFO] [stderr] | [INFO] [stderr] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_dvd` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `menu_component` [INFO] [stderr] --> src/composite.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | fn add(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `menu_component` [INFO] [stderr] --> src/composite.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/composite.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | fn child(&self, i: usize) -> Result, MenuComponentErr> { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/composite.rs:128:21 [INFO] [stderr] | [INFO] [stderr] 128 | if let Some(ref mut v) = self.menu_components { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `menu_component` [INFO] [stderr] --> src/composite.rs:127:26 [INFO] [stderr] | [INFO] [stderr] 127 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/state.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | let mut g = GumballMachine { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `weather_data` [INFO] [stderr] --> src/observer.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | weather_data: std::rc::Weak>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/command.rs:27:8 [INFO] [stderr] | [INFO] [stderr] 27 | fn new(name: &str) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/command.rs:49:8 [INFO] [stderr] | [INFO] [stderr] 49 | fn new(name: &str) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `undo_command` [INFO] [stderr] --> src/command.rs:204:5 [INFO] [stderr] | [INFO] [stderr] 204 | undo_command: Box, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/command.rs:208:12 [INFO] [stderr] | [INFO] [stderr] 208 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `set_command` [INFO] [stderr] --> src/command.rs:223:12 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn set_command( [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `on_button_was_pushed` [INFO] [stderr] --> src/command.rs:233:12 [INFO] [stderr] | [INFO] [stderr] 233 | pub fn on_button_was_pushed(&mut self, slot: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `off_button_was_pushed` [INFO] [stderr] --> src/command.rs:237:12 [INFO] [stderr] | [INFO] [stderr] 237 | pub fn off_button_was_pushed(&mut self, slot: usize) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `undo_button_was_pushed` [INFO] [stderr] --> src/command.rs:241:12 [INFO] [stderr] | [INFO] [stderr] 241 | pub fn undo_button_was_pushed(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Amplifier` [INFO] [stderr] --> src/facade.rs:10:8 [INFO] [stderr] | [INFO] [stderr] 10 | struct Amplifier; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `on` [INFO] [stderr] --> src/facade.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 12 | fn on(&self) { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `set_dvd` [INFO] [stderr] --> src/facade.rs:15:8 [INFO] [stderr] | [INFO] [stderr] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `set_surround_sound` [INFO] [stderr] --> src/facade.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | fn set_surround_sound(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `set_volume` [INFO] [stderr] --> src/facade.rs:21:8 [INFO] [stderr] | [INFO] [stderr] 21 | fn set_volume(&self, volume: usize) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `off` [INFO] [stderr] --> src/facade.rs:24:8 [INFO] [stderr] | [INFO] [stderr] 24 | fn off(&self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Tuner` [INFO] [stderr] --> src/facade.rs:28:8 [INFO] [stderr] | [INFO] [stderr] 28 | struct Tuner; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `DvdPlayer` [INFO] [stderr] --> src/facade.rs:29:8 [INFO] [stderr] | [INFO] [stderr] 29 | struct DvdPlayer { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `on` [INFO] [stderr] --> src/facade.rs:33:8 [INFO] [stderr] | [INFO] [stderr] 33 | fn on(&self) { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `stop` [INFO] [stderr] --> src/facade.rs:36:8 [INFO] [stderr] | [INFO] [stderr] 36 | fn stop(&self) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `play` [INFO] [stderr] --> src/facade.rs:39:8 [INFO] [stderr] | [INFO] [stderr] 39 | fn play(&mut self, movie: &str) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `off` [INFO] [stderr] --> src/facade.rs:43:8 [INFO] [stderr] | [INFO] [stderr] 43 | fn off(&self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `eject` [INFO] [stderr] --> src/facade.rs:46:8 [INFO] [stderr] | [INFO] [stderr] 46 | fn eject(&self) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `CdPlayer` [INFO] [stderr] --> src/facade.rs:50:8 [INFO] [stderr] | [INFO] [stderr] 50 | struct CdPlayer; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Projector` [INFO] [stderr] --> src/facade.rs:51:8 [INFO] [stderr] | [INFO] [stderr] 51 | struct Projector; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `on` [INFO] [stderr] --> src/facade.rs:53:8 [INFO] [stderr] | [INFO] [stderr] 53 | fn on(&self) { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `wide_screen_mode` [INFO] [stderr] --> src/facade.rs:56:8 [INFO] [stderr] | [INFO] [stderr] 56 | fn wide_screen_mode(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `off` [INFO] [stderr] --> src/facade.rs:59:8 [INFO] [stderr] | [INFO] [stderr] 59 | fn off(&self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `TheaterLights` [INFO] [stderr] --> src/facade.rs:63:8 [INFO] [stderr] | [INFO] [stderr] 63 | struct TheaterLights; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `dim` [INFO] [stderr] --> src/facade.rs:65:8 [INFO] [stderr] | [INFO] [stderr] 65 | fn dim(&self, num: usize) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `on` [INFO] [stderr] --> src/facade.rs:68:8 [INFO] [stderr] | [INFO] [stderr] 68 | fn on(&self) { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Screen` [INFO] [stderr] --> src/facade.rs:72:8 [INFO] [stderr] | [INFO] [stderr] 72 | struct Screen; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `down` [INFO] [stderr] --> src/facade.rs:74:8 [INFO] [stderr] | [INFO] [stderr] 74 | fn down(&self) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `up` [INFO] [stderr] --> src/facade.rs:77:8 [INFO] [stderr] | [INFO] [stderr] 77 | fn up(&self) { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PopcornPopper` [INFO] [stderr] --> src/facade.rs:81:8 [INFO] [stderr] | [INFO] [stderr] 81 | struct PopcornPopper; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `on` [INFO] [stderr] --> src/facade.rs:83:8 [INFO] [stderr] | [INFO] [stderr] 83 | fn on(&self) { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `off` [INFO] [stderr] --> src/facade.rs:86:8 [INFO] [stderr] | [INFO] [stderr] 86 | fn off(&self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `pop` [INFO] [stderr] --> src/facade.rs:89:8 [INFO] [stderr] | [INFO] [stderr] 89 | fn pop(&self) { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `HomeTheaterFacade` [INFO] [stderr] --> src/facade.rs:94:8 [INFO] [stderr] | [INFO] [stderr] 94 | struct HomeTheaterFacade { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/facade.rs:105:8 [INFO] [stderr] | [INFO] [stderr] 105 | fn new( [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `watch_movie` [INFO] [stderr] --> src/facade.rs:127:8 [INFO] [stderr] | [INFO] [stderr] 127 | fn watch_movie(&mut self, movie: &str) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `end_movie` [INFO] [stderr] --> src/facade.rs:142:8 [INFO] [stderr] | [INFO] [stderr] 142 | fn end_movie(&self) { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dough` [INFO] [stderr] --> src/factory_method.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | dough: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `sauce` [INFO] [stderr] --> src/factory_method.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | sauce: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dough` [INFO] [stderr] --> src/factory_method.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | dough: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `sauce` [INFO] [stderr] --> src/factory_method.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | sauce: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/iterator.rs:14:8 [INFO] [stderr] | [INFO] [stderr] 14 | fn new(name: &str, description: &str, vegetarian: bool, price: f64) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/iterator.rs:29:8 [INFO] [stderr] | [INFO] [stderr] 29 | fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `add_item` [INFO] [stderr] --> src/iterator.rs:58:8 [INFO] [stderr] | [INFO] [stderr] 58 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `menu_items` [INFO] [stderr] --> src/iterator.rs:62:8 [INFO] [stderr] | [INFO] [stderr] 62 | fn menu_items(&self) -> &[MenuItem] { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `number_of_items` [INFO] [stderr] --> src/iterator.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | number_of_items: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/iterator.rs:74:8 [INFO] [stderr] | [INFO] [stderr] 74 | fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `add_item` [INFO] [stderr] --> src/iterator.rs:118:8 [INFO] [stderr] | [INFO] [stderr] 118 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Waitress` [INFO] [stderr] --> src/iterator.rs:228:8 [INFO] [stderr] | [INFO] [stderr] 228 | struct Waitress { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/iterator.rs:234:8 [INFO] [stderr] | [INFO] [stderr] 234 | fn new(pancake_house_menu: PancakeHouseMenu, diner_menu: DinerMenu) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `print_menu` [INFO] [stderr] --> src/iterator.rs:240:8 [INFO] [stderr] | [INFO] [stderr] 240 | fn print_menu(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print` [INFO] [stderr] --> src/iterator.rs:248:4 [INFO] [stderr] | [INFO] [stderr] 248 | fn print<'a>(ite: impl IntoIterator>) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/composite.rs:69:8 [INFO] [stderr] | [INFO] [stderr] 69 | fn new(name: String, description: String, vegetarian: bool, price: f64) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/composite.rs:108:8 [INFO] [stderr] | [INFO] [stderr] 108 | fn new(name: String, description: String) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Waitress` [INFO] [stderr] --> src/composite.rs:159:8 [INFO] [stderr] | [INFO] [stderr] 159 | struct Waitress { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/composite.rs:164:8 [INFO] [stderr] | [INFO] [stderr] 164 | fn new(all_menus: Rc) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `print_menu` [INFO] [stderr] --> src/composite.rs:167:8 [INFO] [stderr] | [INFO] [stderr] 167 | fn print_menu(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/state.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | fn new(number_gumballs: usize) -> Rc> { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `insert_quarter` [INFO] [stderr] --> src/state.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | fn insert_quarter(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `eject_quarter` [INFO] [stderr] --> src/state.rs:57:8 [INFO] [stderr] | [INFO] [stderr] 57 | fn eject_quarter(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `turn_crank` [INFO] [stderr] --> src/state.rs:60:8 [INFO] [stderr] | [INFO] [stderr] 60 | fn turn_crank(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/state.rs:109:8 [INFO] [stderr] | [INFO] [stderr] 109 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/state.rs:145:8 [INFO] [stderr] | [INFO] [stderr] 145 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/state.rs:179:8 [INFO] [stderr] | [INFO] [stderr] 179 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `gumball_machine` [INFO] [stderr] --> src/state.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | gumball_machine: Option>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary braces around block return value [INFO] [stderr] --> src/singleton.rs:50:49 [INFO] [stderr] | [INFO] [stderr] 50 | pub static ref C: RwLock = { RwLock::new(ChocolateBoiler::new()) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_braces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:19:48 [INFO] [stderr] | [INFO] [stderr] 19 | fn quack_behavior(&self) -> Rc>>; [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:24:46 [INFO] [stderr] | [INFO] [stderr] 24 | fn fly_behavior(&self) -> Rc>>; [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:29:50 [INFO] [stderr] | [INFO] [stderr] 29 | fn set_fly_behavior(&self, fly_behavior: Box) { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:83:36 [INFO] [stderr] | [INFO] [stderr] 83 | quack_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:84:34 [INFO] [stderr] | [INFO] [stderr] 84 | fly_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:90:73 [INFO] [stderr] | [INFO] [stderr] 90 | let fly = Rc::new(RefCell::new(Box::new(FlyWithWings {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:91:68 [INFO] [stderr] | [INFO] [stderr] 91 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:103:48 [INFO] [stderr] | [INFO] [stderr] 103 | fn quack_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:106:46 [INFO] [stderr] | [INFO] [stderr] 106 | fn fly_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:113:36 [INFO] [stderr] | [INFO] [stderr] 113 | quack_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:114:34 [INFO] [stderr] | [INFO] [stderr] 114 | fly_behavior: Rc>>, [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:119:69 [INFO] [stderr] | [INFO] [stderr] 119 | let fly = Rc::new(RefCell::new(Box::new(FlyNoWay {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:120:68 [INFO] [stderr] | [INFO] [stderr] 120 | let quack = Rc::new(RefCell::new(Box::new(Quack {}) as Box)); [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:131:48 [INFO] [stderr] | [INFO] [stderr] 131 | fn quack_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^^^ help: use `dyn`: `dyn QuackBehavior` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/strategy.rs:134:46 [INFO] [stderr] | [INFO] [stderr] 134 | fn fly_behavior(&self) -> Rc>> { [INFO] [stderr] | ^^^^^^^^^^^ help: use `dyn`: `dyn FlyBehavior` [INFO] [stderr] [INFO] [stderr] warning: unused import: `Read` [INFO] [stderr] --> src/template_method.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::{self, Read}; [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `ChocolateBoiler` [INFO] [stderr] --> src/lib.rs:22:24 [INFO] [stderr] | [INFO] [stderr] 22 | use crate::singleton::{ChocolateBoiler, C}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `FlyBehavior` [INFO] [stderr] --> src/lib.rs:23:29 [INFO] [stderr] | [INFO] [stderr] 23 | use crate::strategy::{Duck, FlyBehavior, FlyRocketPowered, MallardDuck, ModelDuck}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::vec::Vec::::remove_item': Removing the first item equal to a needle is already easily possible with iterators and the current Vec methods. Furthermore, having a method for one particular case of removal (linear search, only the first item, no swap remove) but not for others is inconsistent. This method will be removed soon. [INFO] [stderr] --> src/observer.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | self.observers.remove_item(&o) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Pizza` [INFO] [stderr] --> src/lib.rs:20:62 [INFO] [stderr] | [INFO] [stderr] 20 | use crate::factory_method::{ChicagoPizzaStore, NYPizzaStore, Pizza, PizzaStore}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/command.rs:213:13 [INFO] [stderr] | [INFO] [stderr] 213 | for i in 0..7 { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dvd` [INFO] [stderr] --> src/facade.rs:15:23 [INFO] [stderr] | [INFO] [stderr] 15 | fn set_dvd(&self, dvd: &DvdPlayer) { [INFO] [stderr] | ^^^ help: if this is intentional, prefix it with an underscore: `_dvd` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `menu_component` [INFO] [stderr] --> src/composite.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | fn add(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `menu_component` [INFO] [stderr] --> src/composite.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/composite.rs:33:21 [INFO] [stderr] | [INFO] [stderr] 33 | fn child(&self, i: usize) -> Result, MenuComponentErr> { [INFO] [stderr] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/composite.rs:128:21 [INFO] [stderr] | [INFO] [stderr] 128 | if let Some(ref mut v) = self.menu_components { [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `menu_component` [INFO] [stderr] --> src/composite.rs:127:26 [INFO] [stderr] | [INFO] [stderr] 127 | fn remove(&mut self, menu_component: Rc) -> Result<(), MenuComponentErr> { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_menu_component` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/state.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | let mut g = GumballMachine { [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `weather_data` [INFO] [stderr] --> src/observer.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | weather_data: std::rc::Weak>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `tuner` [INFO] [stderr] --> src/facade.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | tuner: Tuner, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `cd` [INFO] [stderr] --> src/facade.rs:98:5 [INFO] [stderr] | [INFO] [stderr] 98 | cd: CdPlayer, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dough` [INFO] [stderr] --> src/factory_method.rs:27:5 [INFO] [stderr] | [INFO] [stderr] 27 | dough: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `sauce` [INFO] [stderr] --> src/factory_method.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | sauce: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `dough` [INFO] [stderr] --> src/factory_method.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | dough: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `sauce` [INFO] [stderr] --> src/factory_method.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | sauce: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `add_item` [INFO] [stderr] --> src/iterator.rs:58:8 [INFO] [stderr] | [INFO] [stderr] 58 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `menu_items` [INFO] [stderr] --> src/iterator.rs:62:8 [INFO] [stderr] | [INFO] [stderr] 62 | fn menu_items(&self) -> &[MenuItem] { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `number_of_items` [INFO] [stderr] --> src/iterator.rs:70:5 [INFO] [stderr] | [INFO] [stderr] 70 | number_of_items: usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `add_item` [INFO] [stderr] --> src/iterator.rs:118:8 [INFO] [stderr] | [INFO] [stderr] 118 | fn add_item(&mut self, name: &str, description: &str, vegetarian: bool, price: f64) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Waitress` [INFO] [stderr] --> src/composite.rs:159:8 [INFO] [stderr] | [INFO] [stderr] 159 | struct Waitress { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/composite.rs:164:8 [INFO] [stderr] | [INFO] [stderr] 164 | fn new(all_menus: Rc) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `print_menu` [INFO] [stderr] --> src/composite.rs:167:8 [INFO] [stderr] | [INFO] [stderr] 167 | fn print_menu(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `eject_quarter` [INFO] [stderr] --> src/state.rs:57:8 [INFO] [stderr] | [INFO] [stderr] 57 | fn eject_quarter(&self) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `turn_crank` [INFO] [stderr] --> src/state.rs:60:8 [INFO] [stderr] | [INFO] [stderr] 60 | fn turn_crank(&self) { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `gumball_machine` [INFO] [stderr] --> src/state.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | gumball_machine: Option>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/composite.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | self.all_menus.print(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: 47 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `new` [INFO] [stderr] --> src/state.rs:216:8 [INFO] [stderr] | [INFO] [stderr] 216 | fn new(gumball_machine: Option>>) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/composite.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | self.all_menus.print(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: 102 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/head_first_design_patterns-b4242eb90c4957d3 [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test command::test_command_undo ... ok [INFO] [stdout] test facade::test_home_theater ... ok [INFO] [stdout] test composite::test_composite ... ok [INFO] [stdout] test tests::test_factory_method ... ok [INFO] [stdout] test tests::test_mallard_duck ... ok [INFO] [stdout] test tests::test_observer ... ok [INFO] [stdout] test adapter::teset_turkey_adapter ... ok [INFO] [stdout] test command::test_command ... ok [INFO] [stdout] test tests::test_singleton ... ok [INFO] [stdout] test command::test_macro_command ... ok [INFO] [stdout] test iterator::test_iterator ... ok [INFO] [stdout] test template_method::test_coffee ... ok [INFO] [stdout] test tests::test_decorator ... ok [INFO] [stdout] test state::test_state ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- state::test_state stdout ---- [INFO] [stdout] NoQuarterState: 5 [INFO] [stdout] You inserted a quarter [INFO] [stdout] thread 'state::test_state' panicked at 'already borrowed: BorrowMutError', /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libcore/cell.rs:867:31 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x562892502935 - backtrace::backtrace::libunwind::trace::hea89dfbbfe67f40d [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86 [INFO] [stdout] 1: 0x562892502935 - backtrace::backtrace::trace_unsynchronized::h0513dd713d7644d4 [INFO] [stdout] at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66 [INFO] [stdout] 2: 0x562892502935 - std::sys_common::backtrace::_print_fmt::h040abae64e4a24a9 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:78 [INFO] [stdout] 3: 0x562892502935 - ::fmt::hb4bdb37c3c335733 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:59 [INFO] [stdout] 4: 0x56289252ac6c - core::fmt::write::h540ac4a6a1232abc [INFO] [stdout] at src/libcore/fmt/mod.rs:1076 [INFO] [stdout] 5: 0x5628924b6b65 - std::io::Write::write_fmt::h4be0daababb55bba [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/io/mod.rs:1539 [INFO] [stdout] 6: 0x5628924fc811 - std::io::impls::>::write_fmt::h83c1e1aa73f374f5 [INFO] [stdout] at src/libstd/io/impls.rs:176 [INFO] [stdout] 7: 0x5628925050b0 - std::sys_common::backtrace::_print::hb55cc635eaf1882e [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:62 [INFO] [stdout] 8: 0x5628925050b0 - std::sys_common::backtrace::print::h2b2218fa55714084 [INFO] [stdout] at src/libstd/sys_common/backtrace.rs:49 [INFO] [stdout] 9: 0x5628925050b0 - std::panicking::default_hook::{{closure}}::h578517c025765cf3 [INFO] [stdout] at src/libstd/panicking.rs:198 [INFO] [stdout] 10: 0x562892504daa - std::panicking::default_hook::h4cafc94c2fc640fb [INFO] [stdout] at src/libstd/panicking.rs:214 [INFO] [stdout] 11: 0x5628925056f3 - std::panicking::rust_panic_with_hook::h3eeb5001beeca5c3 [INFO] [stdout] at src/libstd/panicking.rs:526 [INFO] [stdout] 12: 0x5628925052eb - rust_begin_unwind [INFO] [stdout] at src/libstd/panicking.rs:437 [INFO] [stdout] 13: 0x562892529601 - core::panicking::panic_fmt::h78830ea6a34e7206 [INFO] [stdout] at src/libcore/panicking.rs:85 [INFO] [stdout] 14: 0x562892529423 - core::option::expect_none_failed::hf79bbb5ca7e09e08 [INFO] [stdout] at src/libcore/option.rs:1269 [INFO] [stdout] 15: 0x56289249ae32 - core::result::Result::expect::h8d692cf58feb2b9e [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libcore/result.rs:963 [INFO] [stdout] 16: 0x5628924a69ba - core::cell::RefCell::borrow_mut::h9a62154df89b11c6 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libcore/cell.rs:867 [INFO] [stdout] 17: 0x5628924abf6e - ::insert_quarter::h4af6660b40b91419 [INFO] [stdout] at src/state.rs:128 [INFO] [stdout] 18: 0x5628924ab995 - head_first_design_patterns::state::GumballMachine::insert_quarter::h3e1666ffdd7db703 [INFO] [stdout] at src/state.rs:55 [INFO] [stdout] 19: 0x5628924ad54c - head_first_design_patterns::state::test_state::hd8c21298f898db5f [INFO] [stdout] at src/state.rs:245 [INFO] [stdout] 20: 0x5628924ad33a - head_first_design_patterns::state::test_state::{{closure}}::h6cc19138de7d77da [INFO] [stdout] at src/state.rs:241 [INFO] [stdout] 21: 0x5628924b0bbe - core::ops::function::FnOnce::call_once::h9040d68a5c9d8eee [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libcore/ops/function.rs:233 [INFO] [stdout] 22: 0x5628924de0dc - as core::ops::function::FnOnce>::call_once::h8340ba6798e0c4ff [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/liballoc/boxed.rs:1081 [INFO] [stdout] 23: 0x5628924de0dc - as core::ops::function::FnOnce<()>>::call_once::h5590e98676605094 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panic.rs:318 [INFO] [stdout] 24: 0x5628924de0dc - std::panicking::try::do_call::hd8680a2dbb0ed3c4 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panicking.rs:348 [INFO] [stdout] 25: 0x5628924de0dc - std::panicking::try::h46b4de2d705e7a8d [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panicking.rs:325 [INFO] [stdout] 26: 0x5628924de0dc - std::panic::catch_unwind::h059b3f06991e0a9c [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panic.rs:394 [INFO] [stdout] 27: 0x5628924de0dc - test::run_test_in_process::h5ae08a65430494a4 [INFO] [stdout] at src/libtest/lib.rs:541 [INFO] [stdout] 28: 0x5628924de0dc - test::run_test::run_test_inner::{{closure}}::h4b36073838376ae8 [INFO] [stdout] at src/libtest/lib.rs:450 [INFO] [stdout] 29: 0x5628924b6056 - std::sys_common::backtrace::__rust_begin_short_backtrace::h0169d0be588b8bf0 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/sys_common/backtrace.rs:130 [INFO] [stdout] 30: 0x5628924bb045 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h71bfc37e887d3973 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/thread/mod.rs:475 [INFO] [stdout] 31: 0x5628924bb045 - as core::ops::function::FnOnce<()>>::call_once::h36c65072907dc180 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panic.rs:318 [INFO] [stdout] 32: 0x5628924bb045 - std::panicking::try::do_call::h4e0f426e17cd216c [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panicking.rs:348 [INFO] [stdout] 33: 0x5628924bb045 - std::panicking::try::hd05e4ef6b4303d29 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panicking.rs:325 [INFO] [stdout] 34: 0x5628924bb045 - std::panic::catch_unwind::h19a1127ec729c5dd [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/panic.rs:394 [INFO] [stdout] 35: 0x5628924bb045 - std::thread::Builder::spawn_unchecked::{{closure}}::h011300735f06b1e2 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libstd/thread/mod.rs:474 [INFO] [stdout] 36: 0x5628924bb045 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h1e3c55f31f1d122e [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/libcore/ops/function.rs:233 [INFO] [stdout] 37: 0x56289250b8ca - as core::ops::function::FnOnce>::call_once::hc0e15d78a519721e [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/liballoc/boxed.rs:1081 [INFO] [stdout] 38: 0x56289250b8ca - as core::ops::function::FnOnce>::call_once::h211da8fffb09f192 [INFO] [stdout] at /rustc/03a1ea71b075ab964b5278bc6e74cd6c52c36ee0/src/liballoc/boxed.rs:1081 [INFO] [stdout] 39: 0x56289250b8ca - std::sys::unix::thread::Thread::new::thread_start::h29594ddebf23e421 [INFO] [stdout] at src/libstd/sys/unix/thread.rs:87 [INFO] [stdout] 40: 0x7fac46e7e609 - start_thread [INFO] [stdout] 41: 0x7fac46d8a103 - __clone [INFO] [stdout] 42: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] state::test_state [INFO] [stdout] [INFO] [stdout] test result: FAILED. 13 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--lib' [INFO] running `Command { std: "docker" "inspect" "2f9d1a3fecafae2241206631c3e45f6e025b04898ba9252a965af7e4bf935259", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2f9d1a3fecafae2241206631c3e45f6e025b04898ba9252a965af7e4bf935259", kill_on_drop: false }` [INFO] [stdout] 2f9d1a3fecafae2241206631c3e45f6e025b04898ba9252a965af7e4bf935259