[INFO] cloning repository https://github.com/ChaosNyaruko/codewars-play
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ChaosNyaruko/codewars-play" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChaosNyaruko%2Fcodewars-play", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChaosNyaruko%2Fcodewars-play'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] f0ae012c9854fe9e67dccd9407bc5295f3489ad6
[INFO] testing ChaosNyaruko/codewars-play against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FChaosNyaruko%2Fcodewars-play" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ChaosNyaruko/codewars-play
[INFO] finished tweaking git repo https://github.com/ChaosNyaruko/codewars-play
[INFO] tweaked toml for git repo https://github.com/ChaosNyaruko/codewars-play written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ChaosNyaruko/codewars-play on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ChaosNyaruko/codewars-play 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" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 72522cc0cdc82b31b9b1154a6dc561521c1f55bcb0c56b205372451fd057a040
[INFO] running `Command { std: "docker" "start" "-a" "72522cc0cdc82b31b9b1154a6dc561521c1f55bcb0c56b205372451fd057a040", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "72522cc0cdc82b31b9b1154a6dc561521c1f55bcb0c56b205372451fd057a040", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "72522cc0cdc82b31b9b1154a6dc561521c1f55bcb0c56b205372451fd057a040", kill_on_drop: false }`
[INFO] [stdout] 72522cc0cdc82b31b9b1154a6dc561521c1f55bcb0c56b205372451fd057a040
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 985d9e63845f3877234f10c23b175c40db459fae56b37f80728f1c8706b70065
[INFO] running `Command { std: "docker" "start" "-a" "985d9e63845f3877234f10c23b175c40db459fae56b37f80728f1c8706b70065", kill_on_drop: false }`
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]    Compiling itertools v0.12.0
[INFO] [stderr]    Compiling codewars v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]  --> src/closest_pair.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |                         ^           ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout] 5 +     f64::sqrt(f64::powf(p1.0 - p2.0 , 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]  --> src/closest_pair.rs:5:57
[INFO] [stdout]   |
[INFO] [stdout] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |                                                         ^           ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout] 5 +     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf(p1.1 - p2.1 , 2.0))
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> src/closest_pair.rs:8:75
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout]   |                                                                           ^   ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 8 - fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout] 8 + fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64 ) {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `compare`
[INFO] [stdout]   --> src/rgb.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 23 | macro_rules! compare {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/rgb.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | /     return format!(
[INFO] [stdout]  3 | |         "{:02X}{:02X}{:02X}",
[INFO] [stdout]  4 | |         r.clamp(0, 255),
[INFO] [stdout]  5 | |         g.clamp(0, 255),
[INFO] [stdout]  6 | |         b.clamp(0, 255)
[INFO] [stdout]  7 | |     );
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 17 |       let r = valid(r);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/snail.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     return (0..n)
[INFO] [stdout] 15 | |         .flat_map(|x| one_layer(n, x))
[INFO] [stdout] 16 | |         .map(|(x, y)| matrix[x][y])
[INFO] [stdout] 17 | |         .collect();
[INFO] [stdout]    | |__________________- any code following this expression is unreachable
[INFO] [stdout] 18 |       // enjoy my solution
[INFO] [stdout] 19 |       let mut m = matrix.len();
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `neg` is never read
[INFO] [stdout]   --> src/calc.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut neg = 0.0;
[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: unused variable: `start`
[INFO] [stdout]    --> src/calc.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let start = *pos;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test`
[INFO] [stdout]    --> src/calc.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let test = &expr[*pos..];
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v_map`
[INFO] [stdout]  --> src/closest_pair.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let v_map: Vec<_> = a.iter().map(|&x| x).collect();
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_v_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/closest_pair.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let (p1, p2, d) = helper(&x_sorted, &y_sorted);
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/list_position.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut n = word.len() - 1;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solution.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let mut res = String::from("");
[INFO] [stdout]   |             ----^^^
[INFO] [stdout]   |             |
[INFO] [stdout]   |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solution.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |                 let mut x = match v.len() {
[INFO] [stdout]    |                     ----^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solution.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut x = match v.len() {
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]  --> src/solution.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let mut res = String::from("");
[INFO] [stdout]   |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bouncing_ball` is never used
[INFO] [stdout]  --> src/bouncing_ball.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn bouncing_ball(h: f64, bounce: f64, window: f64) -> 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 `testequal` is never used
[INFO] [stdout]   --> src/bouncing_ball.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn testequal(h: f64, bounce: f64, window: f64, exp: i32) -> () {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc` is never used
[INFO] [stdout]   --> src/calc.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn calc(expr: &str) -> f64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_spaces` is never used
[INFO] [stdout]   --> src/calc.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn read_spaces(expr: &str, pos: &mut usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cur` is never used
[INFO] [stdout]   --> src/calc.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn cur(expr: &str, pos: &usize) -> char {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_unary` is never used
[INFO] [stdout]   --> src/calc.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn parse_unary(expr: &str, sign: char, pos: &mut usize) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_num` is never used
[INFO] [stdout]   --> src/calc.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn parse_num(expr: &str, pos: &mut usize) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]    --> src/calc.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn helper(expr: &str, pos: &mut usize) -> f64 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `choose_best_sum` is never used
[INFO] [stdout]  --> src/choose_best_sum.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn choose_best_sum(t: i32, k: i32, ls: &Vec<i32>) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testing` is never used
[INFO] [stdout]   --> src/choose_best_sum.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn testing(t: i32, k: i32, ls: &Vec<i32>, exp: i32) -> () {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]  --> src/closest_pair.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn distance(p1: (f64, f64), p2: (f64, f64)) -> f64 {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brutal_closest_pair` is never used
[INFO] [stdout]  --> src/closest_pair.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_pair` is never used
[INFO] [stdout]   --> src/closest_pair.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64)) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]   --> src/closest_pair.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn helper(x_sorted: &[(f64, f64)], y_sorted: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64) {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_duplicates` is never used
[INFO] [stdout]  --> src/count_duplicates.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn count_duplicates(text: &str) -> u32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decompose` is never used
[INFO] [stdout]   --> src/decompose.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn decompose(n: i64) -> Option<Vec<i64>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testing` is never used
[INFO] [stdout]   --> src/decompose.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn testing(n: i64, exp: Option<Vec<i64>>) -> () {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_sum` is never used
[INFO] [stdout]  --> src/exp_sum.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn exp_sum(n: u64) -> u64 {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pins` is never used
[INFO] [stdout]  --> src/get_pins.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn get_pins(observed: &str) -> Vec<String> {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hamming` is never used
[INFO] [stdout]  --> src/hamming.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn hamming(n: usize) -> u64 {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `other_list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn other_list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `factorial` is never used
[INFO] [stdout]   --> src/list_position.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn factorial(n: u128) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn naive_list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_readable` is never used
[INFO] [stdout]  --> src/make_readable.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn make_readable(seconds: u32) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `product_fib` is never used
[INFO] [stdout]  --> src/product_fib.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn product_fib(prod: u64) -> (u64, u64, bool) {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dotest` is never used
[INFO] [stdout]   --> src/product_fib.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn dotest(prod: u64, exp: (u64, u64, bool)) -> () {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb` is never used
[INFO] [stdout]  --> src/rgb.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn rgb(r: i32, g: i32, b: i32) -> String {
[INFO] [stdout]   |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `one_layer` is never used
[INFO] [stdout]  --> src/snail.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn one_layer(n: usize, layer: usize) -> impl Iterator<Item = (usize, usize)> {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snail` is never used
[INFO] [stdout]   --> src/snail.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn snail(matrix: &[Vec<i32>]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `range_extraction` is never used
[INFO] [stdout]  --> src/solution.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub fn range_extraction(a: &[i32]) -> String {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_in_order` is never used
[INFO] [stdout]  --> src/unique_in_order.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn unique_in_order<T>(sequence: T) -> Vec<T::Item>
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zeros` is never used
[INFO] [stdout]  --> src/zeros.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn zeros(n: u64) -> u64 {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `KEY_PAD` should have a snake case name
[INFO] [stdout]  --> src/get_pins.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let KEY_PAD = HashMap::from([
[INFO] [stdout]   |         ^^^^^^^ help: convert the identifier to snake case: `key_pad`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self` and `self`
[INFO] [stdout]  --> src/main.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 |     decompose::{self, dfs},
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 3 |     move_zeros::{self},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_smallest_int` is never used
[INFO] [stdout]  --> src/main.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn find_smallest_int(arr: &[i32]) -> 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 `hello` is never used
[INFO] [stdout]   --> src/main.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn hello(name: &str) -> String {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rps` is never used
[INFO] [stdout]   --> src/main.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn rps(p1: &str, p2: &str) -> &'static str {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disemvowel` is never used
[INFO] [stdout]   --> src/main.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn disemvowel(s: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.77s
[INFO] running `Command { std: "docker" "inspect" "985d9e63845f3877234f10c23b175c40db459fae56b37f80728f1c8706b70065", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "985d9e63845f3877234f10c23b175c40db459fae56b37f80728f1c8706b70065", kill_on_drop: false }`
[INFO] [stdout] 985d9e63845f3877234f10c23b175c40db459fae56b37f80728f1c8706b70065
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a0571d570f3da9cef7d439a8c85fb2302e78c8594cb412f67a51be021fea03d5
[INFO] running `Command { std: "docker" "start" "-a" "a0571d570f3da9cef7d439a8c85fb2302e78c8594cb412f67a51be021fea03d5", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]  --> src/closest_pair.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |                         ^           ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout] 5 +     f64::sqrt(f64::powf(p1.0 - p2.0 , 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]  --> src/closest_pair.rs:5:57
[INFO] [stdout]   |
[INFO] [stdout] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |                                                         ^           ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout] 5 +     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf(p1.1 - p2.1 , 2.0))
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> src/closest_pair.rs:8:75
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout]   |                                                                           ^   ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 8 - fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout] 8 + fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64 ) {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `compare`
[INFO] [stdout]   --> src/rgb.rs:23:14
[INFO] [stdout]    |
[INFO] [stdout] 23 | macro_rules! compare {
[INFO] [stdout]    |              ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/rgb.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | /     return format!(
[INFO] [stdout]  3 | |         "{:02X}{:02X}{:02X}",
[INFO] [stdout]  4 | |         r.clamp(0, 255),
[INFO] [stdout]  5 | |         g.clamp(0, 255),
[INFO] [stdout]  6 | |         b.clamp(0, 255)
[INFO] [stdout]  7 | |     );
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 17 |       let r = valid(r);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/snail.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     return (0..n)
[INFO] [stdout] 15 | |         .flat_map(|x| one_layer(n, x))
[INFO] [stdout] 16 | |         .map(|(x, y)| matrix[x][y])
[INFO] [stdout] 17 | |         .collect();
[INFO] [stdout]    | |__________________- any code following this expression is unreachable
[INFO] [stdout] 18 |       // enjoy my solution
[INFO] [stdout] 19 |       let mut m = matrix.len();
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `neg` is never read
[INFO] [stdout]   --> src/calc.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut neg = 0.0;
[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: unused variable: `start`
[INFO] [stdout]    --> src/calc.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let start = *pos;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test`
[INFO] [stdout]    --> src/calc.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let test = &expr[*pos..];
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v_map`
[INFO] [stdout]  --> src/closest_pair.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let v_map: Vec<_> = a.iter().map(|&x| x).collect();
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_v_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/closest_pair.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let (p1, p2, d) = helper(&x_sorted, &y_sorted);
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/list_position.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut n = word.len() - 1;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solution.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let mut res = String::from("");
[INFO] [stdout]   |             ----^^^
[INFO] [stdout]   |             |
[INFO] [stdout]   |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solution.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |                 let mut x = match v.len() {
[INFO] [stdout]    |                     ----^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solution.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut x = match v.len() {
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]  --> src/solution.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let mut res = String::from("");
[INFO] [stdout]   |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bouncing_ball` is never used
[INFO] [stdout]  --> src/bouncing_ball.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn bouncing_ball(h: f64, bounce: f64, window: f64) -> 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 `testequal` is never used
[INFO] [stdout]   --> src/bouncing_ball.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn testequal(h: f64, bounce: f64, window: f64, exp: i32) -> () {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calc` is never used
[INFO] [stdout]   --> src/calc.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn calc(expr: &str) -> f64 {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_spaces` is never used
[INFO] [stdout]   --> src/calc.rs:57:4
[INFO] [stdout]    |
[INFO] [stdout] 57 | fn read_spaces(expr: &str, pos: &mut usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cur` is never used
[INFO] [stdout]   --> src/calc.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn cur(expr: &str, pos: &usize) -> char {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_unary` is never used
[INFO] [stdout]   --> src/calc.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn parse_unary(expr: &str, sign: char, pos: &mut usize) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_num` is never used
[INFO] [stdout]   --> src/calc.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn parse_num(expr: &str, pos: &mut usize) -> f64 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]    --> src/calc.rs:111:4
[INFO] [stdout]     |
[INFO] [stdout] 111 | fn helper(expr: &str, pos: &mut usize) -> f64 {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `choose_best_sum` is never used
[INFO] [stdout]  --> src/choose_best_sum.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn choose_best_sum(t: i32, k: i32, ls: &Vec<i32>) -> i32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testing` is never used
[INFO] [stdout]   --> src/choose_best_sum.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn testing(t: i32, k: i32, ls: &Vec<i32>, exp: i32) -> () {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `distance` is never used
[INFO] [stdout]  --> src/closest_pair.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn distance(p1: (f64, f64), p2: (f64, f64)) -> f64 {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brutal_closest_pair` is never used
[INFO] [stdout]  --> src/closest_pair.rs:8:4
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `closest_pair` is never used
[INFO] [stdout]   --> src/closest_pair.rs:25:4
[INFO] [stdout]    |
[INFO] [stdout] 25 | fn closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64)) {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `helper` is never used
[INFO] [stdout]   --> src/closest_pair.rs:41:4
[INFO] [stdout]    |
[INFO] [stdout] 41 | fn helper(x_sorted: &[(f64, f64)], y_sorted: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64) {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_duplicates` is never used
[INFO] [stdout]  --> src/count_duplicates.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn count_duplicates(text: &str) -> u32 {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decompose` is never used
[INFO] [stdout]   --> src/decompose.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn decompose(n: i64) -> Option<Vec<i64>> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `testing` is never used
[INFO] [stdout]   --> src/decompose.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn testing(n: i64, exp: Option<Vec<i64>>) -> () {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `exp_sum` is never used
[INFO] [stdout]  --> src/exp_sum.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn exp_sum(n: u64) -> u64 {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_pins` is never used
[INFO] [stdout]  --> src/get_pins.rs:4:4
[INFO] [stdout]   |
[INFO] [stdout] 4 | fn get_pins(observed: &str) -> Vec<String> {
[INFO] [stdout]   |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hamming` is never used
[INFO] [stdout]  --> src/hamming.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn hamming(n: usize) -> u64 {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `other_list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn other_list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `factorial` is never used
[INFO] [stdout]   --> src/list_position.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn factorial(n: u128) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn naive_list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `make_readable` is never used
[INFO] [stdout]  --> src/make_readable.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn make_readable(seconds: u32) -> String {
[INFO] [stdout]   |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `product_fib` is never used
[INFO] [stdout]  --> src/product_fib.rs:3:4
[INFO] [stdout]   |
[INFO] [stdout] 3 | fn product_fib(prod: u64) -> (u64, u64, bool) {
[INFO] [stdout]   |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dotest` is never used
[INFO] [stdout]   --> src/product_fib.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn dotest(prod: u64, exp: (u64, u64, bool)) -> () {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb` is never used
[INFO] [stdout]  --> src/rgb.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn rgb(r: i32, g: i32, b: i32) -> String {
[INFO] [stdout]   |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `one_layer` is never used
[INFO] [stdout]  --> src/snail.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn one_layer(n: usize, layer: usize) -> impl Iterator<Item = (usize, usize)> {
[INFO] [stdout]   |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snail` is never used
[INFO] [stdout]   --> src/snail.rs:12:4
[INFO] [stdout]    |
[INFO] [stdout] 12 | fn snail(matrix: &[Vec<i32>]) -> Vec<i32> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `range_extraction` is never used
[INFO] [stdout]  --> src/solution.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 |     pub fn range_extraction(a: &[i32]) -> String {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unique_in_order` is never used
[INFO] [stdout]  --> src/unique_in_order.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn unique_in_order<T>(sequence: T) -> Vec<T::Item>
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `zeros` is never used
[INFO] [stdout]  --> src/zeros.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn zeros(n: u64) -> u64 {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `KEY_PAD` should have a snake case name
[INFO] [stdout]  --> src/get_pins.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let KEY_PAD = HashMap::from([
[INFO] [stdout]   |         ^^^^^^^ help: convert the identifier to snake case: `key_pad`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling codewars v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `self` and `self`
[INFO] [stdout]  --> src/main.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 |     decompose::{self, dfs},
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 3 |     move_zeros::{self},
[INFO] [stdout]   |                  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_smallest_int` is never used
[INFO] [stdout]  --> src/main.rs:9:4
[INFO] [stdout]   |
[INFO] [stdout] 9 | fn find_smallest_int(arr: &[i32]) -> 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 `hello` is never used
[INFO] [stdout]   --> src/main.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn hello(name: &str) -> String {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rps` is never used
[INFO] [stdout]   --> src/main.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn rps(p1: &str, p2: &str) -> &'static str {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disemvowel` is never used
[INFO] [stdout]   --> src/main.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn disemvowel(s: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]  --> src/closest_pair.rs:5:25
[INFO] [stdout]   |
[INFO] [stdout] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |                         ^           ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout] 5 +     f64::sqrt(f64::powf(p1.0 - p2.0 , 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]  --> src/closest_pair.rs:5:57
[INFO] [stdout]   |
[INFO] [stdout] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout]   |                                                         ^           ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stdout] 5 +     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf(p1.1 - p2.1 , 2.0))
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> src/closest_pair.rs:8:75
[INFO] [stdout]   |
[INFO] [stdout] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout]   |                                                                           ^   ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 8 - fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stdout] 8 + fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64 ) {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/rgb.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout]  2 | /     return format!(
[INFO] [stdout]  3 | |         "{:02X}{:02X}{:02X}",
[INFO] [stdout]  4 | |         r.clamp(0, 255),
[INFO] [stdout]  5 | |         g.clamp(0, 255),
[INFO] [stdout]  6 | |         b.clamp(0, 255)
[INFO] [stdout]  7 | |     );
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] ...
[INFO] [stdout] 17 |       let r = valid(r);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/snail.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     return (0..n)
[INFO] [stdout] 15 | |         .flat_map(|x| one_layer(n, x))
[INFO] [stdout] 16 | |         .map(|(x, y)| matrix[x][y])
[INFO] [stdout] 17 | |         .collect();
[INFO] [stdout]    | |__________________- any code following this expression is unreachable
[INFO] [stdout] 18 |       // enjoy my solution
[INFO] [stdout] 19 |       let mut m = matrix.len();
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `neg` is never read
[INFO] [stdout]   --> src/calc.rs:82:19
[INFO] [stdout]    |
[INFO] [stdout] 82 |     let mut neg = 0.0;
[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: unused variable: `start`
[INFO] [stdout]    --> src/calc.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |     let start = *pos;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `test`
[INFO] [stdout]    --> src/calc.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let test = &expr[*pos..];
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v_map`
[INFO] [stdout]  --> src/closest_pair.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 4 |     let v_map: Vec<_> = a.iter().map(|&x| x).collect();
[INFO] [stdout]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_v_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]   --> src/closest_pair.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let (p1, p2, d) = helper(&x_sorted, &y_sorted);
[INFO] [stdout]    |                  ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/list_position.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |     let mut n = word.len() - 1;
[INFO] [stdout]    |         ----^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]  --> src/solution.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let mut res = String::from("");
[INFO] [stdout]   |             ----^^^
[INFO] [stdout]   |             |
[INFO] [stdout]   |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solution.rs:12:21
[INFO] [stdout]    |
[INFO] [stdout] 12 |                 let mut x = match v.len() {
[INFO] [stdout]    |                     ----^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/solution.rs:30:13
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let mut x = match v.len() {
[INFO] [stdout]    |             ----^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `res`
[INFO] [stdout]  --> src/solution.rs:6:13
[INFO] [stdout]   |
[INFO] [stdout] 6 |         let mut res = String::from("");
[INFO] [stdout]   |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `other_list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn other_list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `naive_list_position` is never used
[INFO] [stdout]   --> src/list_position.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn naive_list_position(word: &str) -> u128 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_MSG` is never used
[INFO] [stdout]    --> src/list_position.rs:137:11
[INFO] [stdout]     |
[INFO] [stdout] 137 |     const ERR_MSG: &str = "\nYour result (left) did not match the expected output (right)";
[INFO] [stdout]     |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_MSG` is never used
[INFO] [stdout]   --> src/move_zeros.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 |     const ERR_MSG: &str = "\nYour result (left) did not match the expected output (right)";
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `KEY_PAD` should have a snake case name
[INFO] [stdout]  --> src/get_pins.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |     let KEY_PAD = HashMap::from([
[INFO] [stdout]   |         ^^^^^^^ help: convert the identifier to snake case: `key_pad`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.85s
[INFO] running `Command { std: "docker" "inspect" "a0571d570f3da9cef7d439a8c85fb2302e78c8594cb412f67a51be021fea03d5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a0571d570f3da9cef7d439a8c85fb2302e78c8594cb412f67a51be021fea03d5", kill_on_drop: false }`
[INFO] [stdout] a0571d570f3da9cef7d439a8c85fb2302e78c8594cb412f67a51be021fea03d5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] bbe1232ce2b1adc039474db97b58f9125108ef333478b81a4d3919f197ff7e9d
[INFO] running `Command { std: "docker" "start" "-a" "bbe1232ce2b1adc039474db97b58f9125108ef333478b81a4d3919f197ff7e9d", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]  --> src/closest_pair.rs:5:25
[INFO] [stderr]   |
[INFO] [stderr] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr]   |                         ^           ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr] 5 +     f64::sqrt(f64::powf(p1.0 - p2.0 , 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]  --> src/closest_pair.rs:5:57
[INFO] [stderr]   |
[INFO] [stderr] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr]   |                                                         ^           ^
[INFO] [stderr]   |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr] 5 +     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf(p1.1 - p2.1 , 2.0))
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]  --> src/closest_pair.rs:8:75
[INFO] [stderr]   |
[INFO] [stderr] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stderr]   |                                                                           ^   ^
[INFO] [stderr]   |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 8 - fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stderr] 8 + fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64 ) {
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition: `compare`
[INFO] [stderr]   --> src/rgb.rs:23:14
[INFO] [stderr]    |
[INFO] [stderr] 23 | macro_rules! compare {
[INFO] [stderr]    |              ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> src/rgb.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr]  2 | /     return format!(
[INFO] [stderr]  3 | |         "{:02X}{:02X}{:02X}",
[INFO] [stderr]  4 | |         r.clamp(0, 255),
[INFO] [stderr]  5 | |         g.clamp(0, 255),
[INFO] [stderr]  6 | |         b.clamp(0, 255)
[INFO] [stderr]  7 | |     );
[INFO] [stderr]    | |_____- any code following this expression is unreachable
[INFO] [stderr] ...
[INFO] [stderr] 17 |       let r = valid(r);
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable statement
[INFO] [stderr]   --> src/snail.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 14 | /     return (0..n)
[INFO] [stderr] 15 | |         .flat_map(|x| one_layer(n, x))
[INFO] [stderr] 16 | |         .map(|(x, y)| matrix[x][y])
[INFO] [stderr] 17 | |         .collect();
[INFO] [stderr]    | |__________________- any code following this expression is unreachable
[INFO] [stderr] 18 |       // enjoy my solution
[INFO] [stderr] 19 |       let mut m = matrix.len();
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `neg` is never read
[INFO] [stderr]   --> src/calc.rs:82:19
[INFO] [stderr]    |
[INFO] [stderr] 82 |     let mut neg = 0.0;
[INFO] [stderr]    |                   ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = help: maybe it is overwritten before being read?
[INFO] [stderr]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `start`
[INFO] [stderr]    --> src/calc.rs:112:9
[INFO] [stderr]     |
[INFO] [stderr] 112 |     let start = *pos;
[INFO] [stderr]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `test`
[INFO] [stderr]    --> src/calc.rs:114:9
[INFO] [stderr]     |
[INFO] [stderr] 114 |     let test = &expr[*pos..];
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_test`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `v_map`
[INFO] [stderr]  --> src/closest_pair.rs:4:9
[INFO] [stderr]   |
[INFO] [stderr] 4 |     let v_map: Vec<_> = a.iter().map(|&x| x).collect();
[INFO] [stderr]   |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_v_map`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `d`
[INFO] [stderr]   --> src/closest_pair.rs:37:18
[INFO] [stderr]    |
[INFO] [stderr] 37 |     let (p1, p2, d) = helper(&x_sorted, &y_sorted);
[INFO] [stderr]    |                  ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/list_position.rs:59:9
[INFO] [stderr]    |
[INFO] [stderr] 59 |     let mut n = word.len() - 1;
[INFO] [stderr]    |         ----^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]  --> src/solution.rs:6:13
[INFO] [stderr]   |
[INFO] [stderr] 6 |         let mut res = String::from("");
[INFO] [stderr]   |             ----^^^
[INFO] [stderr]   |             |
[INFO] [stderr]   |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solution.rs:12:21
[INFO] [stderr]    |
[INFO] [stderr] 12 |                 let mut x = match v.len() {
[INFO] [stderr]    |                     ----^
[INFO] [stderr]    |                     |
[INFO] [stderr]    |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/solution.rs:30:13
[INFO] [stderr]    |
[INFO] [stderr] 30 |         let mut x = match v.len() {
[INFO] [stderr]    |             ----^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `res`
[INFO] [stderr]  --> src/solution.rs:6:13
[INFO] [stderr]   |
[INFO] [stderr] 6 |         let mut res = String::from("");
[INFO] [stderr]   |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_res`
[INFO] [stderr] 
[INFO] [stderr] warning: function `bouncing_ball` is never used
[INFO] [stderr]  --> src/bouncing_ball.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn bouncing_ball(h: f64, bounce: f64, window: f64) -> i32 {
[INFO] [stderr]   |    ^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `testequal` is never used
[INFO] [stderr]   --> src/bouncing_ball.rs:16:4
[INFO] [stderr]    |
[INFO] [stderr] 16 | fn testequal(h: f64, bounce: f64, window: f64, exp: i32) -> () {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `calc` is never used
[INFO] [stderr]   --> src/calc.rs:49:4
[INFO] [stderr]    |
[INFO] [stderr] 49 | fn calc(expr: &str) -> f64 {
[INFO] [stderr]    |    ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_spaces` is never used
[INFO] [stderr]   --> src/calc.rs:57:4
[INFO] [stderr]    |
[INFO] [stderr] 57 | fn read_spaces(expr: &str, pos: &mut usize) {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cur` is never used
[INFO] [stderr]   --> src/calc.rs:66:4
[INFO] [stderr]    |
[INFO] [stderr] 66 | fn cur(expr: &str, pos: &usize) -> char {
[INFO] [stderr]    |    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_unary` is never used
[INFO] [stderr]   --> src/calc.rs:75:4
[INFO] [stderr]    |
[INFO] [stderr] 75 | fn parse_unary(expr: &str, sign: char, pos: &mut usize) -> f64 {
[INFO] [stderr]    |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_num` is never used
[INFO] [stderr]   --> src/calc.rs:93:4
[INFO] [stderr]    |
[INFO] [stderr] 93 | fn parse_num(expr: &str, pos: &mut usize) -> f64 {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `helper` is never used
[INFO] [stderr]    --> src/calc.rs:111:4
[INFO] [stderr]     |
[INFO] [stderr] 111 | fn helper(expr: &str, pos: &mut usize) -> f64 {
[INFO] [stderr]     |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `choose_best_sum` is never used
[INFO] [stderr]  --> src/choose_best_sum.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn choose_best_sum(t: i32, k: i32, ls: &Vec<i32>) -> i32 {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `testing` is never used
[INFO] [stderr]   --> src/choose_best_sum.rs:30:4
[INFO] [stderr]    |
[INFO] [stderr] 30 | fn testing(t: i32, k: i32, ls: &Vec<i32>, exp: i32) -> () {
[INFO] [stderr]    |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `distance` is never used
[INFO] [stderr]  --> src/closest_pair.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn distance(p1: (f64, f64), p2: (f64, f64)) -> f64 {
[INFO] [stderr]   |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `brutal_closest_pair` is never used
[INFO] [stderr]  --> src/closest_pair.rs:8:4
[INFO] [stderr]   |
[INFO] [stderr] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `closest_pair` is never used
[INFO] [stderr]   --> src/closest_pair.rs:25:4
[INFO] [stderr]    |
[INFO] [stderr] 25 | fn closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64)) {
[INFO] [stderr]    |    ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `helper` is never used
[INFO] [stderr]   --> src/closest_pair.rs:41:4
[INFO] [stderr]    |
[INFO] [stderr] 41 | fn helper(x_sorted: &[(f64, f64)], y_sorted: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64) {
[INFO] [stderr]    |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `count_duplicates` is never used
[INFO] [stderr]  --> src/count_duplicates.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn count_duplicates(text: &str) -> u32 {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `decompose` is never used
[INFO] [stderr]   --> src/decompose.rs:43:4
[INFO] [stderr]    |
[INFO] [stderr] 43 | fn decompose(n: i64) -> Option<Vec<i64>> {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `testing` is never used
[INFO] [stderr]   --> src/decompose.rs:55:4
[INFO] [stderr]    |
[INFO] [stderr] 55 | fn testing(n: i64, exp: Option<Vec<i64>>) -> () {
[INFO] [stderr]    |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `exp_sum` is never used
[INFO] [stderr]  --> src/exp_sum.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn exp_sum(n: u64) -> u64 {
[INFO] [stderr]   |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_pins` is never used
[INFO] [stderr]  --> src/get_pins.rs:4:4
[INFO] [stderr]   |
[INFO] [stderr] 4 | fn get_pins(observed: &str) -> Vec<String> {
[INFO] [stderr]   |    ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `hamming` is never used
[INFO] [stderr]  --> src/hamming.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn hamming(n: usize) -> u64 {
[INFO] [stderr]   |    ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `other_list_position` is never used
[INFO] [stderr]   --> src/list_position.rs:20:4
[INFO] [stderr]    |
[INFO] [stderr] 20 | fn other_list_position(word: &str) -> u128 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `factorial` is never used
[INFO] [stderr]   --> src/list_position.rs:39:4
[INFO] [stderr]    |
[INFO] [stderr] 39 | fn factorial(n: u128) -> u128 {
[INFO] [stderr]    |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `list_position` is never used
[INFO] [stderr]   --> src/list_position.rs:47:4
[INFO] [stderr]    |
[INFO] [stderr] 47 | fn list_position(word: &str) -> u128 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `naive_list_position` is never used
[INFO] [stderr]   --> src/list_position.rs:85:4
[INFO] [stderr]    |
[INFO] [stderr] 85 | fn naive_list_position(word: &str) -> u128 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `make_readable` is never used
[INFO] [stderr]  --> src/make_readable.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn make_readable(seconds: u32) -> String {
[INFO] [stderr]   |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `product_fib` is never used
[INFO] [stderr]  --> src/product_fib.rs:3:4
[INFO] [stderr]   |
[INFO] [stderr] 3 | fn product_fib(prod: u64) -> (u64, u64, bool) {
[INFO] [stderr]   |    ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `dotest` is never used
[INFO] [stderr]   --> src/product_fib.rs:28:4
[INFO] [stderr]    |
[INFO] [stderr] 28 | fn dotest(prod: u64, exp: (u64, u64, bool)) -> () {
[INFO] [stderr]    |    ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rgb` is never used
[INFO] [stderr]  --> src/rgb.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn rgb(r: i32, g: i32, b: i32) -> String {
[INFO] [stderr]   |    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `one_layer` is never used
[INFO] [stderr]  --> src/snail.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn one_layer(n: usize, layer: usize) -> impl Iterator<Item = (usize, usize)> {
[INFO] [stderr]   |    ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `snail` is never used
[INFO] [stderr]   --> src/snail.rs:12:4
[INFO] [stderr]    |
[INFO] [stderr] 12 | fn snail(matrix: &[Vec<i32>]) -> Vec<i32> {
[INFO] [stderr]    |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `range_extraction` is never used
[INFO] [stderr]  --> src/solution.rs:2:12
[INFO] [stderr]   |
[INFO] [stderr] 2 |     pub fn range_extraction(a: &[i32]) -> String {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `unique_in_order` is never used
[INFO] [stderr]  --> src/unique_in_order.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn unique_in_order<T>(sequence: T) -> Vec<T::Item>
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `zeros` is never used
[INFO] [stderr]  --> src/zeros.rs:1:4
[INFO] [stderr]   |
[INFO] [stderr] 1 | fn zeros(n: u64) -> u64 {
[INFO] [stderr]   |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable `KEY_PAD` should have a snake case name
[INFO] [stderr]  --> src/get_pins.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |     let KEY_PAD = HashMap::from([
[INFO] [stderr]   |         ^^^^^^^ help: convert the identifier to snake case: `key_pad`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `codewars` (lib) generated 50 warnings (run `cargo fix --lib -p codewars` to apply 12 suggestions)
[INFO] [stderr] warning: unused imports: `self` and `self`
[INFO] [stderr]  --> src/main.rs:2:17
[INFO] [stderr]   |
[INFO] [stderr] 2 |     decompose::{self, dfs},
[INFO] [stderr]   |                 ^^^^
[INFO] [stderr] 3 |     move_zeros::{self},
[INFO] [stderr]   |                  ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_smallest_int` is never used
[INFO] [stderr]  --> src/main.rs:9:4
[INFO] [stderr]   |
[INFO] [stderr] 9 | fn find_smallest_int(arr: &[i32]) -> i32 {
[INFO] [stderr]   |    ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `hello` is never used
[INFO] [stderr]   --> src/main.rs:20:4
[INFO] [stderr]    |
[INFO] [stderr] 20 | fn hello(name: &str) -> String {
[INFO] [stderr]    |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `rps` is never used
[INFO] [stderr]   --> src/main.rs:31:4
[INFO] [stderr]    |
[INFO] [stderr] 31 | fn rps(p1: &str, p2: &str) -> &'static str {
[INFO] [stderr]    |    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `disemvowel` is never used
[INFO] [stderr]   --> src/main.rs:50:4
[INFO] [stderr]    |
[INFO] [stderr] 50 | fn disemvowel(s: &str) -> String {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `codewars` (bin "codewars" test) generated 5 warnings (run `cargo fix --bin "codewars" -p codewars --tests` to apply 1 suggestion)
[INFO] [stderr] warning: function `other_list_position` is never used
[INFO] [stderr]   --> src/list_position.rs:20:4
[INFO] [stderr]    |
[INFO] [stderr] 20 | fn other_list_position(word: &str) -> u128 {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ERR_MSG` is never used
[INFO] [stderr]    --> src/list_position.rs:137:11
[INFO] [stderr]     |
[INFO] [stderr] 137 |     const ERR_MSG: &str = "\nYour result (left) did not match the expected output (right)";
[INFO] [stderr]     |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ERR_MSG` is never used
[INFO] [stderr]   --> src/move_zeros.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 |     const ERR_MSG: &str = "\nYour result (left) did not match the expected output (right)";
[INFO] [stderr]    |           ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `codewars` (lib test) generated 20 warnings (17 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/codewars-5452c3d9ec085357)
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test bouncing_ball::tests_bouncing_ball ... ok
[INFO] [stdout] test calc::tests::basic_operations ... ok
[INFO] [stdout] test calc::tests::parentheses ... ok
[INFO] [stdout] test calc::tests::unary_minuses ... ok
[INFO] [stdout] test calc::tests::multiple_operators ... ok
[INFO] [stdout] test calc::tests::whitespace_between_operators_and_operands ... ok
[INFO] [stdout] test calc::tests::random ... ok
[INFO] [stdout] test calc::tests::single_values ... ok
[INFO] [stdout] test closest_pair::tests::sample_tests ... ok
[INFO] [stdout] test count_duplicates::tests::test_abcde ... ok
[INFO] [stdout] test count_duplicates::tests::test_abcdea ... ok
[INFO] [stdout] test count_duplicates::tests::test_indivisibility ... ok
[INFO] [stdout] test decompose::tests_decompose ... ok
[INFO] [stdout] test get_pins::tests::sample_tests ... ok
[INFO] [stdout] test make_readable::tests::fixed_tests ... ok
[INFO] [stdout] test move_zeros::tests::sample_tests ... ok
[INFO] [stdout] test product_fib::basics_product_fib ... ok
[INFO] [stdout] test list_position::tests::sample_tests ... ok
[INFO] [stdout] test hamming::tests::sample_tests ... ok
[INFO] [stdout] test snail::tests::sample_test1 ... ok
[INFO] [stdout] test rgb::sample_tests::tests ... ok
[INFO] [stdout] test snail::tests::sample_test2 ... ok
[INFO] [stdout] test snail::tests::sample_test3 ... ok
[INFO] [stdout] test choose_best_sum::basics_choose_best_sum ... ok
[INFO] [stdout] test solution::tests::example ... ok
[INFO] [stdout] test unique_in_order::tests::sample_test ... ok
[INFO] [stdout] test snail::tests::sample_test4 ... ok
[INFO] [stdout] test zeros::tests::sample_tests ... ok
[INFO] [stdout] test calc::tests::extend ... ok
[INFO] [stdout] test sudoku::sample_tests::puzzle_2 ... ok
[INFO] [stdout] test sudoku::sample_tests::puzzle_1 ... ok
[INFO] [stdout] test exp_sum::tests::basic_sample_tests ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/codewars-d109fac58fa4303e)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests codewars
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]  --> src/closest_pair.rs:5:25
[INFO] [stderr]   |
[INFO] [stderr] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr]   |                         ^           ^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr] 5 +     f64::sqrt(f64::powf(p1.0 - p2.0 , 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]  --> src/closest_pair.rs:5:57
[INFO] [stderr]   |
[INFO] [stderr] 5 |     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr]   |                                                         ^           ^
[INFO] [stderr]   |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 5 -     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf((p1.1 - p2.1), 2.0))
[INFO] [stderr] 5 +     f64::sqrt(f64::powf((p1.0 - p2.0), 2.0) + f64::powf(p1.1 - p2.1 , 2.0))
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]  --> src/closest_pair.rs:8:75
[INFO] [stderr]   |
[INFO] [stderr] 8 | fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stderr]   |                                                                           ^   ^
[INFO] [stderr]   |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]   |
[INFO] [stderr] 8 - fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), (f64)) {
[INFO] [stderr] 8 + fn brutal_closest_pair(points: &[(f64, f64)]) -> ((f64, f64), (f64, f64), f64 ) {
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: 3 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/calc.rs - calc::VecDeque (line 12) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/calc.rs - calc::VecDeque (line 12) stdout ----
[INFO] [stdout] error: expected one of `!` or `::`, found `*`
[INFO] [stdout]   --> src/calc.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | Multiplication *
[INFO] [stdout]    |                ^ expected one of `!` or `::`
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/calc.rs - calc::VecDeque (line 12)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "bbe1232ce2b1adc039474db97b58f9125108ef333478b81a4d3919f197ff7e9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bbe1232ce2b1adc039474db97b58f9125108ef333478b81a4d3919f197ff7e9d", kill_on_drop: false }`
[INFO] [stdout] bbe1232ce2b1adc039474db97b58f9125108ef333478b81a4d3919f197ff7e9d
