[INFO] cloning repository https://github.com/HarryTMa/rust-learning-basics [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/HarryTMa/rust-learning-basics" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarryTMa%2Frust-learning-basics", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarryTMa%2Frust-learning-basics'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c1a57dae8867a12eaf58788a18175a3d1dc7e9f6 [INFO] checking HarryTMa/rust-learning-basics against master#336209eef13882bd1e211b24779584cb7ef911eb for pr-129249 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHarryTMa%2Frust-learning-basics" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/HarryTMa/rust-learning-basics on toolchain 336209eef13882bd1e211b24779584cb7ef911eb [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+336209eef13882bd1e211b24779584cb7ef911eb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/HarryTMa/rust-learning-basics [INFO] finished tweaking git repo https://github.com/HarryTMa/rust-learning-basics [INFO] tweaked toml for git repo https://github.com/HarryTMa/rust-learning-basics written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/HarryTMa/rust-learning-basics 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" "+336209eef13882bd1e211b24779584cb7ef911eb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+336209eef13882bd1e211b24779584cb7ef911eb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 7058a73053aea6e4b88bac206a4c22a3b21d99d7803a576662faf8b67e3d150c [INFO] running `Command { std: "docker" "start" "-a" "7058a73053aea6e4b88bac206a4c22a3b21d99d7803a576662faf8b67e3d150c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7058a73053aea6e4b88bac206a4c22a3b21d99d7803a576662faf8b67e3d150c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7058a73053aea6e4b88bac206a4c22a3b21d99d7803a576662faf8b67e3d150c", kill_on_drop: false }` [INFO] [stdout] 7058a73053aea6e4b88bac206a4c22a3b21d99d7803a576662faf8b67e3d150c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+336209eef13882bd1e211b24779584cb7ef911eb" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5db44922bb94403e669538033e499d5f57b33d750ff756738ba15ceacc82d521 [INFO] running `Command { std: "docker" "start" "-a" "5db44922bb94403e669538033e499d5f57b33d750ff756738ba15ceacc82d521", kill_on_drop: false }` [INFO] [stderr] Checking basic v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/part2.rs:8:15 [INFO] [stdout] | [INFO] [stdout] 8 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `my_macro` [INFO] [stdout] --> src/part4.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | macro_rules! my_macro { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/exercism/parallel_letter_frequency.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | if (c as u8 >= b'A' && c as u8 <= b'Z') { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 23 - if (c as u8 >= b'A' && c as u8 <= b'Z') { [INFO] [stdout] 23 + if c as u8 >= b'A' && c as u8 <= b'Z' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/exercism/parallel_letter_frequency.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if (c.is_alphabetic()) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 - if (c.is_alphabetic()) [INFO] [stdout] 26 + if c.is_alphabetic() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/exercism/luhn.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | if (u > 9) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 35 - if (u > 9) { [INFO] [stdout] 35 + if u > 9 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/part4.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/exercism/parallel_letter_frequency.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | if (c as u8 >= b'A' && c as u8 <= b'Z') { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 23 - if (c as u8 >= b'A' && c as u8 <= b'Z') { [INFO] [stdout] 23 + if c as u8 >= b'A' && c as u8 <= b'Z' { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/exercism/parallel_letter_frequency.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | if (c.is_alphabetic()) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 - if (c.is_alphabetic()) [INFO] [stdout] 26 + if c.is_alphabetic() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/exercism/luhn.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | if (u > 9) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 35 - if (u > 9) { [INFO] [stdout] 35 + if u > 9 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `n` is never read [INFO] [stdout] --> src/exercism/mine_sweeper.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | let mut n = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_apple_price` is never used [INFO] [stdout] --> src/part1.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn calculate_apple_price(amount: i32) -> i32{ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string_slice` is never used [INFO] [stdout] --> src/part2.rs:10:4 [INFO] [stdout] | [INFO] [stdout] 10 | fn string_slice(arg: &str, mut writer: &mut W) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `string` is never used [INFO] [stdout] --> src/part2.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn string(arg: String, mut writer: &mut W) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_string` is never used [INFO] [stdout] --> src/part2.rs:18:4 [INFO] [stdout] | [INFO] [stdout] 18 | fn test_string(writer: &mut impl Write) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `times_two` is never used [INFO] [stdout] --> src/part3.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn times_two(num: i32) -> i32 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_sublist` is never used [INFO] [stdout] --> src/exercism/sublist.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn is_sublist(A: &Vec, B: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_lists` is never used [INFO] [stdout] --> src/exercism/sublist.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn compare_lists(A: &Vec, B: &Vec) -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `count_mines` is never used [INFO] [stdout] --> src/exercism/mine_sweeper.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn count_mines(s: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `frequency` is never used [INFO] [stdout] --> src/exercism/parallel_letter_frequency.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn frequency(input: &[&str], worker_count: usize) -> HashMap { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poker_parse` is never used [INFO] [stdout] --> src/exercism/poker.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn poker_parse(x: &[u8]) -> Vec<(u32, u8)> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poker_categorize` is never used [INFO] [stdout] --> src/exercism/poker.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn poker_categorize(x: &Vec<(u32, u8)>)-> (u8, u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `poker_cmp` is never used [INFO] [stdout] --> src/exercism/poker.rs:164:8 [INFO] [stdout] | [INFO] [stdout] 164 | pub fn poker_cmp(a: &&str, b: &&str) -> Ordering { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_hands` is never used [INFO] [stdout] --> src/exercism/poker.rs:185:8 [INFO] [stdout] | [INFO] [stdout] 185 | pub fn winning_hands<'a>(hands: &[&'a str]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `add_minutes` are never used [INFO] [stdout] --> src/exercism/clock.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl Clock { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 29 | pub fn new(hours: i32, minutes: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn add_minutes(&self, minutes: i32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `School` is never constructed [INFO] [stdout] --> src/exercism/grade_school.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct School { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add`, `grades`, and `grade` are never used [INFO] [stdout] --> src/exercism/grade_school.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl School { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 21 | pub fn new() -> School { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn add(&mut self, grade: u32, student: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn grades(&self) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn grade(&self, grade: u32) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid` is never used [INFO] [stdout] --> src/exercism/luhn.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn is_valid(code: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/part2.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | write!(&mut writer, "{}\n", arg); [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)]` on by default [INFO] [stdout] = note: this warning originates in the macro `write` (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/part2.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | write!(&mut writer, "{}\n", arg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:9:33 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn is_sublist(A: &Vec, B: &Vec) -> bool { [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn is_sublist(A: &Vec, B: &Vec) -> bool { [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:27:36 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn compare_lists(A: &Vec, B: &Vec) -> &'static str { [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:27:48 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn compare_lists(A: &Vec, B: &Vec) -> &'static str { [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `n` is never read [INFO] [stdout] --> src/exercism/mine_sweeper.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | let mut n = 0; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `frequency` is never used [INFO] [stdout] --> src/exercism/parallel_letter_frequency.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn frequency(input: &[&str], worker_count: usize) -> HashMap { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_hands` is never used [INFO] [stdout] --> src/exercism/poker.rs:185:8 [INFO] [stdout] | [INFO] [stdout] 185 | pub fn winning_hands<'a>(hands: &[&'a str]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `add_minutes` are never used [INFO] [stdout] --> src/exercism/clock.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 28 | impl Clock { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 29 | pub fn new(hours: i32, minutes: i32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn add_minutes(&self, minutes: i32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `School` is never constructed [INFO] [stdout] --> src/exercism/grade_school.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct School { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add`, `grades`, and `grade` are never used [INFO] [stdout] --> src/exercism/grade_school.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl School { [INFO] [stdout] | ----------- associated items in this implementation [INFO] [stdout] 21 | pub fn new() -> School { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 27 | pub fn add(&mut self, grade: u32, student: &str) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn grades(&self) -> Vec { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn grade(&self, grade: u32) -> Vec { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid` is never used [INFO] [stdout] --> src/exercism/luhn.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn is_valid(code: &str) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/part2.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | write!(&mut writer, "{}\n", arg); [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)]` on by default [INFO] [stdout] = note: this warning originates in the macro `write` (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/part2.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | write!(&mut writer, "{}\n", arg); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: this warning originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:9:33 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn is_sublist(A: &Vec, B: &Vec) -> bool { [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn is_sublist(A: &Vec, B: &Vec) -> bool { [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `A` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:27:36 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn compare_lists(A: &Vec, B: &Vec) -> &'static str { [INFO] [stdout] | ^ help: convert the identifier to snake case: `a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/exercism/sublist.rs:27:48 [INFO] [stdout] | [INFO] [stdout] 27 | pub fn compare_lists(A: &Vec, B: &Vec) -> &'static str { [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.36s [INFO] running `Command { std: "docker" "inspect" "5db44922bb94403e669538033e499d5f57b33d750ff756738ba15ceacc82d521", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5db44922bb94403e669538033e499d5f57b33d750ff756738ba15ceacc82d521", kill_on_drop: false }` [INFO] [stdout] 5db44922bb94403e669538033e499d5f57b33d750ff756738ba15ceacc82d521