[INFO] cloning repository https://github.com/Keigo-Hirohara/rust-excercises
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Keigo-Hirohara/rust-excercises" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKeigo-Hirohara%2Frust-excercises", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKeigo-Hirohara%2Frust-excercises'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b630bd4bfb9f13c75295285584906d79d1b77cb1
[INFO] checking Keigo-Hirohara/rust-excercises against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6 for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKeigo-Hirohara%2Frust-excercises" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Keigo-Hirohara/rust-excercises
[INFO] finished tweaking git repo https://github.com/Keigo-Hirohara/rust-excercises
[INFO] tweaked toml for git repo https://github.com/Keigo-Hirohara/rust-excercises written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Keigo-Hirohara/rust-excercises on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Keigo-Hirohara/rust-excercises 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44
[INFO] running `Command { std: "docker" "start" "2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44", 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" "2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44", 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" "2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking closures_iterators v0.1.0 (/opt/rustwide/workdir/08-closures-iterators)
[INFO] [stderr]     Checking structs_enums v0.1.0 (/opt/rustwide/workdir/03-structs-enums)
[INFO] [stderr]     Checking error_handling v0.1.0 (/opt/rustwide/workdir/05-error-handling)
[INFO] [stderr]     Checking modules v0.1.0 (/opt/rustwide/workdir/07-modules)
[INFO] [stderr]     Checking generics_traits v0.1.0 (/opt/rustwide/workdir/06-generics-traits)
[INFO] [stderr]     Checking unsafe_rust v0.1.0 (/opt/rustwide/workdir/12-unsafe)
[INFO] [stderr]     Checking ownership v0.1.0 (/opt/rustwide/workdir/02-ownership)
[INFO] [stderr]     Checking smart_pointers v0.1.0 (/opt/rustwide/workdir/09-smart-pointers)
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]  --> 12-unsafe/src/lib.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn read_through_raw_pointer(value: &i32) -> i32 {
[INFO] [stdout]   |                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]  --> 12-unsafe/src/lib.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn write_through_raw_pointer(value: &mut i32, new_value: i32) {
[INFO] [stdout]   |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_value`
[INFO] [stdout]  --> 12-unsafe/src/lib.rs:5:51
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn write_through_raw_pointer(value: &mut i32, new_value: i32) {
[INFO] [stdout]   |                                                   ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> 12-unsafe/src/lib.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn call_danger_zone(x: i32) -> i32 {
[INFO] [stdout]    |                         ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slice`
[INFO] [stdout]   --> 12-unsafe/src/lib.rs:23:28
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn split_at_mut_manual(slice: &mut [i32], mid: usize) -> (&mut [i32], &mut [i32]) {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_slice`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mid`
[INFO] [stdout]   --> 12-unsafe/src/lib.rs:23:47
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn split_at_mut_manual(slice: &mut [i32], mid: usize) -> (&mut [i32], &mut [i32]) {
[INFO] [stdout]    |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_mid`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list`
[INFO] [stdout]  --> 06-generics-traits/src/lib.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn largest<T: PartialOrd + Copy>(list: &[T]) -> T {
[INFO] [stdout]   |                                      ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> 08-closures-iterators/src/lib.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn apply_n_times<F: FnMut(i32) -> i32>(mut f: F, start: i32, n: u32) -> i32 {
[INFO] [stdout]   |                                            ----^
[INFO] [stdout]   |                                            |
[INFO] [stdout]   |                                            help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking advanced_traits v0.1.0 (/opt/rustwide/workdir/11-advanced-traits)
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]  --> 08-closures-iterators/src/lib.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn apply_n_times<F: FnMut(i32) -> i32>(mut f: F, start: i32, n: u32) -> i32 {
[INFO] [stdout]   |                                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]  --> 08-closures-iterators/src/lib.rs:8:54
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn apply_n_times<F: FnMut(i32) -> i32>(mut f: F, start: i32, n: u32) -> i32 {
[INFO] [stdout]   |                                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]  --> 08-closures-iterators/src/lib.rs:8:66
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn apply_n_times<F: FnMut(i32) -> i32>(mut f: F, start: i32, n: u32) -> i32 {
[INFO] [stdout]   |                                                                  ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> 08-closures-iterators/src/lib.rs:12:49
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn consume_and_build<F: FnOnce() -> String>(f: F) -> String {
[INFO] [stdout]    |                                                 ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 08-closures-iterators/src/lib.rs:16:21
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn even_squares(v: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 08-closures-iterators/src/lib.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn product_of(v: &[i32]) -> i32 {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 08-closures-iterators/src/lib.rs:42:22
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn pairwise_sums(v: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item`
[INFO] [stdout]   --> 06-generics-traits/src/lib.rs:35:27
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn notify<T: Summary>(item: &T) -> String {
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_item`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]   --> 06-generics-traits/src/lib.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn total_summary_length(items: &[Box<dyn Summary>]) -> usize {
[INFO] [stdout]    |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> 06-generics-traits/src/lib.rs:53:23
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub fn clone_settings(s: &Settings) -> Settings {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `values`
[INFO] [stdout]   --> 09-smart-pointers/src/lib.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub fn build_list(values: &[i32]) -> List {
[INFO] [stdout]    |                   ^^^^^^ help: if this is intentional, prefix it with an underscore: `_values`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> 02-ownership/src/lib.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn take_ownership_and_modify(mut s: String) -> String {
[INFO] [stdout]   |                                  ----^
[INFO] [stdout]   |                                  |
[INFO] [stdout]   |                                  help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> 02-ownership/src/lib.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn take_ownership_and_modify(mut s: String) -> String {
[INFO] [stdout]   |                                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> 02-ownership/src/lib.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn calculate_length(s: &String) -> usize {
[INFO] [stdout]   |                         ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]  --> 02-ownership/src/lib.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn append_exclamation(s: &mut String) {
[INFO] [stdout]   |                           ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list`
[INFO] [stdout]   --> 09-smart-pointers/src/lib.rs:14:17
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn sum_list(list: &List) -> i32 {
[INFO] [stdout]    |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> 09-smart-pointers/src/lib.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn shared_clone_count(value: i32, times: usize) -> usize {
[INFO] [stdout]    |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `times`
[INFO] [stdout]   --> 09-smart-pointers/src/lib.rs:18:39
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn shared_clone_count(value: i32, times: usize) -> usize {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> 09-smart-pointers/src/lib.rs:44:25
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn increment_shared(counter: &Rc<RefCell<i32>>) {
[INFO] [stdout]    |                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> 02-ownership/src/lib.rs:13:19
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn first_word(s: &str) -> &str {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]   --> 02-ownership/src/lib.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |                    ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `y`
[INFO] [stdout]   --> 02-ownership/src/lib.rs:17:32
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
[INFO] [stdout]    |                                ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 02-ownership/src/lib.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn sum_of_all(v: &Vec<i32>) -> i32 {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original`
[INFO] [stdout]   --> 02-ownership/src/lib.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn clone_and_append(original: &String, suffix: &str) -> String {
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `suffix`
[INFO] [stdout]   --> 02-ownership/src/lib.rs:25:44
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn clone_and_append(original: &String, suffix: &str) -> String {
[INFO] [stdout]    |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_suffix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking collections v0.1.0 (/opt/rustwide/workdir/04-collections)
[INFO] [stdout] warning: unused variable: `value`
[INFO] [stdout]   --> 07-modules/src/lib.rs:14:14
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scale(value: f64, factor: f64) -> f64 {
[INFO] [stdout]    |              ^^^^^ help: if this is intentional, prefix it with an underscore: `_value`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `factor`
[INFO] [stdout]   --> 07-modules/src/lib.rs:14:26
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scale(value: f64, factor: f64) -> f64 {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rect`
[INFO] [stdout]   --> 07-modules/src/lib.rs:18:24
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn scaled_area(rect: &Rectangle, factor: f64) -> f64 {
[INFO] [stdout]    |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `factor`
[INFO] [stdout]   --> 07-modules/src/lib.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub fn scaled_area(rect: &Rectangle, factor: f64) -> f64 {
[INFO] [stdout]    |                                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_factor`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]   --> 07-modules/src/lib.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub(crate) fn next_id(current: u32) -> u32 {
[INFO] [stdout]    |                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current`
[INFO] [stdout]   --> 07-modules/src/lib.rs:29:20
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn generate_id(current: u32) -> u32 {
[INFO] [stdout]    |                    ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> 07-modules/src/lib.rs:41:20
[INFO] [stdout]    |
[INFO] [stdout] 41 |         pub fn new(name: &str, quantity: u32) -> Self {
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `quantity`
[INFO] [stdout]   --> 07-modules/src/lib.rs:41:32
[INFO] [stdout]    |
[INFO] [stdout] 41 |         pub fn new(name: &str, quantity: u32) -> Self {
[INFO] [stdout]    |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quantity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]   --> 07-modules/src/lib.rs:53:22
[INFO] [stdout]    |
[INFO] [stdout] 53 |         pub fn greet(name: &str) -> String {
[INFO] [stdout]    |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `scale` is never used
[INFO] [stdout]   --> 07-modules/src/lib.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn scale(value: f64, factor: f64) -> f64 {
[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 `next_id` is never used
[INFO] [stdout]   --> 07-modules/src/lib.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub(crate) fn next_id(current: u32) -> u32 {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `greet` is never used
[INFO] [stdout]   --> 07-modules/src/lib.rs:53:16
[INFO] [stdout]    |
[INFO] [stdout] 53 |         pub fn greet(name: &str) -> String {
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking basics v0.1.0 (/opt/rustwide/workdir/01-basics)
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 |     pub fn can_hold(&self, other: &Rectangle) -> bool {
[INFO] [stdout]    |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:18:27
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn manhattan_distance(a: Point, b: Point) -> i32 {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:18:37
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn manhattan_distance(a: Point, b: Point) -> i32 {
[INFO] [stdout]    |                                     ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn shape_area(shape: &Shape) -> f64 {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_shape`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `coin`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:39:23
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub fn value_in_cents(coin: &Coin) -> u32 {
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_coin`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:43:19
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn first_char(s: &str) -> Option<char> {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn describe_first_char(s: &str) -> String {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:57:15
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn resize(base: Config, new_width: u32) -> Config {
[INFO] [stdout]    |               ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `new_width`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:57:29
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub fn resize(base: Config, new_width: u32) -> Config {
[INFO] [stdout]    |                             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_new_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:67:21
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn points_equal(a: &Point2, b: &Point2) -> bool {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking concurrency v0.1.0 (/opt/rustwide/workdir/10-concurrency)
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> 03-structs-enums/src/lib.rs:67:33
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub fn points_equal(a: &Point2, b: &Point2) -> bool {
[INFO] [stdout]    |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> 05-error-handling/src/lib.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 |     fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 05-error-handling/src/lib.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn find_first_negative(v: &[i32]) -> Option<i32> {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> 05-error-handling/src/lib.rs:22:23
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub fn parse_positive(s: &str) -> Result<i32, AppError> {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `strs`
[INFO] [stdout]   --> 05-error-handling/src/lib.rs:26:29
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub fn sum_positive_numbers(strs: &[&str]) -> Result<i32, AppError> {
[INFO] [stdout]    |                             ^^^^ help: if this is intentional, prefix it with an underscore: `_strs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> 05-error-handling/src/lib.rs:30:27
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn double_if_positive(s: &str) -> Result<i32, String> {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> 05-error-handling/src/lib.rs:34:15
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn divide(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |               ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]   --> 05-error-handling/src/lib.rs:34:23
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn divide(a: i32, b: i32) -> i32 {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `index`
[INFO] [stdout]   --> 11-advanced-traits/src/lib.rs:20:19
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get(&self, index: usize) -> Option<&T> {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_index`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]   --> 11-advanced-traits/src/lib.rs:34:18
[INFO] [stdout]    |
[INFO] [stdout] 34 |     fn add(self, other: Self) -> Self {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `row`
[INFO] [stdout]   --> 11-advanced-traits/src/lib.rs:47:22
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn index(&self, (row, col): (usize, usize)) -> &i32 {
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_row`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `col`
[INFO] [stdout]   --> 11-advanced-traits/src/lib.rs:47:27
[INFO] [stdout]    |
[INFO] [stdout] 47 |     fn index(&self, (row, col): (usize, usize)) -> &i32 {
[INFO] [stdout]    |                           ^^^ help: if this is intentional, prefix it with an underscore: `_col`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> 04-collections/src/lib.rs:3:16
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn sum_vec(v: &[i32]) -> i32 {
[INFO] [stdout]   |                ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> 04-collections/src/lib.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn push_and_double_all(mut v: Vec<i32>, val: i32) -> Vec<i32> {
[INFO] [stdout]   |                            ----^
[INFO] [stdout]   |                            |
[INFO] [stdout]   |                            help: remove this `mut`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> 04-collections/src/lib.rs:7:28
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn push_and_double_all(mut v: Vec<i32>, val: i32) -> Vec<i32> {
[INFO] [stdout]   |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]  --> 04-collections/src/lib.rs:7:45
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn push_and_double_all(mut v: Vec<i32>, val: i32) -> Vec<i32> {
[INFO] [stdout]   |                                             ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `words`
[INFO] [stdout]   --> 04-collections/src/lib.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn join_words(words: &[&str], sep: &str) -> String {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_words`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sep`
[INFO] [stdout]   --> 04-collections/src/lib.rs:11:35
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn join_words(words: &[&str], sep: &str) -> String {
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_sep`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> 04-collections/src/lib.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub fn count_vowels(s: &str) -> usize {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]   --> 04-collections/src/lib.rs:19:19
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn word_count(text: &str) -> HashMap<String, u32> {
[INFO] [stdout]    |                   ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 04-collections/src/lib.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn unique_sorted(v: &[i32]) -> Vec<i32> {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 04-collections/src/lib.rs:27:19
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn top_n_even(v: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> 04-collections/src/lib.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn top_n_even(v: &[i32], n: usize) -> Vec<i32> {
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nested`
[INFO] [stdout]   --> 04-collections/src/lib.rs:31:24
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn flatten_and_sum(nested: &[Vec<i32>]) -> i32 {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_nested`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counts`
[INFO] [stdout]   --> 04-collections/src/lib.rs:35:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn increment_counter(counts: &mut HashMap<String, i32>, key: &str) {
[INFO] [stdout]    |                          ^^^^^^ help: if this is intentional, prefix it with an underscore: `_counts`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]   --> 04-collections/src/lib.rs:35:61
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn increment_counter(counts: &mut HashMap<String, i32>, key: &str) {
[INFO] [stdout]    |                                                             ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]  --> 01-basics/src/lib.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub fn shadow_and_double(input: &str) -> i32 {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]  --> 01-basics/src/lib.rs:5:26
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn increment_n_times(start: i32, times: u32) -> i32 {
[INFO] [stdout]   |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `times`
[INFO] [stdout]  --> 01-basics/src/lib.rs:5:38
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn increment_n_times(start: i32, times: u32) -> i32 {
[INFO] [stdout]   |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pair`
[INFO] [stdout]  --> 01-basics/src/lib.rs:9:21
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn swap_and_sum(pair: (i32, i32)) -> (i32, i32, i32) {
[INFO] [stdout]   |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_pair`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arr`
[INFO] [stdout]   --> 01-basics/src/lib.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn middle_slice(arr: &[i32; 5]) -> &[i32] {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_arr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> 01-basics/src/lib.rs:17:24
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn classify_number(n: i32) -> &'static str {
[INFO] [stdout]    |                        ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> 01-basics/src/lib.rs:21:22
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn fizzbuzz_line(n: u32) -> String {
[INFO] [stdout]    |                      ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]   --> 01-basics/src/lib.rs:25:23
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn fizzbuzz_range(n: u32) -> Vec<String> {
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `limit`
[INFO] [stdout]   --> 01-basics/src/lib.rs:29:32
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn first_power_of_two_over(limit: u32) -> u32 {
[INFO] [stdout]    |                                ^^^^^ help: if this is intentional, prefix it with an underscore: `_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::mpsc`
[INFO] [stdout]  --> 10-concurrency/src/lib.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::sync::mpsc;
[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: `Arc`
[INFO] [stdout]  --> 10-concurrency/src/lib.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::thread`
[INFO] [stdout]  --> 10-concurrency/src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]  --> 10-concurrency/src/lib.rs:5:22
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn sum_in_thread(v: Vec<i32>) -> i32 {
[INFO] [stdout]   |                      ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]  --> 10-concurrency/src/lib.rs:9:29
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn collect_from_workers(n: u32) -> Vec<u32> {
[INFO] [stdout]   |                             ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `counter`
[INFO] [stdout]   --> 10-concurrency/src/lib.rs:13:31
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn increment_shared_mutex(counter: &Mutex<i32>, times: u32) {
[INFO] [stdout]    |                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `times`
[INFO] [stdout]   --> 10-concurrency/src/lib.rs:13:53
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn increment_shared_mutex(counter: &Mutex<i32>, times: u32) {
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_threads`
[INFO] [stdout]   --> 10-concurrency/src/lib.rs:17:25
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn parallel_counter(num_threads: u32, increments_per_thread: u32) -> u32 {
[INFO] [stdout]    |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_threads`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `increments_per_thread`
[INFO] [stdout]   --> 10-concurrency/src/lib.rs:17:43
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn parallel_counter(num_threads: u32, increments_per_thread: u32) -> u32 {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_increments_per_thread`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> 10-concurrency/src/lib.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn parallel_sum(v: Vec<i32>, num_chunks: usize) -> i32 {
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_chunks`
[INFO] [stdout]   --> 10-concurrency/src/lib.rs:21:34
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn parallel_sum(v: Vec<i32>, num_chunks: usize) -> i32 {
[INFO] [stdout]    |                                  ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_chunks`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `modules::Item`
[INFO] [stdout]  --> 07-modules/tests/tests.rs:2:46
[INFO] [stdout]   |
[INFO] [stdout] 2 | use modules::{generate_id, inventory, outer, Item};
[INFO] [stdout]   |                                              ^^^^ no `Item` in the root
[INFO] [stdout]   |
[INFO] [stdout]   = help: consider importing one of these structs instead:
[INFO] [stdout]           crate::inventory::Item
[INFO] [stdout]           modules::inventory::Item
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: module `outer` is private
[INFO] [stdout]   --> 07-modules/tests/tests.rs:2:39
[INFO] [stdout]    |
[INFO] [stdout]  2 | use modules::{generate_id, inventory, outer, Item};
[INFO] [stdout]    |                                       ^^^^^ private module
[INFO] [stdout]    |
[INFO] [stdout] note: the module `outer` is defined here
[INFO] [stdout]   --> 07-modules/src/lib.rs:51:1
[INFO] [stdout]    |
[INFO] [stdout] 51 | mod outer {
[INFO] [stdout]    | ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0603.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `modules` (test "tests") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44", kill_on_drop: false }`
[INFO] [stdout] 2e0cb7d2eb799b4cf8ca8c2d31f6888fc8f6deb2bb682a6373c34e748d9c8e44
