[INFO] cloning repository https://github.com/zhangxin911/sahni-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zhangxin911/sahni-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangxin911%2Fsahni-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangxin911%2Fsahni-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 807ee1db9c2732e8c45b4f0ebe8baea309214b6f
[INFO] checking zhangxin911/sahni-rust against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzhangxin911%2Fsahni-rust" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/zhangxin911/sahni-rust
[INFO] finished tweaking git repo https://github.com/zhangxin911/sahni-rust
[INFO] tweaked toml for git repo https://github.com/zhangxin911/sahni-rust written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/zhangxin911/sahni-rust on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/zhangxin911/sahni-rust 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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fa9f32297e561ebb6cd9386671fcc54d17834d122899414b0b6280059a84cf3b
[INFO] running `Command { std: "docker" "start" "-a" "fa9f32297e561ebb6cd9386671fcc54d17834d122899414b0b6280059a84cf3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fa9f32297e561ebb6cd9386671fcc54d17834d122899414b0b6280059a84cf3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fa9f32297e561ebb6cd9386671fcc54d17834d122899414b0b6280059a84cf3b", kill_on_drop: false }`
[INFO] [stdout] fa9f32297e561ebb6cd9386671fcc54d17834d122899414b0b6280059a84cf3b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 33ec1c4dd03246449b7c67f6af40d0a495ee61e02c728523c207ba6e29dcf5a1
[INFO] running `Command { std: "docker" "start" "-a" "33ec1c4dd03246449b7c67f6af40d0a495ee61e02c728523c207ba6e29dcf5a1", kill_on_drop: false }`
[INFO] [stderr]     Checking linklist v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Div` and `process::Output`
[INFO] [stdout]  --> src/chapt/c_1.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ops::{Deref, Div, Sub},
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 4 |     process::Output,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/chapt/c_1.rs:126:6
[INFO] [stdout]     |
[INFO] [stdout] 126 |     };
[INFO] [stdout]     |      ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec`
[INFO] [stdout]  --> src/chapt/c_1_7.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     vec,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]  --> src/chapt/c_1_7.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 |     match (n < 1) {
[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] 8 -     match (n < 1) {
[INFO] [stdout] 8 +     match n < 1  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]   --> src/chapt/c_1_7.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 |     match (n > 0) {
[INFO] [stdout]    |           ^     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     match (n > 0) {
[INFO] [stdout] 23 +     match n > 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 |     if (n == 0) {
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 -     if (n == 0) {
[INFO] [stdout] 30 +     if n == 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 |     if (n == 1) {
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 33 -     if (n == 1) {
[INFO] [stdout] 33 +     if n == 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let result = if (n <= 1) {
[INFO] [stdout]    |                     ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 42 -     let result = if (n <= 1) {
[INFO] [stdout] 42 +     let result = if n <= 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 |     if (n % 2 == 0) {
[INFO] [stdout]    |        ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 -     if (n % 2 == 0) {
[INFO] [stdout] 52 +     if n % 2 == 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if (i == 1 && j >= 1) {
[INFO] [stdout]    |        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -     if (i == 1 && j >= 1) {
[INFO] [stdout] 60 +     if i == 1 && j >= 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     } else if (i >= 2 && j == 1) {
[INFO] [stdout]    |               ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 62 -     } else if (i >= 2 && j == 1) {
[INFO] [stdout] 62 +     } else if i >= 2 && j == 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 |     if (y == 0) {
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -     if (y == 0) {
[INFO] [stdout] 73 +     if y == 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 |     while (num != 0) {
[INFO] [stdout]    |           ^        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 93 -     while (num != 0) {
[INFO] [stdout] 93 +     while num != 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 |     if (num < 0) {
[INFO] [stdout]    |        ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 99 -     if (num < 0) {
[INFO] [stdout] 99 +     if num < 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> src/chapt/c_2.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 |     if (n < 1) {
[INFO] [stdout]   |        ^     ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 4 -     if (n < 1) {
[INFO] [stdout] 4 +     if n < 1  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_2.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |             if (arr[j] > arr[i]) {
[INFO] [stdout]    |                ^               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -             if (arr[j] > arr[i]) {
[INFO] [stdout] 17 +             if arr[j] > arr[i]  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_2.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if (arr[i] > arr[i + 1]) {
[INFO] [stdout]    |            ^                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 38 -         if (arr[i] > arr[i + 1]) {
[INFO] [stdout] 38 +         if arr[i] > arr[i + 1]  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_2.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 |         if (max_value < &value) {
[INFO] [stdout]    |            ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -         if (max_value < &value) {
[INFO] [stdout] 60 +         if max_value < &value  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `b` is never read
[INFO] [stdout]   --> src/chapt/c_1.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     b = temp;
[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: `y`
[INFO] [stdout]    --> src/chapt/c_1.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let y = Box::new(x);
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/chapt/c_2.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut max_index = index_of_max(arr, i + 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] error: struct `Currency` is never constructed
[INFO] [stdout]    --> src/chapt/c_1.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct Currency {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]     = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `linklist` (bin "linklist" test) due to 2 previous errors; 28 warnings emitted
[INFO] [stdout] error: struct `CurrencyT` is never constructed
[INFO] [stdout]    --> src/chapt/c_1.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct CurrencyT<T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: fields `amount` and `currency_code` are never read
[INFO] [stdout]    --> src/chapt/c_1.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct Currency {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 221 |     amount: f64,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 222 |     currency_code: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `print_info`, and `convert_to` are never used
[INFO] [stdout]    --> src/chapt/c_1.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl Currency {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 226 |     fn new(amount: f64, currency_code: &String) -> Currency {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn print_info(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn convert_to(&mut self, new_currency: &str, exchange_rate: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `currency_code` is never read
[INFO] [stdout]    --> src/chapt/c_1.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct CurrencyT<T> {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 247 |     amount: T,
[INFO] [stdout] 248 |     currency_code: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `subtract` are never used
[INFO] [stdout]    --> src/chapt/c_1.rs:255:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | / impl<T> CurrencyT<T>
[INFO] [stdout] 252 | | where
[INFO] [stdout] 253 | |     T: std::ops::Sub<Output = T> + Copy,
[INFO] [stdout]     | |________________________________________- associated items in this implementation
[INFO] [stdout] 254 |   {
[INFO] [stdout] 255 |       fn new(amount: T, currency_code: &String) -> CurrencyT<T> {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |       fn subtract(&self, x: T) -> T {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `templateABC` should have a snake case name
[INFO] [stdout]   --> src/chapt/c_1.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn templateABC<T>(a: T, b: T, c: T) -> T
[INFO] [stdout]    |        ^^^^^^^^^^^ help: convert the identifier to snake case: `template_abc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refABC` should have a snake case name
[INFO] [stdout]   --> src/chapt/c_1.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn refABC<T>(a: &T, b: &T, c: &T) -> T
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `ref_abc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Div` and `process::Output`
[INFO] [stdout]  --> src/chapt/c_1.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ops::{Deref, Div, Sub},
[INFO] [stdout]   |                  ^^^
[INFO] [stdout] 4 |     process::Output,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/chapt/c_1.rs:126:6
[INFO] [stdout]     |
[INFO] [stdout] 126 |     };
[INFO] [stdout]     |      ^ help: remove this semicolon
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(redundant_semicolons)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `vec`
[INFO] [stdout]  --> src/chapt/c_1_7.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 |     vec,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]  --> src/chapt/c_1_7.rs:8:11
[INFO] [stdout]   |
[INFO] [stdout] 8 |     match (n < 1) {
[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] 8 -     match (n < 1) {
[INFO] [stdout] 8 +     match n < 1  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `match` scrutinee expression
[INFO] [stdout]   --> src/chapt/c_1_7.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 |     match (n > 0) {
[INFO] [stdout]    |           ^     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 23 -     match (n > 0) {
[INFO] [stdout] 23 +     match n > 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 |     if (n == 0) {
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 30 -     if (n == 0) {
[INFO] [stdout] 30 +     if n == 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 |     if (n == 1) {
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 33 -     if (n == 1) {
[INFO] [stdout] 33 +     if n == 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:42:21
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let result = if (n <= 1) {
[INFO] [stdout]    |                     ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 42 -     let result = if (n <= 1) {
[INFO] [stdout] 42 +     let result = if n <= 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:52:8
[INFO] [stdout]    |
[INFO] [stdout] 52 |     if (n % 2 == 0) {
[INFO] [stdout]    |        ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 -     if (n % 2 == 0) {
[INFO] [stdout] 52 +     if n % 2 == 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if (i == 1 && j >= 1) {
[INFO] [stdout]    |        ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -     if (i == 1 && j >= 1) {
[INFO] [stdout] 60 +     if i == 1 && j >= 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 |     } else if (i >= 2 && j == 1) {
[INFO] [stdout]    |               ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 62 -     } else if (i >= 2 && j == 1) {
[INFO] [stdout] 62 +     } else if i >= 2 && j == 1  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 73 |     if (y == 0) {
[INFO] [stdout]    |        ^      ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 73 -     if (y == 0) {
[INFO] [stdout] 73 +     if y == 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `while` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 |     while (num != 0) {
[INFO] [stdout]    |           ^        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 93 -     while (num != 0) {
[INFO] [stdout] 93 +     while num != 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_1_7.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 |     if (num < 0) {
[INFO] [stdout]    |        ^       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 99 -     if (num < 0) {
[INFO] [stdout] 99 +     if num < 0  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]  --> src/chapt/c_2.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 |     if (n < 1) {
[INFO] [stdout]   |        ^     ^
[INFO] [stdout]   |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 4 -     if (n < 1) {
[INFO] [stdout] 4 +     if n < 1  {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_2.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 |             if (arr[j] > arr[i]) {
[INFO] [stdout]    |                ^               ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -             if (arr[j] > arr[i]) {
[INFO] [stdout] 17 +             if arr[j] > arr[i]  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_2.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 |         if (arr[i] > arr[i + 1]) {
[INFO] [stdout]    |            ^                   ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 38 -         if (arr[i] > arr[i + 1]) {
[INFO] [stdout] 38 +         if arr[i] > arr[i + 1]  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]   --> src/chapt/c_2.rs:60:12
[INFO] [stdout]    |
[INFO] [stdout] 60 |         if (max_value < &value) {
[INFO] [stdout]    |            ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 60 -         if (max_value < &value) {
[INFO] [stdout] 60 +         if max_value < &value  {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `b` is never read
[INFO] [stdout]   --> src/chapt/c_1.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     b = temp;
[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: `y`
[INFO] [stdout]    --> src/chapt/c_1.rs:122:9
[INFO] [stdout]     |
[INFO] [stdout] 122 |     let y = Box::new(x);
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_y`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/chapt/c_2.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let mut max_index = index_of_max(arr, i + 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] error: struct `Currency` is never constructed
[INFO] [stdout]    --> src/chapt/c_1.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct Currency {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]     = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `CurrencyT` is never constructed
[INFO] [stdout]    --> src/chapt/c_1.rs:246:12
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct CurrencyT<T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `amount` and `currency_code` are never read
[INFO] [stdout]    --> src/chapt/c_1.rs:221:5
[INFO] [stdout]     |
[INFO] [stdout] 220 | pub struct Currency {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 221 |     amount: f64,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 222 |     currency_code: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `print_info`, and `convert_to` are never used
[INFO] [stdout]    --> src/chapt/c_1.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | impl Currency {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 226 |     fn new(amount: f64, currency_code: &String) -> Currency {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn print_info(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     fn convert_to(&mut self, new_currency: &str, exchange_rate: f64) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `currency_code` is never read
[INFO] [stdout]    --> src/chapt/c_1.rs:248:5
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct CurrencyT<T> {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 247 |     amount: T,
[INFO] [stdout] 248 |     currency_code: String,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `subtract` are never used
[INFO] [stdout]    --> src/chapt/c_1.rs:255:8
[INFO] [stdout]     |
[INFO] [stdout] 251 | / impl<T> CurrencyT<T>
[INFO] [stdout] 252 | | where
[INFO] [stdout] 253 | |     T: std::ops::Sub<Output = T> + Copy,
[INFO] [stdout]     | |________________________________________- associated items in this implementation
[INFO] [stdout] 254 |   {
[INFO] [stdout] 255 |       fn new(amount: T, currency_code: &String) -> CurrencyT<T> {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |       fn subtract(&self, x: T) -> T {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `templateABC` should have a snake case name
[INFO] [stdout]   --> src/chapt/c_1.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn templateABC<T>(a: T, b: T, c: T) -> T
[INFO] [stdout]    |        ^^^^^^^^^^^ help: convert the identifier to snake case: `template_abc`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refABC` should have a snake case name
[INFO] [stdout]   --> src/chapt/c_1.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn refABC<T>(a: &T, b: &T, c: &T) -> T
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `ref_abc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `linklist` (bin "linklist") due to 2 previous errors; 28 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "33ec1c4dd03246449b7c67f6af40d0a495ee61e02c728523c207ba6e29dcf5a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33ec1c4dd03246449b7c67f6af40d0a495ee61e02c728523c207ba6e29dcf5a1", kill_on_drop: false }`
[INFO] [stdout] 33ec1c4dd03246449b7c67f6af40d0a495ee61e02c728523c207ba6e29dcf5a1
