[INFO] cloning repository https://github.com/default-g/rust-exercism [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/default-g/rust-exercism" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdefault-g%2Frust-exercism", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdefault-g%2Frust-exercism'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fb126b458f53d9cb51ed8b26537a454e1eeee3ea [INFO] linting default-g/rust-exercism against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdefault-g%2Frust-exercism" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/default-g/rust-exercism [INFO] finished tweaking git repo https://github.com/default-g/rust-exercism [INFO] tweaked toml for git repo https://github.com/default-g/rust-exercism written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/default-g/rust-exercism on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/default-g/rust-exercism 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" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded fmt v0.1.0 [INFO] [stderr] Downloaded time v0.3.31 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9c87551d23a6021fc85fda9dd3dabd51749ef1cbbb07c8ae5acbbb64b9c31684 [INFO] running `Command { std: "docker" "start" "-a" "9c87551d23a6021fc85fda9dd3dabd51749ef1cbbb07c8ae5acbbb64b9c31684", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9c87551d23a6021fc85fda9dd3dabd51749ef1cbbb07c8ae5acbbb64b9c31684", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9c87551d23a6021fc85fda9dd3dabd51749ef1cbbb07c8ae5acbbb64b9c31684", kill_on_drop: false }` [INFO] [stdout] 9c87551d23a6021fc85fda9dd3dabd51749ef1cbbb07c8ae5acbbb64b9c31684 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 96d013e16f6eaee1c5a9392b78624d5f8e4eddd7fe832ff315b61336fce8a17e [INFO] running `Command { std: "docker" "start" "-a" "96d013e16f6eaee1c5a9392b78624d5f8e4eddd7fe832ff315b61336fce8a17e", kill_on_drop: false }` [INFO] [stderr] Checking fmt v0.1.0 [INFO] [stderr] Checking time v0.3.31 [INFO] [stderr] Checking rust-exercism v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `cmp::Ordering` and `ptr::null` [INFO] [stdout] --> src/tasks/poker.rs:1:47 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, str::FromStr, ptr::null, cmp::Ordering}; [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: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::stdout` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::stdout; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tasks::*` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tasks::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hand` [INFO] [stdout] --> src/tasks/poker.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | fn two_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hand` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `cmp::Ordering` and `ptr::null` [INFO] [stdout] --> src/tasks/poker.rs:1:47 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::HashMap, str::FromStr, ptr::null, cmp::Ordering}; [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 variable: `hand` [INFO] [stdout] --> src/tasks/poker.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | fn one_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hand` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hand` [INFO] [stdout] --> src/tasks/poker.rs:138:14 [INFO] [stdout] | [INFO] [stdout] 138 | fn high_card(hand: Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hand` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/main.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashSet` [INFO] [stdout] --> src/main.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::collections::HashSet; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::stdout` [INFO] [stdout] --> src/main.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::io::stdout; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io::Write` [INFO] [stdout] --> src/main.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use std::io::Write; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tasks::*` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use tasks::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::fmt` [INFO] [stdout] --> src/main.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::fmt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `a` is assigned to, but never used [INFO] [stdout] --> src/main.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | fn add_1(mut a: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_a` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `a` is never read [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | a += 1; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_1` is never used [INFO] [stdout] --> src/main.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn add_1(mut a: 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: function `abbreviate` is never used [INFO] [stdout] --> src/tasks/abbreviate.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn abbreviate(phrase: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `abbreviate` is never used [INFO] [stdout] --> src/tasks/acronym.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn abbreviate(phrase: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Error` is never used [INFO] [stdout] --> src/tasks/all_your_base.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Error { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert` is never used [INFO] [stdout] --> src/tasks/all_your_base.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn convert(number: &[u32], from_base: u32, to_base: u32) -> Result, Error> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Allergies` is never constructed [INFO] [stdout] --> src/tasks/allergies.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Allergies { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Allergen` is never used [INFO] [stdout] --> src/tasks/allergies.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum Allergen { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_allergic_to`, and `allergies` are never used [INFO] [stdout] --> src/tasks/allergies.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl Allergies { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 36 | pub fn new(score: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn is_allergic_to(&self, allergen: &Allergen) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn allergies(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_armstrong_number` is never used [INFO] [stdout] --> src/tasks/armstrong_number.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn is_armstrong_number(num: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verse` is never used [INFO] [stdout] --> src/tasks/beer_song.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn verse(n: u32) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sing` is never used [INFO] [stdout] --> src/tasks/beer_song.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn sing(start: u32, end: u32) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reply` is never used [INFO] [stdout] --> src/tasks/bob.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn reply(message: &str) -> &str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `square_of_sum` is never used [INFO] [stdout] --> src/tasks/difference_of_squares.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn square_of_sum(n: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum_of_squares` is never used [INFO] [stdout] --> src/tasks/difference_of_squares.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn sum_of_squares(n: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `difference` is never used [INFO] [stdout] --> src/tasks/difference_of_squares.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn difference(n: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HighScores` is never constructed [INFO] [stdout] --> src/tasks/high_scores.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct HighScores { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `scores`, `latest`, `personal_best`, and `personal_top_three` are never used [INFO] [stdout] --> src/tasks/high_scores.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl HighScores { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 7 | pub fn new(scores: &[u32]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn scores(&self) -> &[u32] { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn latest(&self) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn personal_best(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn personal_top_three(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_leap_year` is never used [INFO] [stdout] --> src/tasks/leap_year.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn is_leap_year(year: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brackets_are_balanced` is never used [INFO] [stdout] --> src/tasks/matching_brackets.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn brackets_are_balanced(string: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `nth` is never used [INFO] [stdout] --> src/tasks/nth_prime.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn nth(n: u32) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `frequency` is never used [INFO] [stdout] --> src/tasks/parallel_letter_frequency.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn frequency(input: &[&str], worker_count: usize) -> HashMap { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Rank` is never used [INFO] [stdout] --> src/tasks/poker.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | enum Rank { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Suit` is never used [INFO] [stdout] --> src/tasks/poker.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | enum Suit { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Card` is never constructed [INFO] [stdout] --> src/tasks/poker.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | struct Card { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CardParseError` is never constructed [INFO] [stdout] --> src/tasks/poker.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | struct CardParseError; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `n_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn n_of_a_kind(mut hand: Vec, n: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `five_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn five_of_a_kind(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `four_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:104:4 [INFO] [stdout] | [INFO] [stdout] 104 | fn four_of_a_kind(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `three_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn three_of_a_kind(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `full_house` is never used [INFO] [stdout] --> src/tasks/poker.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn full_house(mut hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `flush` is never used [INFO] [stdout] --> src/tasks/poker.rs:123:4 [INFO] [stdout] | [INFO] [stdout] 123 | fn flush(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `two_pair` is never used [INFO] [stdout] --> src/tasks/poker.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn two_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one_pair` is never used [INFO] [stdout] --> src/tasks/poker.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn one_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `high_card` is never used [INFO] [stdout] --> src/tasks/poker.rs:138:4 [INFO] [stdout] | [INFO] [stdout] 138 | fn high_card(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `highest_rank` is never used [INFO] [stdout] --> src/tasks/poker.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn highest_rank(mut hand: Vec) -> Card { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `straigh` is never used [INFO] [stdout] --> src/tasks/poker.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn straigh(mut hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `straigh_of_flush` is never used [INFO] [stdout] --> src/tasks/poker.rs:170:4 [INFO] [stdout] | [INFO] [stdout] 170 | fn straigh_of_flush(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_hands` is never used [INFO] [stdout] --> src/tasks/poker.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn winning_hands<'a>(hands: &[&'a str]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `factors` is never used [INFO] [stdout] --> src/tasks/prime_factors.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn factors(mut n: u64) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_proverb` is never used [INFO] [stdout] --> src/tasks/proverb.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn build_proverb(list: &[&str]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Duration` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Duration { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Planet` is never used [INFO] [stdout] --> src/tasks/space_age.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait Planet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mercury` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Mercury; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Venus` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Venus; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Earth` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Earth; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mars` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 26 | pub struct Mars; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Jupiter` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Jupiter; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Saturn` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Saturn; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Uranus` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Uranus; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Neptune` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Neptune; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum_of_multiples` is never used [INFO] [stdout] --> src/tasks/sum_of_multiplies.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sum_of_multiples(limit: u32, factors: &[u32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/tasks/all_your_base.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{u32, vec}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Invalid` [INFO] [stdout] --> src/tasks/all_your_base.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / pub enum Error { [INFO] [stdout] 5 | | InvalidInputBase, [INFO] [stdout] 6 | | InvalidOutputBase, [INFO] [stdout] 7 | | InvalidDigit(u32), [INFO] [stdout] 8 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tasks/anagram.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | return hash_set; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return hash_set; [INFO] [stdout] 23 + hash_set [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant guard [INFO] [stdout] --> src/tasks/bob.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | m if m.is_empty() => "Fine. Be that way!", [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_guards [INFO] [stdout] = note: `#[warn(clippy::redundant_guards)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 3 - m if m.is_empty() => "Fine. Be that way!", [INFO] [stdout] 3 + "" => "Fine. Be that way!", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should use the `ends_with` method [INFO] [stdout] --> src/tasks/bob.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | m if m.chars().last().unwrap() == '?' [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `m.ends_with('?')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stdout] = note: `#[warn(clippy::chars_last_cmp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should use the `ends_with` method [INFO] [stdout] --> src/tasks/bob.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | m if m.chars().last().unwrap() == '?' => "Sure.", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `m.ends_with('?')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stdout] --> src/tasks/clock.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn ne(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stdout] = note: `#[warn(clippy::partialeq_ne_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/tasks/forth.rs:46:28 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(_) = self.words.insert(word.to_string(), definition_string) { [INFO] [stdout] | -------^^^^^^^--------------------------------------------------------- help: try: `if self.words.insert(word.to_string(), definition_string).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | Ok(self.stack.push(first_value + second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 80 ~ self.stack.push(first_value + second_value); [INFO] [stdout] 81 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | Ok(self.stack.push(first_value - second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 87 ~ self.stack.push(first_value - second_value); [INFO] [stdout] 88 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | Ok(self.stack.push(first_value * second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 94 ~ self.stack.push(first_value * second_value); [INFO] [stdout] 95 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | Ok(self.stack.push(first_value / second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 105 ~ self.stack.push(first_value / second_value); [INFO] [stdout] 106 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/tasks/high_scores.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | / sorted_collection [INFO] [stdout] 28 | | .iter() [INFO] [stdout] 29 | | .rev() [INFO] [stdout] 30 | | .map(|score| *score) [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 27 ~ sorted_collection [INFO] [stdout] 28 + .iter() [INFO] [stdout] 29 + .rev().copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/leap_year.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/leap_year.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `!year.is_multiple_of(100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/leap_year.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(400)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tasks/matching_brackets.rs:29:42 [INFO] [stdout] | [INFO] [stdout] 29 | if char != *brackets_map.get(&top).unwrap() { [INFO] [stdout] | ^^^^ help: change this to: `top` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/nth_prime.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | if value % i == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `value.is_multiple_of(i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rank` which implements the `Copy` trait [INFO] [stdout] --> src/tasks/poker.rs:66:26 [INFO] [stdout] | [INFO] [stdout] 66 | let rank: Rank = rank_map.get(&s[0..1]).unwrap_or(&Rank::Ten).clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*rank_map.get(&s[0..1]).unwrap_or(&Rank::Ten)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/tasks/poker.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | let suit_slice: &str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `suit_slice` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 68 ~ [INFO] [stdout] 69 ~ let suit_slice: &str = if rank == Rank::Ten { [INFO] [stdout] 70 ~ &s[2..3] [INFO] [stdout] 71 | } else { [INFO] [stdout] 72 ~ &s[1..2] [INFO] [stdout] 73 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tasks/poker.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | / hand[0].rank == hand[1].rank && hand[1].rank == hand[2].rank && hand[3].rank == hand[4].rank || [INFO] [stdout] 118 | | hand[0].rank == hand[1].rank && hand[2].rank == hand[3].rank && hand[3].rank == hand[4].rank [INFO] [stdout] | |____________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 117 - hand[0].rank == hand[1].rank && hand[1].rank == hand[2].rank && hand[3].rank == hand[4].rank || [INFO] [stdout] 118 - hand[0].rank == hand[1].rank && hand[2].rank == hand[3].rank && hand[3].rank == hand[4].rank [INFO] [stdout] 117 + !(hand[0].rank != hand[1].rank || hand[3].rank != hand[4].rank || hand[1].rank != hand[2].rank && hand[2].rank != hand[3].rank) [INFO] [stdout] | [INFO] [stdout] 117 - hand[0].rank == hand[1].rank && hand[1].rank == hand[2].rank && hand[3].rank == hand[4].rank || [INFO] [stdout] 118 - hand[0].rank == hand[1].rank && hand[2].rank == hand[3].rank && hand[3].rank == hand[4].rank [INFO] [stdout] 117 + (hand[2].rank == hand[3].rank || hand[1].rank == hand[2].rank) && hand[3].rank == hand[4].rank && hand[0].rank == hand[1].rank [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/tasks/prime_factors.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | n /= i; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] = note: `#[warn(clippy::mut_range_bound)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/prime_factors.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | while n % i == 0 { [INFO] [stdout] | ^^^^^^^^^^ help: replace with: `n.is_multiple_of(i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:34:28 [INFO] [stdout] | [INFO] [stdout] 34 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 0.2408467) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 0.2408467)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:40:28 [INFO] [stdout] | [INFO] [stdout] 40 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 0.61519726 ) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 0.61519726 )` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:52:28 [INFO] [stdout] | [INFO] [stdout] 52 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 1.8808158) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 1.8808158)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 11.862615) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 11.862615)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:65:28 [INFO] [stdout] | [INFO] [stdout] 65 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 29.447498) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 29.447498)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:72:28 [INFO] [stdout] | [INFO] [stdout] 72 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 84.016846) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 84.016846)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:78:28 [INFO] [stdout] | [INFO] [stdout] 78 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 164.79132) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 164.79132)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/main.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | fn main() -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hand` [INFO] [stdout] --> src/tasks/poker.rs:128:13 [INFO] [stdout] | [INFO] [stdout] 128 | fn two_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hand` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hand` [INFO] [stdout] --> src/tasks/poker.rs:133:13 [INFO] [stdout] | [INFO] [stdout] 133 | fn one_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hand` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hand` [INFO] [stdout] --> src/tasks/poker.rs:138:14 [INFO] [stdout] | [INFO] [stdout] 138 | fn high_card(hand: Vec) -> bool { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hand` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `a` is assigned to, but never used [INFO] [stdout] --> src/main.rs:12:10 [INFO] [stdout] | [INFO] [stdout] 12 | fn add_1(mut a: i32) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_a` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `a` is never read [INFO] [stdout] --> src/main.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | a += 1; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_1` is never used [INFO] [stdout] --> src/main.rs:12:4 [INFO] [stdout] | [INFO] [stdout] 12 | fn add_1(mut a: 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: function `abbreviate` is never used [INFO] [stdout] --> src/tasks/abbreviate.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn abbreviate(phrase: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `abbreviate` is never used [INFO] [stdout] --> src/tasks/acronym.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn abbreviate(phrase: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Error` is never used [INFO] [stdout] --> src/tasks/all_your_base.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum Error { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `convert` is never used [INFO] [stdout] --> src/tasks/all_your_base.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn convert(number: &[u32], from_base: u32, to_base: u32) -> Result, Error> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Allergies` is never constructed [INFO] [stdout] --> src/tasks/allergies.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Allergies { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Allergen` is never used [INFO] [stdout] --> src/tasks/allergies.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub enum Allergen { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `is_allergic_to`, and `allergies` are never used [INFO] [stdout] --> src/tasks/allergies.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 35 | impl Allergies { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 36 | pub fn new(score: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn is_allergic_to(&self, allergen: &Allergen) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 54 | pub fn allergies(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_armstrong_number` is never used [INFO] [stdout] --> src/tasks/armstrong_number.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn is_armstrong_number(num: u32) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verse` is never used [INFO] [stdout] --> src/tasks/beer_song.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn verse(n: u32) -> String { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sing` is never used [INFO] [stdout] --> src/tasks/beer_song.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn sing(start: u32, end: u32) -> String { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reply` is never used [INFO] [stdout] --> src/tasks/bob.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn reply(message: &str) -> &str { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `square_of_sum` is never used [INFO] [stdout] --> src/tasks/difference_of_squares.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn square_of_sum(n: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum_of_squares` is never used [INFO] [stdout] --> src/tasks/difference_of_squares.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn sum_of_squares(n: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `difference` is never used [INFO] [stdout] --> src/tasks/difference_of_squares.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn difference(n: u32) -> u32 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HighScores` is never constructed [INFO] [stdout] --> src/tasks/high_scores.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct HighScores { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `scores`, `latest`, `personal_best`, and `personal_top_three` are never used [INFO] [stdout] --> src/tasks/high_scores.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl HighScores { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 7 | pub fn new(scores: &[u32]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 11 | pub fn scores(&self) -> &[u32] { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 15 | pub fn latest(&self) -> Option { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn personal_best(&self) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn personal_top_three(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_leap_year` is never used [INFO] [stdout] --> src/tasks/leap_year.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn is_leap_year(year: u64) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brackets_are_balanced` is never used [INFO] [stdout] --> src/tasks/matching_brackets.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn brackets_are_balanced(string: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `nth` is never used [INFO] [stdout] --> src/tasks/nth_prime.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn nth(n: u32) -> u32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `frequency` is never used [INFO] [stdout] --> src/tasks/parallel_letter_frequency.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn frequency(input: &[&str], worker_count: usize) -> HashMap { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Rank` is never used [INFO] [stdout] --> src/tasks/poker.rs:4:6 [INFO] [stdout] | [INFO] [stdout] 4 | enum Rank { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Suit` is never used [INFO] [stdout] --> src/tasks/poker.rs:21:6 [INFO] [stdout] | [INFO] [stdout] 21 | enum Suit { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Card` is never constructed [INFO] [stdout] --> src/tasks/poker.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | struct Card { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CardParseError` is never constructed [INFO] [stdout] --> src/tasks/poker.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | struct CardParseError; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `n_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:87:4 [INFO] [stdout] | [INFO] [stdout] 87 | fn n_of_a_kind(mut hand: Vec, n: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `five_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:99:4 [INFO] [stdout] | [INFO] [stdout] 99 | fn five_of_a_kind(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `four_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:104:4 [INFO] [stdout] | [INFO] [stdout] 104 | fn four_of_a_kind(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `three_of_a_kind` is never used [INFO] [stdout] --> src/tasks/poker.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn three_of_a_kind(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `full_house` is never used [INFO] [stdout] --> src/tasks/poker.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn full_house(mut hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `flush` is never used [INFO] [stdout] --> src/tasks/poker.rs:123:4 [INFO] [stdout] | [INFO] [stdout] 123 | fn flush(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `two_pair` is never used [INFO] [stdout] --> src/tasks/poker.rs:128:4 [INFO] [stdout] | [INFO] [stdout] 128 | fn two_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `one_pair` is never used [INFO] [stdout] --> src/tasks/poker.rs:133:4 [INFO] [stdout] | [INFO] [stdout] 133 | fn one_pair(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `high_card` is never used [INFO] [stdout] --> src/tasks/poker.rs:138:4 [INFO] [stdout] | [INFO] [stdout] 138 | fn high_card(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `highest_rank` is never used [INFO] [stdout] --> src/tasks/poker.rs:142:4 [INFO] [stdout] | [INFO] [stdout] 142 | fn highest_rank(mut hand: Vec) -> Card { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `straigh` is never used [INFO] [stdout] --> src/tasks/poker.rs:148:4 [INFO] [stdout] | [INFO] [stdout] 148 | fn straigh(mut hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `straigh_of_flush` is never used [INFO] [stdout] --> src/tasks/poker.rs:170:4 [INFO] [stdout] | [INFO] [stdout] 170 | fn straigh_of_flush(hand: Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `winning_hands` is never used [INFO] [stdout] --> src/tasks/poker.rs:183:8 [INFO] [stdout] | [INFO] [stdout] 183 | pub fn winning_hands<'a>(hands: &[&'a str]) -> Vec<&'a str> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `factors` is never used [INFO] [stdout] --> src/tasks/prime_factors.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn factors(mut n: u64) -> Vec { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_proverb` is never used [INFO] [stdout] --> src/tasks/proverb.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn build_proverb(list: &[&str]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Duration` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Duration { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `Planet` is never used [INFO] [stdout] --> src/tasks/space_age.rs:15:11 [INFO] [stdout] | [INFO] [stdout] 15 | pub trait Planet { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mercury` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | pub struct Mercury; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Venus` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Venus; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Earth` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub struct Earth; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Mars` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 26 | pub struct Mars; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Jupiter` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | pub struct Jupiter; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Saturn` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Saturn; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Uranus` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Uranus; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Neptune` is never constructed [INFO] [stdout] --> src/tasks/space_age.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct Neptune; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sum_of_multiples` is never used [INFO] [stdout] --> src/tasks/sum_of_multiplies.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sum_of_multiples(limit: u32, factors: &[u32]) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/tasks/all_your_base.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{u32, vec}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Invalid` [INFO] [stdout] --> src/tasks/all_your_base.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | / pub enum Error { [INFO] [stdout] 5 | | InvalidInputBase, [INFO] [stdout] 6 | | InvalidOutputBase, [INFO] [stdout] 7 | | InvalidDigit(u32), [INFO] [stdout] 8 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/tasks/anagram.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | return hash_set; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 23 - return hash_set; [INFO] [stdout] 23 + hash_set [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant guard [INFO] [stdout] --> src/tasks/bob.rs:3:14 [INFO] [stdout] | [INFO] [stdout] 3 | m if m.is_empty() => "Fine. Be that way!", [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_guards [INFO] [stdout] = note: `#[warn(clippy::redundant_guards)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 3 - m if m.is_empty() => "Fine. Be that way!", [INFO] [stdout] 3 + "" => "Fine. Be that way!", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should use the `ends_with` method [INFO] [stdout] --> src/tasks/bob.rs:5:14 [INFO] [stdout] | [INFO] [stdout] 5 | m if m.chars().last().unwrap() == '?' [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `m.ends_with('?')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stdout] = note: `#[warn(clippy::chars_last_cmp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should use the `ends_with` method [INFO] [stdout] --> src/tasks/bob.rs:9:14 [INFO] [stdout] | [INFO] [stdout] 9 | m if m.chars().last().unwrap() == '?' => "Sure.", [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `m.ends_with('?')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_last_cmp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: re-implementing `PartialEq::ne` is unnecessary [INFO] [stdout] --> src/tasks/clock.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | fn ne(&self, other: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_ne_impl [INFO] [stdout] = note: `#[warn(clippy::partialeq_ne_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/tasks/forth.rs:46:28 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(_) = self.words.insert(word.to_string(), definition_string) { [INFO] [stdout] | -------^^^^^^^--------------------------------------------------------- help: try: `if self.words.insert(word.to_string(), definition_string).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | Ok(self.stack.push(first_value + second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] = note: `#[warn(clippy::unit_arg)]` on by default [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 80 ~ self.stack.push(first_value + second_value); [INFO] [stdout] 81 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:87:9 [INFO] [stdout] | [INFO] [stdout] 87 | Ok(self.stack.push(first_value - second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 87 ~ self.stack.push(first_value - second_value); [INFO] [stdout] 88 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | Ok(self.stack.push(first_value * second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 94 ~ self.stack.push(first_value * second_value); [INFO] [stdout] 95 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: passing a unit value to a function [INFO] [stdout] --> src/tasks/forth.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | Ok(self.stack.push(first_value / second_value)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stdout] help: move the expression in front of the call and replace it with the unit literal `()` [INFO] [stdout] | [INFO] [stdout] 105 ~ self.stack.push(first_value / second_value); [INFO] [stdout] 106 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/tasks/high_scores.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | / sorted_collection [INFO] [stdout] 28 | | .iter() [INFO] [stdout] 29 | | .rev() [INFO] [stdout] 30 | | .map(|score| *score) [INFO] [stdout] | |________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 27 ~ sorted_collection [INFO] [stdout] 28 + .iter() [INFO] [stdout] 29 + .rev().copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/leap_year.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/leap_year.rs:2:23 [INFO] [stdout] | [INFO] [stdout] 2 | year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `!year.is_multiple_of(100)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/leap_year.rs:2:42 [INFO] [stdout] | [INFO] [stdout] 2 | year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace with: `year.is_multiple_of(400)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/tasks/matching_brackets.rs:29:42 [INFO] [stdout] | [INFO] [stdout] 29 | if char != *brackets_map.get(&top).unwrap() { [INFO] [stdout] | ^^^^ help: change this to: `top` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/nth_prime.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | if value % i == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace with: `value.is_multiple_of(i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rank` which implements the `Copy` trait [INFO] [stdout] --> src/tasks/poker.rs:66:26 [INFO] [stdout] | [INFO] [stdout] 66 | let rank: Rank = rank_map.get(&s[0..1]).unwrap_or(&Rank::Ten).clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*rank_map.get(&s[0..1]).unwrap_or(&Rank::Ten)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/tasks/poker.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | let suit_slice: &str; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `suit_slice` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 68 ~ [INFO] [stdout] 69 ~ let suit_slice: &str = if rank == Rank::Ten { [INFO] [stdout] 70 ~ &s[2..3] [INFO] [stdout] 71 | } else { [INFO] [stdout] 72 ~ &s[1..2] [INFO] [stdout] 73 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/tasks/poker.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | / hand[0].rank == hand[1].rank && hand[1].rank == hand[2].rank && hand[3].rank == hand[4].rank || [INFO] [stdout] 118 | | hand[0].rank == hand[1].rank && hand[2].rank == hand[3].rank && hand[3].rank == hand[4].rank [INFO] [stdout] | |____________________________________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 117 - hand[0].rank == hand[1].rank && hand[1].rank == hand[2].rank && hand[3].rank == hand[4].rank || [INFO] [stdout] 118 - hand[0].rank == hand[1].rank && hand[2].rank == hand[3].rank && hand[3].rank == hand[4].rank [INFO] [stdout] 117 + !(hand[0].rank != hand[1].rank || hand[3].rank != hand[4].rank || hand[1].rank != hand[2].rank && hand[2].rank != hand[3].rank) [INFO] [stdout] | [INFO] [stdout] 117 - hand[0].rank == hand[1].rank && hand[1].rank == hand[2].rank && hand[3].rank == hand[4].rank || [INFO] [stdout] 118 - hand[0].rank == hand[1].rank && hand[2].rank == hand[3].rank && hand[3].rank == hand[4].rank [INFO] [stdout] 117 + (hand[2].rank == hand[3].rank || hand[1].rank == hand[2].rank) && hand[3].rank == hand[4].rank && hand[0].rank == hand[1].rank [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: attempt to mutate range bound within loop [INFO] [stdout] --> src/tasks/prime_factors.rs:6:13 [INFO] [stdout] | [INFO] [stdout] 6 | n /= i; [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: the range of the loop is unchanged [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mut_range_bound [INFO] [stdout] = note: `#[warn(clippy::mut_range_bound)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/tasks/prime_factors.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | while n % i == 0 { [INFO] [stdout] | ^^^^^^^^^^ help: replace with: `n.is_multiple_of(i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:34:28 [INFO] [stdout] | [INFO] [stdout] 34 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 0.2408467) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 0.2408467)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:40:28 [INFO] [stdout] | [INFO] [stdout] 40 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 0.61519726 ) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 0.61519726 )` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:52:28 [INFO] [stdout] | [INFO] [stdout] 52 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 1.8808158) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 1.8808158)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:58:28 [INFO] [stdout] | [INFO] [stdout] 58 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 11.862615) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 11.862615)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:65:28 [INFO] [stdout] | [INFO] [stdout] 65 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 29.447498) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 29.447498)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:72:28 [INFO] [stdout] | [INFO] [stdout] 72 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 84.016846) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 84.016846)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`f64` -> `f64`) [INFO] [stdout] --> src/tasks/space_age.rs:78:28 [INFO] [stdout] | [INFO] [stdout] 78 | d.seconds as f64 / (Self::SECONDS_IN_EARTH_YEAR as f64 * 164.79132) as f64 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(Self::SECONDS_IN_EARTH_YEAR as f64 * 164.79132)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/main.rs:16:10 [INFO] [stdout] | [INFO] [stdout] 16 | fn main() -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.01s [INFO] running `Command { std: "docker" "inspect" "96d013e16f6eaee1c5a9392b78624d5f8e4eddd7fe832ff315b61336fce8a17e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96d013e16f6eaee1c5a9392b78624d5f8e4eddd7fe832ff315b61336fce8a17e", kill_on_drop: false }` [INFO] [stdout] 96d013e16f6eaee1c5a9392b78624d5f8e4eddd7fe832ff315b61336fce8a17e