[INFO] cloning repository https://github.com/landrzejewski/rust-training [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/landrzejewski/rust-training" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flandrzejewski%2Frust-training", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flandrzejewski%2Frust-training'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 42e9d1485b85935ca105f2496e58da15df1e1624 [INFO] checking landrzejewski/rust-training against master#6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd for pr-153721 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flandrzejewski%2Frust-training" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/landrzejewski/rust-training [INFO] finished tweaking git repo https://github.com/landrzejewski/rust-training [INFO] tweaked toml for git repo https://github.com/landrzejewski/rust-training written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/landrzejewski/rust-training on toolchain 6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/landrzejewski/rust-training already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded metered-macro v0.9.0 [INFO] [stderr] Downloaded syslog v7.0.0 [INFO] [stderr] Downloaded auto_enums_core v0.7.12 [INFO] [stderr] Downloaded aspect-weave v0.2.1 [INFO] [stderr] Downloaded aspect v0.3.0 [INFO] [stderr] Downloaded compact_str v0.9.1 [INFO] [stderr] Downloaded derive_utils v0.11.2 [INFO] [stderr] Downloaded auto_enums v0.7.12 [INFO] [stderr] Downloaded metered v0.9.0 [INFO] [stderr] Downloaded synattra v0.2.1 [INFO] [stderr] Downloaded auto_enums_derive v0.7.12 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3e793bdf10248eb2ddbd6b0faebed8155c11b4589982e2893733958d93e8d540" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8 [INFO] running `Command { std: "docker" "start" "dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8" "/opt/rustwide/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8" "/opt/rustwide/cargo-home/bin/cargo" "+6eda7419e71fdbc1185ed5be7e6bff1a474ab5cd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking memchr v2.8.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling auto_enums_derive v0.7.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling zerocopy v0.8.52 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking regex-syntax v0.8.11 [INFO] [stderr] Checking socket2 v0.6.4 [INFO] [stderr] Checking mio v1.2.1 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Checking either v1.16.0 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Checking hostname v0.4.2 [INFO] [stderr] Checking plotters-backend v0.3.7 [INFO] [stderr] Compiling rust-training v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking unsafe-libyaml v0.2.11 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Checking compact_str v0.9.1 [INFO] [stderr] Checking plotters-svg v0.3.7 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking csv-core v0.1.13 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking libloading v0.9.0 [INFO] [stderr] Checking smol_str v0.3.6 [INFO] [stderr] Checking example_dylib v0.1.0 (/opt/rustwide/workdir/example_dylib) [INFO] [stderr] Checking cast v0.3.0 [INFO] [stderr] Checking rayon v1.12.0 [INFO] [stderr] Checking page_size v0.6.0 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking syn v2.0.117 [INFO] [stderr] Checking chrono v0.4.45 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking criterion-plot v0.8.2 [INFO] [stderr] Checking syslog v7.0.0 [INFO] [stderr] Checking hdrhistogram v7.5.4 [INFO] [stderr] Checking serde_json v1.0.150 [INFO] [stderr] Checking csv v1.4.0 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking regex v1.12.4 [INFO] [stderr] Checking proc_macros v0.1.0 (/opt/rustwide/workdir/proc_macros) [INFO] [stderr] Compiling derive_utils v0.11.2 [INFO] [stdout] warning: unused variable: `attr` [INFO] [stdout] --> proc_macros/src/attribute_example.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(attr: TokenStream, input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_attr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> proc_macros/src/attribute_example.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(attr: TokenStream, input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> proc_macros/src/function_example.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `impl_` is never used [INFO] [stdout] --> proc_macros/src/greet.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn impl_(input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `attr` [INFO] [stdout] --> proc_macros/src/attribute_example.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(attr: TokenStream, input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_attr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> proc_macros/src/attribute_example.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(attr: TokenStream, input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> proc_macros/src/function_example.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `impl_` is never used [INFO] [stdout] --> proc_macros/src/greet.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn impl_(input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling auto_enums_core v0.7.12 [INFO] [stderr] Checking auto_enums v0.7.12 [INFO] [stderr] Compiling synattra v0.2.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerocopy-derive v0.8.52 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Checking aspect-weave v0.2.1 [INFO] [stderr] Checking aspect v0.3.0 [INFO] [stdout] warning: unused variable: `attr` [INFO] [stdout] --> proc_macros/src/attribute_example.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(attr: TokenStream, input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_attr` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> proc_macros/src/attribute_example.rs:4:35 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(attr: TokenStream, input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `input` [INFO] [stdout] --> proc_macros/src/function_example.rs:4:16 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn execute(input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_input` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `impl_` is never used [INFO] [stdout] --> proc_macros/src/greet.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn impl_(input: TokenStream) -> TokenStream { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling metered-macro v0.9.0 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking tokio v1.52.3 [INFO] [stderr] Checking secrecy v0.10.3 [INFO] [stderr] Checking clap v4.6.1 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking metered v0.9.0 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stdout] warning: unused import: `clap::builder::Resettable::Value` [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use clap::builder::Resettable::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:4:55 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, Barrier, Condvar, Mutex, RwLock, mpsc}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `drop` [INFO] [stdout] --> src/exercises/grep_classic.rs:4:60 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::exercises::util::{assert, get_args, min_length, drop}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::pin` [INFO] [stdout] --> src/exercises/util.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hint::black_box` [INFO] [stdout] --> src/extras/mod_005_optimization_and_inlining.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::hint::black_box; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/basic/mod_002_data_types.rs:529:9 [INFO] [stdout] | [INFO] [stdout] 529 | let a = info; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x2` [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:427:9 [INFO] [stdout] | [INFO] [stdout] 427 | let x2 = x1; // copy [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_x2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t2` [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:430:9 [INFO] [stdout] | [INFO] [stdout] 430 | let t2 = t1; // move [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_t2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:854:9 [INFO] [stdout] | [INFO] [stdout] 854 | let result = parse_and_double("21")?; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parsed` [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:964:9 [INFO] [stdout] | [INFO] [stdout] 964 | let parsed: Result = "42".parse(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parsed` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking criterion v0.8.2 [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/exercises/budget.rs:181:17 [INFO] [stdout] | [INFO] [stdout] 181 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `x` is never read [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:433:9 [INFO] [stdout] | [INFO] [stdout] 432 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 433 | x: i32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `x` is never read [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:445:9 [INFO] [stdout] | [INFO] [stdout] 444 | struct Point1 { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 445 | x: i32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point1` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Point3` is never constructed [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:456:12 [INFO] [stdout] | [INFO] [stdout] 456 | struct Point3 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `B` is never constructed [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:590:8 [INFO] [stdout] | [INFO] [stdout] 590 | struct B<'b> { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Invertible` is never used [INFO] [stdout] --> src/advanced/mod_001_idioms_and_patterns.rs:362:7 [INFO] [stdout] | [INFO] [stdout] 362 | trait Invertible { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `launching_and_coordinating_threads` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:96:4 [INFO] [stdout] | [INFO] [stdout] 96 | fn launching_and_coordinating_threads() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_and_sync` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:251:4 [INFO] [stdout] | [INFO] [stdout] 251 | fn send_and_sync() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `safe_state_sharing` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:504:4 [INFO] [stdout] | [INFO] [stdout] 504 | fn safe_state_sharing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scoped_threads_and_synchronization` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:827:4 [INFO] [stdout] | [INFO] [stdout] 827 | fn scoped_threads_and_synchronization() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `magnitude` is never used [INFO] [stdout] --> src/advanced/mod_005a_ffi_c.rs:379:8 [INFO] [stdout] | [INFO] [stdout] 378 | impl RustVec2 { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 379 | fn magnitude(&self) -> c_double { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subtract` is never used [INFO] [stdout] --> src/exercises/money.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl<'a> MonetaryAmount<'a> { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | fn subtract(&mut self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subtract_value` is never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl MonetaryAmount { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | fn subtract_value(&self, other: &MonetaryAmount) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `drop` is never used [INFO] [stdout] --> src/exercises/util.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn drop(data: Vec, count: usize) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorkEntry` is never constructed [INFO] [stdout] --> src/exercises/employees.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct WorkEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_csv` is never used [INFO] [stdout] --> src/exercises/employees.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn read_csv(path: &str) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `analyze` is never used [INFO] [stdout] --> src/exercises/employees.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn analyze(entries: Vec) -> HashMap)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_report` is never used [INFO] [stdout] --> src/exercises/employees.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn write_report( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/exercises/employees.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn main() -> Result<(), Box> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scoped_threads_and_synchronization` is never used [INFO] [stdout] --> src/exercises/example.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn scoped_threads_and_synchronization(chunks: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `OTHER_WRITE`, `empty`, `insert`, `remove`, and `toggle` are never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 14 | impl $name { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | const fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn insert(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn remove(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn toggle(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | / bitflags!(FileMode: u16 { [INFO] [stdout] 116 | | OWNER_READ = 0o400, [INFO] [stdout] 117 | | OWNER_WRITE = 0o200, [INFO] [stdout] 118 | | OWNER_EXEC = 0o100, [INFO] [stdout] ... | [INFO] [stdout] 123 | | OTHER_WRITE = 0o002, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 124 | | OTHER_EXEC = 0o001, [INFO] [stdout] 125 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:2288:5 [INFO] [stdout] | [INFO] [stdout] 2288 | result_type(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 2288 | let _ = result_type(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/exercises/budget.rs:179:17 [INFO] [stdout] | [INFO] [stdout] 179 | save(&entries); //todo [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = save(&entries); //todo [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hello`, `attribute_macro`, and `function_macro` [INFO] [stdout] --> src/main.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | use proc_macros::{attribute_macro, function_macro, Hello}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `drop` [INFO] [stdout] --> src/exercises/grep_classic.rs:4:60 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::exercises::util::{assert, get_args, min_length, drop}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::pin` [INFO] [stdout] --> src/exercises/util.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tic_tac_toe_v2::run` [INFO] [stdout] --> src/exercises.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub use tic_tac_toe_v2::run; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/exercises/budget.rs:181:17 [INFO] [stdout] | [INFO] [stdout] 181 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fibonacci_recursive` is never used [INFO] [stdout] --> src/exercises/fibonacci.rs:1:4 [INFO] [stdout] | [INFO] [stdout] 1 | fn fibonacci_recursive(n: usize) -> u128 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fibonacci` is never used [INFO] [stdout] --> src/exercises/fibonacci.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn fibonacci(n: usize) -> u128 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/fibonacci.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BOARD_SIZE` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const BOARD_SIZE: usize = 3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPTY` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const EMPTY: char = '-'; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `toggle_player` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn toggle_player(player: char) -> char { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn display(board: [[char; BOARD_SIZE]; BOARD_SIZE]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_move` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn is_valid_move(board: [[char; BOARD_SIZE]; BOARD_SIZE], field: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_move` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn make_move(board: &mut [[char; BOARD_SIZE]; BOARD_SIZE], field: usize, player: char) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_board_full` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn is_board_full(board: [[char; BOARD_SIZE]; BOARD_SIZE]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_winner` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn is_winner(board: [[char; BOARD_SIZE]; BOARD_SIZE], player: char) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_field` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:122:4 [INFO] [stdout] | [INFO] [stdout] 122 | fn read_field() -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EUR` is never used [INFO] [stdout] --> src/exercises/money.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const EUR: &str = "EUR"; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLN` is never used [INFO] [stdout] --> src/exercises/money.rs:2:7 [INFO] [stdout] | [INFO] [stdout] 2 | const PLN: &str = "PLN"; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MonetaryAmount` is never constructed [INFO] [stdout] --> src/exercises/money.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct MonetaryAmount<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `add`, `subtract`, `check_currency`, `convert`, and `new` are never used [INFO] [stdout] --> src/exercises/money.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl<'a> MonetaryAmount<'a> { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 11 | fn add(&mut self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | fn subtract(&mut self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn check_currency(&self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn convert(&mut self, exchange_rate: f64, currency: &'a str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | fn new(value: f64, currency: &'a str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/money.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Currency` is never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | enum Currency { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MonetaryAmount` is never constructed [INFO] [stdout] --> src/exercises/money_with_enums.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct MonetaryAmount { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `add_value`, `subtract_value`, `check_currency`, `convert`, and `new` are never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl MonetaryAmount { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 16 | fn add_value(&self, other: &MonetaryAmount) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn subtract_value(&self, other: &MonetaryAmount) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | fn check_currency(&self, other: &MonetaryAmount) -> Result<&MonetaryAmount, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn convert(amount: &MonetaryAmount, exchange_rate: f64, currency: Currency) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | fn new(value: f64, currency: Currency) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEPARATOR` is never used [INFO] [stdout] --> src/exercises/echo.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const SEPARATOR: &str = " "; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/echo.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ARG_PREFIX` is never used [INFO] [stdout] --> src/exercises/cat.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const ARG_PREFIX: &str = "-"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUMBERING_ARG` is never used [INFO] [stdout] --> src/exercises/cat.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const NUMBERING_ARG: &str = "-n"; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUMBERING_IGNORE_EMPTY_ARG` is never used [INFO] [stdout] --> src/exercises/cat.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const NUMBERING_IGNORE_EMPTY_ARG: &str = "-nb"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Mode` is never used [INFO] [stdout] --> src/exercises/cat.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum Mode { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_config` is never used [INFO] [stdout] --> src/exercises/cat.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn get_config() -> (Vec, Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/cat.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Printer` is never used [INFO] [stdout] --> src/exercises/cat.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | type Printer = fn(usize, line: &str); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print` is never used [INFO] [stdout] --> src/exercises/cat.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn print(_line_number: usize, line: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_with_numbering` is never used [INFO] [stdout] --> src/exercises/cat.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn print_with_numbering(line_number: usize, line: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_with_numbering_ignoring_empty` is never used [INFO] [stdout] --> src/exercises/cat.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn print_with_numbering_ignoring_empty(line_number: usize, line: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cat` is never used [INFO] [stdout] --> src/exercises/cat.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn cat(filenames: &Vec, mode: &Mode) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/cat.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileStats` is never constructed [INFO] [stdout] --> src/exercises/wc.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct FileStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/wc.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wc` is never used [INFO] [stdout] --> src/exercises/wc.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn wc(paths: &Vec) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_file_stats` is never used [INFO] [stdout] --> src/exercises/wc.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn get_file_stats(file: &File) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/wc.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEPARATOR` is never used [INFO] [stdout] --> src/exercises/find.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const SEPARATOR: char = ','; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ElementType` is never used [INFO] [stdout] --> src/exercises/find.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum ElementType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/find.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_type_of` is never used [INFO] [stdout] --> src/exercises/find.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn is_type_of(entry: &DirEntry, element_type: &ElementType) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find` is never used [INFO] [stdout] --> src/exercises/find.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn find(regex: &Regex, types: &[ElementType], paths: &[String]) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/find.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_file_paths` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn find_file_paths(path: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_matching_lines` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn get_matching_lines(text: &str, file_path: &str) -> Vec<(usize, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_matching_lines` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn print_matching_lines(matching_lines: &[(usize, String)]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `grep` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn grep(text: &String, paths: &[String]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/grep.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_lines_with_text` is never used [INFO] [stdout] --> src/exercises/grep.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn get_lines_with_text(text: &str, file_path: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `grep` is never used [INFO] [stdout] --> src/exercises/grep.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn grep(text: &str, paths: &[String]) -> HashMap> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/grep.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FILE_NAME` is never used [INFO] [stdout] --> src/exercises/budget.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const FILE_NAME: &str = "budget.csv"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEPARATOR` is never used [INFO] [stdout] --> src/exercises/budget.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const SEPARATOR: &str = ";"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELD_COUNT` is never used [INFO] [stdout] --> src/exercises/budget.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const FIELD_COUNT: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WITHDRAW` is never used [INFO] [stdout] --> src/exercises/budget.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const WITHDRAW: &str = "Withdraw"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEPOSIT` is never used [INFO] [stdout] --> src/exercises/budget.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const DEPOSIT: &str = "Deposit"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Entry` is never constructed [INFO] [stdout] --> src/exercises/budget.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct Entry { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operation` is never used [INFO] [stdout] --> src/exercises/budget.rs:50:6 [INFO] [stdout] | [INFO] [stdout] 50 | enum Operation { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AppError` is never used [INFO] [stdout] --> src/exercises/budget.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 77 | enum AppError { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load` is never used [INFO] [stdout] --> src/exercises/budget.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn load() -> Result, AppError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save` is never used [INFO] [stdout] --> src/exercises/budget.rs:123:4 [INFO] [stdout] | [INFO] [stdout] 123 | fn save(entries: &[Entry]) -> Result<(), AppError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_summary` is never used [INFO] [stdout] --> src/exercises/budget.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn show_summary(entries: &[Entry]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/budget.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BOARD_SIZE` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const BOARD_SIZE: usize = 3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELD_COUNT` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const FIELD_COUNT: usize = BOARD_SIZE * BOARD_SIZE; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Player` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | enum Player { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `toggle` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 13 | impl Player { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 14 | fn toggle(self) -> Player { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Cell` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:33:6 [INFO] [stdout] | [INFO] [stdout] 33 | enum Cell { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MoveError` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:48:6 [INFO] [stdout] | [INFO] [stdout] 48 | enum MoveError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Board` is never constructed [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | struct Board { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `make_move`, `is_full`, and `is_winner` are never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 68 | impl Board { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 69 | fn new() -> Board { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn make_move(&mut self, field: usize, player: Player) -> Result<(), MoveError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | fn is_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn is_winner(&self, player: Player) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InputError` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:122:6 [INFO] [stdout] | [INFO] [stdout] 122 | enum InputError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_field` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:146:4 [INFO] [stdout] | [INFO] [stdout] 146 | fn read_field() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_args` is never used [INFO] [stdout] --> src/exercises/util.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn get_args() -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert` is never used [INFO] [stdout] --> src/exercises/util.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn assert(value: T, predicate: impl Fn(T) -> bool, on_failure: impl Fn()) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_not_empty` is never used [INFO] [stdout] --> src/exercises/util.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn is_not_empty(vec: &[T]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `min_length` is never used [INFO] [stdout] --> src/exercises/util.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn min_length(length: usize) -> impl Fn(&Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `drop` is never used [INFO] [stdout] --> src/exercises/util.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn drop(data: Vec, count: usize) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorkEntry` is never constructed [INFO] [stdout] --> src/exercises/employees.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct WorkEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_csv` is never used [INFO] [stdout] --> src/exercises/employees.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn read_csv(path: &str) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `analyze` is never used [INFO] [stdout] --> src/exercises/employees.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn analyze(entries: Vec) -> HashMap)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_report` is never used [INFO] [stdout] --> src/exercises/employees.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn write_report( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/exercises/employees.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn main() -> Result<(), Box> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_prime` is never used [INFO] [stdout] --> src/exercises/pipeline.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn is_prime(n: u64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/pipeline.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_words` is never used [INFO] [stdout] --> src/exercises/word_counter.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn count_words(text: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_into` is never used [INFO] [stdout] --> src/exercises/word_counter.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn merge_into(target: &mut HashMap, source: HashMap) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/word_counter.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scoped_threads_and_synchronization` is never used [INFO] [stdout] --> src/exercises/example.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn scoped_threads_and_synchronization(chunks: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Link` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | type Link = Option>>; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `List` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, `pop`, and `print` are never used [INFO] [stdout] --> src/exercises/linked_lists.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl List { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 19 | fn new() -> List { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn push(&mut self, element: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn print(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `linked_list` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn linked_list() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DoublyLink` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | type DoublyLink = Option>>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DoublyNode` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | struct DoublyNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl DoublyNode { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 66 | fn new(element: i32) -> Rc> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DoublyLinkedList` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | struct DoublyLinkedList { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, `pop`, and `print` are never used [INFO] [stdout] --> src/exercises/linked_lists.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 82 | impl DoublyLinkedList { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 83 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | fn push(&mut self, element: i32) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn print(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `doubly_linked_list` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:137:4 [INFO] [stdout] | [INFO] [stdout] 137 | fn doubly_linked_list() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CycleNode` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | struct CycleNode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reference_cycles` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:181:4 [INFO] [stdout] | [INFO] [stdout] 181 | fn reference_cycles() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Permissions` is never constructed [INFO] [stdout] --> src/exercises/bitflags_macro.rs:108:11 [INFO] [stdout] | [INFO] [stdout] 108 | bitflags!(Permissions: u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 14 | impl $name { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | const fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn all() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn contains(self, other: Self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn insert(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn remove(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn toggle(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn is_empty(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn bits(self) -> $repr { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | / bitflags!(Permissions: u8 { [INFO] [stdout] 109 | | READ = 0b0001, [INFO] [stdout] | | ^^^^ [INFO] [stdout] 110 | | WRITE = 0b0010, [INFO] [stdout] | | ^^^^^ [INFO] [stdout] 111 | | EXECUTE = 0b0100, [INFO] [stdout] | | ^^^^^^^ [INFO] [stdout] 112 | | DELETE = 0b1000, [INFO] [stdout] | | ^^^^^^ [INFO] [stdout] 113 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileMode` is never constructed [INFO] [stdout] --> src/exercises/bitflags_macro.rs:115:11 [INFO] [stdout] | [INFO] [stdout] 115 | bitflags!(FileMode: u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 14 | impl $name { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | const fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn all() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn contains(self, other: Self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn insert(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn remove(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn toggle(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn is_empty(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn bits(self) -> $repr { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | / bitflags!(FileMode: u16 { [INFO] [stdout] 116 | | OWNER_READ = 0o400, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 117 | | OWNER_WRITE = 0o200, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 118 | | OWNER_EXEC = 0o100, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 119 | | GROUP_READ = 0o040, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 120 | | GROUP_WRITE = 0o020, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 121 | | GROUP_EXEC = 0o010, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 122 | | OTHER_READ = 0o004, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 123 | | OTHER_WRITE = 0o002, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 124 | | OTHER_EXEC = 0o001, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 125 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:131:8 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ColorError` is never used [INFO] [stdout] --> src/exercises/color_space.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | enum ColorError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rgb` is never constructed [INFO] [stdout] --> src/exercises/color_space.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | struct Rgb(u8, u8, u8); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `brightness`, and `to_grayscale` are never used [INFO] [stdout] --> src/exercises/color_space.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 42 | impl Rgb { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 43 | fn new(r: u8, g: u8, b: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | fn brightness(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | fn to_grayscale(&self) -> Rgb { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HexColor` is never constructed [INFO] [stdout] --> src/exercises/color_space.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | struct HexColor(String); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hsl` is never constructed [INFO] [stdout] --> src/exercises/color_space.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | struct Hsl(f64, f64, f64); // h, s, l [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ColorSpace` is never used [INFO] [stdout] --> src/exercises/color_space.rs:198:7 [INFO] [stdout] | [INFO] [stdout] 198 | trait ColorSpace: sealed::Sealed + fmt::Display { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ColorPaletteExt` is never used [INFO] [stdout] --> src/exercises/color_space.rs:277:7 [INFO] [stdout] | [INFO] [stdout] 277 | trait ColorPaletteExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `describe_color` is never used [INFO] [stdout] --> src/exercises/color_space.rs:309:4 [INFO] [stdout] | [INFO] [stdout] 309 | fn describe_color(color: &dyn ColorSpace) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/color_space.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Sealed` is never used [INFO] [stdout] --> src/exercises/color_space.rs:195:15 [INFO] [stdout] | [INFO] [stdout] 195 | pub trait Sealed {} [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HELLO_HTML` is never used [INFO] [stdout] --> src/exercises/http_server.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const HELLO_HTML: &str = "\ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NOT_FOUND_HTML` is never used [INFO] [stdout] --> src/exercises/http_server.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const NOT_FOUND_HTML: &str = "\ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Job` is never used [INFO] [stdout] --> src/exercises/http_server.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | type Job = Box; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ThreadPool` is never constructed [INFO] [stdout] --> src/exercises/http_server.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct ThreadPool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `execute` are never used [INFO] [stdout] --> src/exercises/http_server.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl ThreadPool { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 23 | fn new(size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | fn execute(&self, f: F) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Worker` is never constructed [INFO] [stdout] --> src/exercises/http_server.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | struct Worker { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/exercises/http_server.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 63 | impl Worker { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 64 | fn new(id: usize, receiver: Arc>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_connection` is never used [INFO] [stdout] --> src/exercises/http_server.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn handle_connection(mut stream: TcpStream) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_request` is never used [INFO] [stdout] --> src/exercises/http_server.rs:112:4 [INFO] [stdout] | [INFO] [stdout] 112 | fn send_request(addr: SocketAddr, path: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/http_server.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Permission` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Permission; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ReadOnly` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | type ReadOnly = Permission; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ReadWrite` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type ReadWrite = Permission; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ReadExecute` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type ReadExecute = Permission; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `FullAccess` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | type FullAccess = Permission; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NoAccess` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | type NoAccess = Permission; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandle` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | struct FileHandle

{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `path` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl

FileHandle

{ [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 41 | fn path(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 47 | impl FileHandle> { [INFO] [stdout] | --------------------------------------------------------------------- method in this implementation [INFO] [stdout] 48 | fn read(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 54 | impl FileHandle> { [INFO] [stdout] | --------------------------------------------------------------------- method in this implementation [INFO] [stdout] 55 | fn write(&mut self, data: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `execute` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 61 | impl FileHandle> { [INFO] [stdout] | --------------------------------------------------------------------- method in this implementation [INFO] [stdout] 62 | fn execute(&self) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `open_file` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:69:4 [INFO] [stdout] | [INFO] [stdout] 69 | fn open_file

(path: &str, content: &str) -> FileHandle

{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserId` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | struct UserId(u32); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GroupId` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | struct GroupId(u32); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_info` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn file_info(path: &str, owner: UserId, group: GroupId) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `PermissionDescExt` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:107:7 [INFO] [stdout] | [INFO] [stdout] 107 | trait PermissionDescExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Auditable` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:140:7 [INFO] [stdout] | [INFO] [stdout] 140 | trait Auditable { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `demo_auditable` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:155:4 [INFO] [stdout] | [INFO] [stdout] 155 | fn demo_auditable(handle: &dyn Auditable) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Red` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | struct Red; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Green` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Green; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Yellow` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Yellow; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FlashingRed` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct FlashingRed { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TrafficLight` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | struct TrafficLight { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `turn_green` are never used [INFO] [stdout] --> src/exercises/traffic_light.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 28 | impl TrafficLight { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 29 | fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn turn_green(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `turn_yellow` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 46 | impl TrafficLight { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] 47 | fn turn_yellow(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `turn_red` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | impl TrafficLight { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] 57 | fn turn_red(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `recover` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 66 | impl TrafficLight { [INFO] [stdout] | ------------------------------ method in this implementation [INFO] [stdout] 67 | fn recover(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Emergency` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:80:7 [INFO] [stdout] | [INFO] [stdout] 80 | trait Emergency { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `LightStatus` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:100:7 [INFO] [stdout] | [INFO] [stdout] 100 | trait LightStatus: fmt::Display { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Intersection` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | struct Intersection { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add`, `all_stopped`, and `report` are never used [INFO] [stdout] --> src/exercises/traffic_light.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 159 | impl Intersection { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 160 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn add(&mut self, light: Box) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn all_stopped(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | fn report(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/exercises/budget.rs:179:17 [INFO] [stdout] | [INFO] [stdout] 179 | save(&entries); //todo [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = save(&entries); //todo [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Hello`, `attribute_macro`, and `function_macro` [INFO] [stdout] --> src/main.rs:22:19 [INFO] [stdout] | [INFO] [stdout] 22 | use proc_macros::{attribute_macro, function_macro, Hello}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `drop` [INFO] [stdout] --> src/exercises/grep_classic.rs:4:60 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::exercises::util::{assert, get_args, min_length, drop}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::pin` [INFO] [stdout] --> src/exercises/util.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tic_tac_toe_v2::run` [INFO] [stdout] --> src/exercises.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | pub use tic_tac_toe_v2::run; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/exercises/budget.rs:181:17 [INFO] [stdout] | [INFO] [stdout] 181 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `clap::builder::Resettable::Value` [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use clap::builder::Resettable::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fibonacci_recursive` is never used [INFO] [stdout] --> src/exercises/fibonacci.rs:1:4 [INFO] [stdout] | [INFO] [stdout] 1 | fn fibonacci_recursive(n: usize) -> u128 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fibonacci` is never used [INFO] [stdout] --> src/exercises/fibonacci.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn fibonacci(n: usize) -> u128 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/fibonacci.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BOARD_SIZE` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const BOARD_SIZE: usize = 3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EMPTY` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const EMPTY: char = '-'; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `toggle_player` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn toggle_player(player: char) -> char { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `display` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn display(board: [[char; BOARD_SIZE]; BOARD_SIZE]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_move` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn is_valid_move(board: [[char; BOARD_SIZE]; BOARD_SIZE], field: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `make_move` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:36:4 [INFO] [stdout] | [INFO] [stdout] 36 | fn make_move(board: &mut [[char; BOARD_SIZE]; BOARD_SIZE], field: usize, player: char) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_board_full` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn is_board_full(board: [[char; BOARD_SIZE]; BOARD_SIZE]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_winner` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:62:4 [INFO] [stdout] | [INFO] [stdout] 62 | fn is_winner(board: [[char; BOARD_SIZE]; BOARD_SIZE], player: char) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_field` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:122:4 [INFO] [stdout] | [INFO] [stdout] 122 | fn read_field() -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe.rs:129:8 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EUR` is never used [INFO] [stdout] --> src/exercises/money.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const EUR: &str = "EUR"; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PLN` is never used [INFO] [stdout] --> src/exercises/money.rs:2:7 [INFO] [stdout] | [INFO] [stdout] 2 | const PLN: &str = "PLN"; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MonetaryAmount` is never constructed [INFO] [stdout] --> src/exercises/money.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | struct MonetaryAmount<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `add`, `subtract`, `check_currency`, `convert`, and `new` are never used [INFO] [stdout] --> src/exercises/money.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl<'a> MonetaryAmount<'a> { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 11 | fn add(&mut self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | fn subtract(&mut self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn check_currency(&self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | fn convert(&mut self, exchange_rate: f64, currency: &'a str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | fn new(value: f64, currency: &'a str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/money.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Currency` is never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | enum Currency { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MonetaryAmount` is never constructed [INFO] [stdout] --> src/exercises/money_with_enums.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct MonetaryAmount { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `add_value`, `subtract_value`, `check_currency`, `convert`, and `new` are never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:16:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl MonetaryAmount { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 16 | fn add_value(&self, other: &MonetaryAmount) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn subtract_value(&self, other: &MonetaryAmount) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | fn check_currency(&self, other: &MonetaryAmount) -> Result<&MonetaryAmount, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | fn convert(amount: &MonetaryAmount, exchange_rate: f64, currency: Currency) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | fn new(value: f64, currency: Currency) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEPARATOR` is never used [INFO] [stdout] --> src/exercises/echo.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const SEPARATOR: &str = " "; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/echo.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ARG_PREFIX` is never used [INFO] [stdout] --> src/exercises/cat.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | const ARG_PREFIX: &str = "-"; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUMBERING_ARG` is never used [INFO] [stdout] --> src/exercises/cat.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const NUMBERING_ARG: &str = "-n"; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NUMBERING_IGNORE_EMPTY_ARG` is never used [INFO] [stdout] --> src/exercises/cat.rs:8:7 [INFO] [stdout] | [INFO] [stdout] 8 | const NUMBERING_IGNORE_EMPTY_ARG: &str = "-nb"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Mode` is never used [INFO] [stdout] --> src/exercises/cat.rs:10:6 [INFO] [stdout] | [INFO] [stdout] 10 | enum Mode { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_config` is never used [INFO] [stdout] --> src/exercises/cat.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn get_config() -> (Vec, Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/cat.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Printer` is never used [INFO] [stdout] --> src/exercises/cat.rs:41:6 [INFO] [stdout] | [INFO] [stdout] 41 | type Printer = fn(usize, line: &str); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print` is never used [INFO] [stdout] --> src/exercises/cat.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn print(_line_number: usize, line: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_with_numbering` is never used [INFO] [stdout] --> src/exercises/cat.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn print_with_numbering(line_number: usize, line: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_with_numbering_ignoring_empty` is never used [INFO] [stdout] --> src/exercises/cat.rs:51:4 [INFO] [stdout] | [INFO] [stdout] 51 | fn print_with_numbering_ignoring_empty(line_number: usize, line: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `cat` is never used [INFO] [stdout] --> src/exercises/cat.rs:59:4 [INFO] [stdout] | [INFO] [stdout] 59 | fn cat(filenames: &Vec, mode: &Mode) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/cat.rs:80:8 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileStats` is never constructed [INFO] [stdout] --> src/exercises/wc.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct FileStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `mpsc` [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:4:55 [INFO] [stdout] | [INFO] [stdout] 4 | use std::sync::{Arc, Barrier, Condvar, Mutex, RwLock, mpsc}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/wc.rs:25:4 [INFO] [stdout] | [INFO] [stdout] 25 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wc` is never used [INFO] [stdout] --> src/exercises/wc.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn wc(paths: &Vec) { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_file_stats` is never used [INFO] [stdout] --> src/exercises/wc.rs:42:4 [INFO] [stdout] | [INFO] [stdout] 42 | fn get_file_stats(file: &File) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/wc.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEPARATOR` is never used [INFO] [stdout] --> src/exercises/find.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const SEPARATOR: char = ','; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ElementType` is never used [INFO] [stdout] --> src/exercises/find.rs:7:6 [INFO] [stdout] | [INFO] [stdout] 7 | enum ElementType { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/find.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_type_of` is never used [INFO] [stdout] --> src/exercises/find.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn is_type_of(entry: &DirEntry, element_type: &ElementType) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find` is never used [INFO] [stdout] --> src/exercises/find.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn find(regex: &Regex, types: &[ElementType], paths: &[String]) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/find.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:6:4 [INFO] [stdout] | [INFO] [stdout] 6 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_file_paths` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:13:4 [INFO] [stdout] | [INFO] [stdout] 13 | fn find_file_paths(path: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_matching_lines` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn get_matching_lines(text: &str, file_path: &str) -> Vec<(usize, String)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_matching_lines` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn print_matching_lines(matching_lines: &[(usize, String)]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `grep` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn grep(text: &String, paths: &[String]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/grep_classic.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_help` is never used [INFO] [stdout] --> src/exercises/grep.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn show_help() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_lines_with_text` is never used [INFO] [stdout] --> src/exercises/grep.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn get_lines_with_text(text: &str, file_path: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `grep` is never used [INFO] [stdout] --> src/exercises/grep.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn grep(text: &str, paths: &[String]) -> HashMap> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/grep.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FILE_NAME` is never used [INFO] [stdout] --> src/exercises/budget.rs:10:7 [INFO] [stdout] | [INFO] [stdout] 10 | const FILE_NAME: &str = "budget.csv"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SEPARATOR` is never used [INFO] [stdout] --> src/exercises/budget.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const SEPARATOR: &str = ";"; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELD_COUNT` is never used [INFO] [stdout] --> src/exercises/budget.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const FIELD_COUNT: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `WITHDRAW` is never used [INFO] [stdout] --> src/exercises/budget.rs:13:7 [INFO] [stdout] | [INFO] [stdout] 13 | const WITHDRAW: &str = "Withdraw"; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEPOSIT` is never used [INFO] [stdout] --> src/exercises/budget.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const DEPOSIT: &str = "Deposit"; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `drop` [INFO] [stdout] --> src/exercises/grep_classic.rs:4:60 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::exercises::util::{assert, get_args, min_length, drop}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Entry` is never constructed [INFO] [stdout] --> src/exercises/budget.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct Entry { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Operation` is never used [INFO] [stdout] --> src/exercises/budget.rs:50:6 [INFO] [stdout] | [INFO] [stdout] 50 | enum Operation { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `AppError` is never used [INFO] [stdout] --> src/exercises/budget.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 77 | enum AppError { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `load` is never used [INFO] [stdout] --> src/exercises/budget.rs:113:4 [INFO] [stdout] | [INFO] [stdout] 113 | fn load() -> Result, AppError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `save` is never used [INFO] [stdout] --> src/exercises/budget.rs:123:4 [INFO] [stdout] | [INFO] [stdout] 123 | fn save(entries: &[Entry]) -> Result<(), AppError> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `show_summary` is never used [INFO] [stdout] --> src/exercises/budget.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn show_summary(entries: &[Entry]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/budget.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::pin` [INFO] [stdout] --> src/exercises/util.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::pin::pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `BOARD_SIZE` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:4:7 [INFO] [stdout] | [INFO] [stdout] 4 | const BOARD_SIZE: usize = 3; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELD_COUNT` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:5:7 [INFO] [stdout] | [INFO] [stdout] 5 | const FIELD_COUNT: usize = BOARD_SIZE * BOARD_SIZE; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Player` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:8:6 [INFO] [stdout] | [INFO] [stdout] 8 | enum Player { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `toggle` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 13 | impl Player { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] 14 | fn toggle(self) -> Player { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Cell` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:33:6 [INFO] [stdout] | [INFO] [stdout] 33 | enum Cell { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `MoveError` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:48:6 [INFO] [stdout] | [INFO] [stdout] 48 | enum MoveError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Board` is never constructed [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | struct Board { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `make_move`, `is_full`, and `is_winner` are never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 68 | impl Board { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 69 | fn new() -> Board { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn make_move(&mut self, field: usize, player: Player) -> Result<(), MoveError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | fn is_full(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 94 | fn is_winner(&self, player: Player) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `InputError` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:122:6 [INFO] [stdout] | [INFO] [stdout] 122 | enum InputError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_field` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:146:4 [INFO] [stdout] | [INFO] [stdout] 146 | fn read_field() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/tic_tac_toe_v2.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_args` is never used [INFO] [stdout] --> src/exercises/util.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn get_args() -> Vec { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `assert` is never used [INFO] [stdout] --> src/exercises/util.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn assert(value: T, predicate: impl Fn(T) -> bool, on_failure: impl Fn()) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_not_empty` is never used [INFO] [stdout] --> src/exercises/util.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn is_not_empty(vec: &[T]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `min_length` is never used [INFO] [stdout] --> src/exercises/util.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn min_length(length: usize) -> impl Fn(&Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `drop` is never used [INFO] [stdout] --> src/exercises/util.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn drop(data: Vec, count: usize) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorkEntry` is never constructed [INFO] [stdout] --> src/exercises/employees.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct WorkEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_csv` is never used [INFO] [stdout] --> src/exercises/employees.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn read_csv(path: &str) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `analyze` is never used [INFO] [stdout] --> src/exercises/employees.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn analyze(entries: Vec) -> HashMap)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_report` is never used [INFO] [stdout] --> src/exercises/employees.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn write_report( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/exercises/employees.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn main() -> Result<(), Box> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_prime` is never used [INFO] [stdout] --> src/exercises/pipeline.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn is_prime(n: u64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/pipeline.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_words` is never used [INFO] [stdout] --> src/exercises/word_counter.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn count_words(text: &str) -> HashMap { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_into` is never used [INFO] [stdout] --> src/exercises/word_counter.rs:19:4 [INFO] [stdout] | [INFO] [stdout] 19 | fn merge_into(target: &mut HashMap, source: HashMap) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/word_counter.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scoped_threads_and_synchronization` is never used [INFO] [stdout] --> src/exercises/example.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn scoped_threads_and_synchronization(chunks: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Link` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:5:6 [INFO] [stdout] | [INFO] [stdout] 5 | type Link = Option>>; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `List` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | struct List { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, `pop`, and `print` are never used [INFO] [stdout] --> src/exercises/linked_lists.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 18 | impl List { [INFO] [stdout] | ------------------------- associated items in this implementation [INFO] [stdout] 19 | fn new() -> List { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | fn push(&mut self, element: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | fn print(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `linked_list` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:45:4 [INFO] [stdout] | [INFO] [stdout] 45 | fn linked_list() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `DoublyLink` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:56:6 [INFO] [stdout] | [INFO] [stdout] 56 | type DoublyLink = Option>>; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DoublyNode` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:59:8 [INFO] [stdout] | [INFO] [stdout] 59 | struct DoublyNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::hint::black_box` [INFO] [stdout] --> src/extras/mod_005_optimization_and_inlining.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::hint::black_box; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl DoublyNode { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] 66 | fn new(element: i32) -> Rc> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DoublyLinkedList` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | struct DoublyLinkedList { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, `pop`, and `print` are never used [INFO] [stdout] --> src/exercises/linked_lists.rs:83:8 [INFO] [stdout] | [INFO] [stdout] 82 | impl DoublyLinkedList { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 83 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 90 | fn push(&mut self, element: i32) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 107 | fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | fn print(&self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `doubly_linked_list` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:137:4 [INFO] [stdout] | [INFO] [stdout] 137 | fn doubly_linked_list() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CycleNode` is never constructed [INFO] [stdout] --> src/exercises/linked_lists.rs:163:8 [INFO] [stdout] | [INFO] [stdout] 163 | struct CycleNode { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reference_cycles` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:181:4 [INFO] [stdout] | [INFO] [stdout] 181 | fn reference_cycles() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/linked_lists.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Permissions` is never constructed [INFO] [stdout] --> src/exercises/bitflags_macro.rs:108:11 [INFO] [stdout] | [INFO] [stdout] 108 | bitflags!(Permissions: u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 14 | impl $name { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | const fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn all() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn contains(self, other: Self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn insert(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn remove(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn toggle(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn is_empty(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn bits(self) -> $repr { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 108 | / bitflags!(Permissions: u8 { [INFO] [stdout] 109 | | READ = 0b0001, [INFO] [stdout] | | ^^^^ [INFO] [stdout] 110 | | WRITE = 0b0010, [INFO] [stdout] | | ^^^^^ [INFO] [stdout] 111 | | EXECUTE = 0b0100, [INFO] [stdout] | | ^^^^^^^ [INFO] [stdout] 112 | | DELETE = 0b1000, [INFO] [stdout] | | ^^^^^^ [INFO] [stdout] 113 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileMode` is never constructed [INFO] [stdout] --> src/exercises/bitflags_macro.rs:115:11 [INFO] [stdout] | [INFO] [stdout] 115 | bitflags!(FileMode: u16 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 14 | impl $name { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | const fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | fn all() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | fn contains(self, other: Self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn insert(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn remove(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn toggle(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | fn is_empty(self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | fn bits(self) -> $repr { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | / bitflags!(FileMode: u16 { [INFO] [stdout] 116 | | OWNER_READ = 0o400, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 117 | | OWNER_WRITE = 0o200, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 118 | | OWNER_EXEC = 0o100, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 119 | | GROUP_READ = 0o040, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 120 | | GROUP_WRITE = 0o020, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 121 | | GROUP_EXEC = 0o010, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 122 | | OTHER_READ = 0o004, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 123 | | OTHER_WRITE = 0o002, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 124 | | OTHER_EXEC = 0o001, [INFO] [stdout] | | ^^^^^^^^^^ [INFO] [stdout] 125 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:131:8 [INFO] [stdout] | [INFO] [stdout] 131 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ColorError` is never used [INFO] [stdout] --> src/exercises/color_space.rs:9:6 [INFO] [stdout] | [INFO] [stdout] 9 | enum ColorError { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Rgb` is never constructed [INFO] [stdout] --> src/exercises/color_space.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | struct Rgb(u8, u8, u8); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `brightness`, and `to_grayscale` are never used [INFO] [stdout] --> src/exercises/color_space.rs:43:8 [INFO] [stdout] | [INFO] [stdout] 42 | impl Rgb { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 43 | fn new(r: u8, g: u8, b: u8) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | fn brightness(&self) -> f64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | fn to_grayscale(&self) -> Rgb { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HexColor` is never constructed [INFO] [stdout] --> src/exercises/color_space.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 69 | struct HexColor(String); [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Hsl` is never constructed [INFO] [stdout] --> src/exercises/color_space.rs:105:8 [INFO] [stdout] | [INFO] [stdout] 105 | struct Hsl(f64, f64, f64); // h, s, l [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ColorSpace` is never used [INFO] [stdout] --> src/exercises/color_space.rs:198:7 [INFO] [stdout] | [INFO] [stdout] 198 | trait ColorSpace: sealed::Sealed + fmt::Display { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `ColorPaletteExt` is never used [INFO] [stdout] --> src/exercises/color_space.rs:277:7 [INFO] [stdout] | [INFO] [stdout] 277 | trait ColorPaletteExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `describe_color` is never used [INFO] [stdout] --> src/exercises/color_space.rs:309:4 [INFO] [stdout] | [INFO] [stdout] 309 | fn describe_color(color: &dyn ColorSpace) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/color_space.rs:318:8 [INFO] [stdout] | [INFO] [stdout] 318 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Sealed` is never used [INFO] [stdout] --> src/exercises/color_space.rs:195:15 [INFO] [stdout] | [INFO] [stdout] 195 | pub trait Sealed {} [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `HELLO_HTML` is never used [INFO] [stdout] --> src/exercises/http_server.rs:7:7 [INFO] [stdout] | [INFO] [stdout] 7 | const HELLO_HTML: &str = "\ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `NOT_FOUND_HTML` is never used [INFO] [stdout] --> src/exercises/http_server.rs:11:7 [INFO] [stdout] | [INFO] [stdout] 11 | const NOT_FOUND_HTML: &str = "\ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Job` is never used [INFO] [stdout] --> src/exercises/http_server.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | type Job = Box; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ThreadPool` is never constructed [INFO] [stdout] --> src/exercises/http_server.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | struct ThreadPool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `execute` are never used [INFO] [stdout] --> src/exercises/http_server.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 22 | impl ThreadPool { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 23 | fn new(size: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 36 | fn execute(&self, f: F) [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Worker` is never constructed [INFO] [stdout] --> src/exercises/http_server.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | struct Worker { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/exercises/http_server.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 63 | impl Worker { [INFO] [stdout] | ----------- associated function in this implementation [INFO] [stdout] 64 | fn new(id: usize, receiver: Arc>>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `handle_connection` is never used [INFO] [stdout] --> src/exercises/http_server.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn handle_connection(mut stream: TcpStream) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_request` is never used [INFO] [stdout] --> src/exercises/http_server.rs:112:4 [INFO] [stdout] | [INFO] [stdout] 112 | fn send_request(addr: SocketAddr, path: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/http_server.rs:128:8 [INFO] [stdout] | [INFO] [stdout] 128 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Permission` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Permission; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ReadOnly` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:12:6 [INFO] [stdout] | [INFO] [stdout] 12 | type ReadOnly = Permission; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ReadWrite` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:13:6 [INFO] [stdout] | [INFO] [stdout] 13 | type ReadWrite = Permission; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `ReadExecute` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:14:6 [INFO] [stdout] | [INFO] [stdout] 14 | type ReadExecute = Permission; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `FullAccess` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:15:6 [INFO] [stdout] | [INFO] [stdout] 15 | type FullAccess = Permission; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `NoAccess` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:16:6 [INFO] [stdout] | [INFO] [stdout] 16 | type NoAccess = Permission; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FileHandle` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | struct FileHandle

{ [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `path` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl

FileHandle

{ [INFO] [stdout] | --------------------- method in this implementation [INFO] [stdout] 41 | fn path(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `read` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 47 | impl FileHandle> { [INFO] [stdout] | --------------------------------------------------------------------- method in this implementation [INFO] [stdout] 48 | fn read(&self) -> &str { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `write` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 54 | impl FileHandle> { [INFO] [stdout] | --------------------------------------------------------------------- method in this implementation [INFO] [stdout] 55 | fn write(&mut self, data: &str) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `execute` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 61 | impl FileHandle> { [INFO] [stdout] | --------------------------------------------------------------------- method in this implementation [INFO] [stdout] 62 | fn execute(&self) -> i32 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `open_file` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:69:4 [INFO] [stdout] | [INFO] [stdout] 69 | fn open_file

(path: &str, content: &str) -> FileHandle

{ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `UserId` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:82:8 [INFO] [stdout] | [INFO] [stdout] 82 | struct UserId(u32); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GroupId` is never constructed [INFO] [stdout] --> src/exercises/permission_system.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | struct GroupId(u32); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_info` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn file_info(path: &str, owner: UserId, group: GroupId) -> String { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `PermissionDescExt` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:107:7 [INFO] [stdout] | [INFO] [stdout] 107 | trait PermissionDescExt { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Auditable` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:140:7 [INFO] [stdout] | [INFO] [stdout] 140 | trait Auditable { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `demo_auditable` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:155:4 [INFO] [stdout] | [INFO] [stdout] 155 | fn demo_auditable(handle: &dyn Auditable) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/permission_system.rs:159:8 [INFO] [stdout] | [INFO] [stdout] 159 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Red` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | struct Red; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Green` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | struct Green; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Yellow` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Yellow; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FlashingRed` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct FlashingRed { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TrafficLight` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | struct TrafficLight { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `turn_green` are never used [INFO] [stdout] --> src/exercises/traffic_light.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 28 | impl TrafficLight { [INFO] [stdout] | ---------------------- associated items in this implementation [INFO] [stdout] 29 | fn new(name: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn turn_green(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `turn_yellow` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 46 | impl TrafficLight { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] 47 | fn turn_yellow(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `turn_red` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 56 | impl TrafficLight { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] 57 | fn turn_red(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `recover` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 66 | impl TrafficLight { [INFO] [stdout] | ------------------------------ method in this implementation [INFO] [stdout] 67 | fn recover(self) -> TrafficLight { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Emergency` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:80:7 [INFO] [stdout] | [INFO] [stdout] 80 | trait Emergency { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `LightStatus` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:100:7 [INFO] [stdout] | [INFO] [stdout] 100 | trait LightStatus: fmt::Display { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Intersection` is never constructed [INFO] [stdout] --> src/exercises/traffic_light.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | struct Intersection { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add`, `all_stopped`, and `report` are never used [INFO] [stdout] --> src/exercises/traffic_light.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 159 | impl Intersection { [INFO] [stdout] | ----------------- associated items in this implementation [INFO] [stdout] 160 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn add(&mut self, light: Box) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | fn all_stopped(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 172 | fn report(&self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run` is never used [INFO] [stdout] --> src/exercises/traffic_light.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn run() { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/exercises/budget.rs:179:17 [INFO] [stdout] | [INFO] [stdout] 179 | save(&entries); //todo [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = save(&entries); //todo [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/basic/mod_002_data_types.rs:529:9 [INFO] [stdout] | [INFO] [stdout] 529 | let a = info; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x2` [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:427:9 [INFO] [stdout] | [INFO] [stdout] 427 | let x2 = x1; // copy [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_x2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t2` [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:430:9 [INFO] [stdout] | [INFO] [stdout] 430 | let t2 = t1; // move [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_t2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result` [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:854:9 [INFO] [stdout] | [INFO] [stdout] 854 | let result = parse_and_double("21")?; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_result` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `parsed` [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:964:9 [INFO] [stdout] | [INFO] [stdout] 964 | let parsed: Result = "42".parse(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_parsed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `err` [INFO] [stdout] --> src/exercises/budget.rs:181:17 [INFO] [stdout] | [INFO] [stdout] 181 | Err(err) => { [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_err` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `x` is never read [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:433:9 [INFO] [stdout] | [INFO] [stdout] 432 | struct Point { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 433 | x: i32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `x` is never read [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:445:9 [INFO] [stdout] | [INFO] [stdout] 444 | struct Point1 { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 445 | x: i32, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `Point1` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Point3` is never constructed [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:456:12 [INFO] [stdout] | [INFO] [stdout] 456 | struct Point3 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `B` is never constructed [INFO] [stdout] --> src/basic/mod_006_ownership_and_lifetimes.rs:590:8 [INFO] [stdout] | [INFO] [stdout] 590 | struct B<'b> { [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Invertible` is never used [INFO] [stdout] --> src/advanced/mod_001_idioms_and_patterns.rs:362:7 [INFO] [stdout] | [INFO] [stdout] 362 | trait Invertible { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `launching_and_coordinating_threads` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:96:4 [INFO] [stdout] | [INFO] [stdout] 96 | fn launching_and_coordinating_threads() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_and_sync` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:251:4 [INFO] [stdout] | [INFO] [stdout] 251 | fn send_and_sync() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `safe_state_sharing` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:504:4 [INFO] [stdout] | [INFO] [stdout] 504 | fn safe_state_sharing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scoped_threads_and_synchronization` is never used [INFO] [stdout] --> src/advanced/mod_003_threads_and_concurrency.rs:827:4 [INFO] [stdout] | [INFO] [stdout] 827 | fn scoped_threads_and_synchronization() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `magnitude` is never used [INFO] [stdout] --> src/advanced/mod_005a_ffi_c.rs:379:8 [INFO] [stdout] | [INFO] [stdout] 378 | impl RustVec2 { [INFO] [stdout] | ------------- method in this implementation [INFO] [stdout] 379 | fn magnitude(&self) -> c_double { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subtract` is never used [INFO] [stdout] --> src/exercises/money.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 10 | impl<'a> MonetaryAmount<'a> { [INFO] [stdout] | --------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | fn subtract(&mut self, other: &MonetaryAmount) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `subtract_value` is never used [INFO] [stdout] --> src/exercises/money_with_enums.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 15 | impl MonetaryAmount { [INFO] [stdout] | ------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | fn subtract_value(&self, other: &MonetaryAmount) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `drop` is never used [INFO] [stdout] --> src/exercises/util.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn drop(data: Vec, count: usize) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorkEntry` is never constructed [INFO] [stdout] --> src/exercises/employees.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct WorkEntry { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_csv` is never used [INFO] [stdout] --> src/exercises/employees.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn read_csv(path: &str) -> Result, Box> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `analyze` is never used [INFO] [stdout] --> src/exercises/employees.rs:35:4 [INFO] [stdout] | [INFO] [stdout] 35 | fn analyze(entries: Vec) -> HashMap)> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `write_report` is never used [INFO] [stdout] --> src/exercises/employees.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn write_report( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `main` is never used [INFO] [stdout] --> src/exercises/employees.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn main() -> Result<(), Box> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `scoped_threads_and_synchronization` is never used [INFO] [stdout] --> src/exercises/example.rs:5:4 [INFO] [stdout] | [INFO] [stdout] 5 | fn scoped_threads_and_synchronization(chunks: Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `OTHER_WRITE`, `empty`, `insert`, `remove`, and `toggle` are never used [INFO] [stdout] --> src/exercises/bitflags_macro.rs:17:22 [INFO] [stdout] | [INFO] [stdout] 14 | impl $name { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 17 | const fn empty() -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn insert(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | fn remove(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | fn toggle(&mut self, other: Self) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 115 | / bitflags!(FileMode: u16 { [INFO] [stdout] 116 | | OWNER_READ = 0o400, [INFO] [stdout] 117 | | OWNER_WRITE = 0o200, [INFO] [stdout] 118 | | OWNER_EXEC = 0o100, [INFO] [stdout] ... | [INFO] [stdout] 123 | | OTHER_WRITE = 0o002, [INFO] [stdout] | | ^^^^^^^^^^^ [INFO] [stdout] 124 | | OTHER_EXEC = 0o001, [INFO] [stdout] 125 | | }); [INFO] [stdout] | |__- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/basic/mod_007_structs_enums_and_collections.rs:2288:5 [INFO] [stdout] | [INFO] [stdout] 2288 | result_type(); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 2288 | let _ = result_type(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/exercises/budget.rs:179:17 [INFO] [stdout] | [INFO] [stdout] 179 | save(&entries); //todo [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 179 | let _ = save(&entries); //todo [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.48s [INFO] running `Command { std: "docker" "inspect" "dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8", kill_on_drop: false }` [INFO] [stdout] dfaa3394f1cdd092d71f6660affd46b2b25a1f57e073d2bdd92161ce598265f8