[INFO] cloning 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" "clone" "--bare" "https://github.com/frostRed/head_first_design_patterns_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfrostRed%2Fhead_first_design_patterns_rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfrostRed%2Fhead_first_design_patterns_rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 779447adaf64ad62404312d51b8363b8602c3552 [INFO] testing frostRed/head_first_design_patterns_rust against master#5d5ff84130da0d74c6ece368dbe821d8f83fa526 for pr-79296 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FfrostRed%2Fhead_first_design_patterns_rust" "/workspace/builds/worker-7/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/frostRed/head_first_design_patterns_rust on toolchain 5d5ff84130da0d74c6ece368dbe821d8f83fa526 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+5d5ff84130da0d74c6ece368dbe821d8f83fa526" "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-7/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" "+5d5ff84130da0d74c6ece368dbe821d8f83fa526" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+5d5ff84130da0d74c6ece368dbe821d8f83fa526" "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] d58f46ca5c5cb3ab4234818ef8cc9b548244f16b780c28a8b06ca38a767f7c41 [INFO] running `Command { std: "docker" "start" "-a" "d58f46ca5c5cb3ab4234818ef8cc9b548244f16b780c28a8b06ca38a767f7c41", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d58f46ca5c5cb3ab4234818ef8cc9b548244f16b780c28a8b06ca38a767f7c41", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d58f46ca5c5cb3ab4234818ef8cc9b548244f16b780c28a8b06ca38a767f7c41", kill_on_drop: false }` [INFO] [stdout] d58f46ca5c5cb3ab4234818ef8cc9b548244f16b780c28a8b06ca38a767f7c41 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+5d5ff84130da0d74c6ece368dbe821d8f83fa526" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6df2b0d45fd95e2050103562410e90a7ae2a14557b9939f2230d772dbdc0820e [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" "6df2b0d45fd95e2050103562410e90a7ae2a14557b9939f2230d772dbdc0820e", 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 associated function `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.35s [INFO] running `Command { std: "docker" "inspect" "6df2b0d45fd95e2050103562410e90a7ae2a14557b9939f2230d772dbdc0820e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6df2b0d45fd95e2050103562410e90a7ae2a14557b9939f2230d772dbdc0820e", kill_on_drop: false }` [INFO] [stdout] 6df2b0d45fd95e2050103562410e90a7ae2a14557b9939f2230d772dbdc0820e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+5d5ff84130da0d74c6ece368dbe821d8f83fa526" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a270068b6e8d8137d551b1e7ccbe022749166df04565a5983cc0569cc32fca86 [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" "a270068b6e8d8137d551b1e7ccbe022749166df04565a5983cc0569cc32fca86", kill_on_drop: false }` [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] [stderr] Compiling head_first_design_patterns v0.1.0 (/opt/rustwide/workdir) [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 associated function `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 associated function `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.15s [INFO] running `Command { std: "docker" "inspect" "a270068b6e8d8137d551b1e7ccbe022749166df04565a5983cc0569cc32fca86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a270068b6e8d8137d551b1e7ccbe022749166df04565a5983cc0569cc32fca86", kill_on_drop: false }` [INFO] [stdout] a270068b6e8d8137d551b1e7ccbe022749166df04565a5983cc0569cc32fca86 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+5d5ff84130da0d74c6ece368dbe821d8f83fa526" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] a2c2400fc8cc92cffd86fe3c896e163337f44c9aeb2000a6d6636f5717f3a773 [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" "a2c2400fc8cc92cffd86fe3c896e163337f44c9aeb2000a6d6636f5717f3a773", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [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 associated function `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: 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] 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 associated function `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] Finished test [unoptimized + debuginfo] target(s) in 0.12s [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/head_first_design_patterns-182107a6b2f7bbac [INFO] [stdout] running 14 tests [INFO] [stdout] test adapter::teset_turkey_adapter ... ok [INFO] [stdout] test command::test_command ... ok [INFO] [stdout] test command::test_command_undo ... ok [INFO] [stdout] test tests::test_singleton ... ok [INFO] [stdout] test tests::test_observer ... ok [INFO] [stdout] test tests::test_mallard_duck ... ok [INFO] [stdout] test tests::test_factory_method ... ok [INFO] [stdout] test composite::test_composite ... ok [INFO] [stdout] test template_method::test_coffee ... ok [INFO] [stdout] test command::test_macro_command ... ok [INFO] [stdout] test iterator::test_iterator ... ok [INFO] [stdout] test facade::test_home_theater ... ok [INFO] [stdout] test tests::test_decorator ... ok [INFO] [stderr] error: test failed, to rerun pass '--lib' [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', src/state.rs:128:25 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5626973e0920 - std::backtrace_rs::backtrace::libunwind::trace::h95fc93571932622e [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5 [INFO] [stdout] 1: 0x5626973e0920 - std::backtrace_rs::backtrace::trace_unsynchronized::h4d0b90afc33151fd [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x5626973e0920 - std::sys_common::backtrace::_print_fmt::h93d302d001a3bf01 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x5626973e0920 - ::fmt::h7881e3a580134f9a [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x5626974049ec - core::fmt::write::h1857a60b204f1b6a [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/fmt/mod.rs:1078:17 [INFO] [stdout] 5: 0x5626973dc972 - std::io::Write::write_fmt::hd17811b9a5dec54b [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/io/mod.rs:1519:15 [INFO] [stdout] 6: 0x5626973e3175 - std::sys_common::backtrace::_print::h3e3f9fed81bc11e9 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 7: 0x5626973e3175 - std::sys_common::backtrace::print::hd22ac23fed5071c8 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 8: 0x5626973e3175 - std::panicking::default_hook::{{closure}}::h1647bdcf68060e17 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:208:50 [INFO] [stdout] 9: 0x5626973e2d02 - std::panicking::default_hook::hb08853b392b9404b [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:222:9 [INFO] [stdout] 10: 0x5626973e3911 - std::panicking::rust_panic_with_hook::h3624ee29da369ede [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:591:17 [INFO] [stdout] 11: 0x5626973e3457 - std::panicking::begin_panic_handler::{{closure}}::hefcfcedcde6bb6d9 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:497:13 [INFO] [stdout] 12: 0x5626973e0ddc - std::sys_common::backtrace::__rust_end_short_backtrace::heb130cec93caa706 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/sys_common/backtrace.rs:141:18 [INFO] [stdout] 13: 0x5626973e33b9 - rust_begin_unwind [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:493:5 [INFO] [stdout] 14: 0x562697403371 - core::panicking::panic_fmt::hb15d6f55e8472f62 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/panicking.rs:92:14 [INFO] [stdout] 15: 0x562697403193 - core::option::expect_none_failed::he492a18657d97593 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/option.rs:1268:5 [INFO] [stdout] 16: 0x562697370df2 - core::result::Result::expect::h07589c973d58af96 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/result.rs:933:23 [INFO] [stdout] 17: 0x56269737ab50 - core::cell::RefCell::borrow_mut::h0818a97b1f6b14eb [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/cell.rs:868:9 [INFO] [stdout] 18: 0x56269737dee1 - ::insert_quarter::hda5815748fc60f61 [INFO] [stdout] at /opt/rustwide/workdir/src/state.rs:128:9 [INFO] [stdout] 19: 0x56269737d985 - head_first_design_patterns::state::GumballMachine::insert_quarter::h32e2a488f6f404d8 [INFO] [stdout] at /opt/rustwide/workdir/src/state.rs:55:9 [INFO] [stdout] 20: 0x56269737f33f - head_first_design_patterns::state::test_state::h2717903bd2b9a951 [INFO] [stdout] at /opt/rustwide/workdir/src/state.rs:245:5 [INFO] [stdout] 21: 0x56269737f16a - head_first_design_patterns::state::test_state::{{closure}}::h89a2a4d05c64fc77 [INFO] [stdout] at /opt/rustwide/workdir/src/state.rs:241:1 [INFO] [stdout] 22: 0x5626973865be - core::ops::function::FnOnce::call_once::h247d4d32444f30d7 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 23: 0x5626973b1653 - core::ops::function::FnOnce::call_once::h72b3efc134abec04 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 24: 0x5626973b1653 - test::__rust_begin_short_backtrace::hf76173a3f44f554b [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/test/src/lib.rs:516:5 [INFO] [stdout] 25: 0x5626973afd48 - as core::ops::function::FnOnce>::call_once::h49f5b686efed1e06 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/alloc/src/boxed.rs:1318:9 [INFO] [stdout] 26: 0x5626973afd48 - as core::ops::function::FnOnce<()>>::call_once::h4879f836ca9aaead [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panic.rs:322:9 [INFO] [stdout] 27: 0x5626973afd48 - std::panicking::try::do_call::h9655796ce3021b6c [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:379:40 [INFO] [stdout] 28: 0x5626973afd48 - std::panicking::try::h346508ed448399f4 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:343:19 [INFO] [stdout] 29: 0x5626973afd48 - std::panic::catch_unwind::h00e84f4e9c3caaa0 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panic.rs:396:14 [INFO] [stdout] 30: 0x5626973afd48 - test::run_test_in_process::hc80321f825c30106 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/test/src/lib.rs:538:18 [INFO] [stdout] 31: 0x5626973afd48 - test::run_test::run_test_inner::{{closure}}::h89c217441620999f [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/test/src/lib.rs:449:39 [INFO] [stdout] 32: 0x56269738a336 - std::sys_common::backtrace::__rust_begin_short_backtrace::h3852ec0877008db6 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/sys_common/backtrace.rs:125:18 [INFO] [stdout] 33: 0x56269738eafd - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::h7c7dfff4b938ae67 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/thread/mod.rs:474:17 [INFO] [stdout] 34: 0x56269738eafd - as core::ops::function::FnOnce<()>>::call_once::h8db0dd15c072a403 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panic.rs:322:9 [INFO] [stdout] 35: 0x56269738eafd - std::panicking::try::do_call::haad8639857ae1187 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:379:40 [INFO] [stdout] 36: 0x56269738eafd - std::panicking::try::h61de115e9dce60f6 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panicking.rs:343:19 [INFO] [stdout] 37: 0x56269738eafd - std::panic::catch_unwind::h50601fd82666a838 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/panic.rs:396:14 [INFO] [stdout] 38: 0x56269738eafd - std::thread::Builder::spawn_unchecked::{{closure}}::hac267391ef9d21bd [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/thread/mod.rs:473:30 [INFO] [stdout] 39: 0x56269738eafd - core::ops::function::FnOnce::call_once{{vtable.shim}}::heb15d2d9c42706b7 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 40: 0x5626973e8efa - as core::ops::function::FnOnce>::call_once::h5446ed3fdb82006e [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/alloc/src/boxed.rs:1318:9 [INFO] [stdout] 41: 0x5626973e8efa - as core::ops::function::FnOnce>::call_once::h62a21a889329a3f2 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/alloc/src/boxed.rs:1318:9 [INFO] [stdout] 42: 0x5626973e8efa - std::sys::unix::thread::Thread::new::thread_start::h62402416daf174b6 [INFO] [stdout] at /rustc/5d5ff84130da0d74c6ece368dbe821d8f83fa526/library/std/src/sys/unix/thread.rs:71:17 [INFO] [stdout] 43: 0x7fd5fd739609 - start_thread [INFO] [stdout] 44: 0x7fd5fd50b293 - clone [INFO] [stdout] 45: 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] running `Command { std: "docker" "inspect" "a2c2400fc8cc92cffd86fe3c896e163337f44c9aeb2000a6d6636f5717f3a773", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a2c2400fc8cc92cffd86fe3c896e163337f44c9aeb2000a6d6636f5717f3a773", kill_on_drop: false }` [INFO] [stdout] a2c2400fc8cc92cffd86fe3c896e163337f44c9aeb2000a6d6636f5717f3a773