[INFO] cloning repository https://github.com/wizardpisces/dispatch-logic-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wizardpisces/dispatch-logic-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwizardpisces%2Fdispatch-logic-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwizardpisces%2Fdispatch-logic-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8fabb04403962d4fe9ab0f34ea14141a8f94117d
[INFO] testing wizardpisces/dispatch-logic-rust/8fabb04403962d4fe9ab0f34ea14141a8f94117d against 1.90.0 for beta-1.91-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwizardpisces%2Fdispatch-logic-rust" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wizardpisces/dispatch-logic-rust
[INFO] finished tweaking git repo https://github.com/wizardpisces/dispatch-logic-rust
[INFO] tweaked toml for git repo https://github.com/wizardpisces/dispatch-logic-rust written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wizardpisces/dispatch-logic-rust on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wizardpisces/dispatch-logic-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" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 956b69d4dde88ac84551af57da45eeb3d187d736998e4fcbb2ccbc4301eccf3d
[INFO] running `Command { std: "docker" "start" "-a" "956b69d4dde88ac84551af57da45eeb3d187d736998e4fcbb2ccbc4301eccf3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "956b69d4dde88ac84551af57da45eeb3d187d736998e4fcbb2ccbc4301eccf3d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "956b69d4dde88ac84551af57da45eeb3d187d736998e4fcbb2ccbc4301eccf3d", kill_on_drop: false }`
[INFO] [stdout] 956b69d4dde88ac84551af57da45eeb3d187d736998e4fcbb2ccbc4301eccf3d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6a5f6f00c51a72e5e8a21b32d1f8535fae338bdc8b8e870ea616f3fe6f9e683e
[INFO] running `Command { std: "docker" "start" "-a" "6a5f6f00c51a72e5e8a21b32d1f8535fae338bdc8b8e870ea616f3fe6f9e683e", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.137
[INFO] [stderr]    Compiling proc-macro2 v1.0.47
[INFO] [stderr]    Compiling unicode-ident v1.0.5
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling syn v1.0.103
[INFO] [stderr]    Compiling getrandom v0.2.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling hello_macro_derive v0.1.0 (/opt/rustwide/workdir/hello_macro_derive)
[INFO] [stderr]    Compiling dispatch-logic v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `JoinHandle`
[INFO] [stdout]  --> src/practice/thread.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread::{self, JoinHandle};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::LinkedList`
[INFO] [stdout]  --> src/algorithm/linked_list.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{collections::LinkedList, fmt::Display};
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::LinkedList`
[INFO] [stdout]  --> src/algorithm/double_linked_list.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     collections::LinkedList,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `guess_game` and `recursive_macro`
[INFO] [stdout]   --> src/main.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use practice::{args_parse,guess_game,recursive_macro};
[INFO] [stdout]    |                           ^^^^^^^^^^ ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm/linked_list.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |             let mut temp = self.head.take().unwrap();
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/algorithm/linked_list.rs:221:26
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn append(&mut self, other: &mut LinkedListMock<T>)->&mut Self {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/algorithm/double_linked_list.rs:83:34
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn push_back_node(&mut self, mut node: Node<T>) {
[INFO] [stdout]    |                                  ----^^^^
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `head_node`
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:105:22
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Some(ref head_node) => {
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `double_linked_list::Iter<T>` is more private than the item `DoubleLinkedList::<T>::iter`
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `DoubleLinkedList::<T>::iter` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `double_linked_list::Iter<T>` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:252:1
[INFO] [stdout]     |
[INFO] [stdout] 252 | struct Iter<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start` is never used
[INFO] [stdout]  --> src/practice/guess_game.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn start() {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_string` is never used
[INFO] [stdout]  --> src/practice/file_reader.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn read_file_string(filepath: &str) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_vec` is never used
[INFO] [stdout]   --> src/practice/file_reader.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn read_file_vec(filepath: &str) -> Result<Vec<u8>, Box<dyn std::error::Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_line_by_line` is never used
[INFO] [stdout]   --> src/practice/file_reader.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn read_file_line_by_line(filepath: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file_buffer` is never used
[INFO] [stdout]   --> src/practice/file_reader.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn read_file_buffer(filepath: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `iterate_dir` is never used
[INFO] [stdout]   --> src/practice/file_reader.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn iterate_dir() {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `first_word` is never used
[INFO] [stdout]  --> src/practice/str_operation.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn first_word(s: &String) -> &str {
[INFO] [stdout]   |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> src/practice/pointer/structure.rs:3:10
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub enum List {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]  --> src/practice/pointer/structure.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl List {
[INFO] [stdout]   | --------- method in this implementation
[INFO] [stdout] 9 |     fn tail(&self) -> Option<&List> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RCList` is never used
[INFO] [stdout]   --> src/practice/pointer/structure.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum RCList {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]   --> src/practice/pointer/structure.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RCList {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 23 |     fn tail(&self) -> Option<&RefCell<Box<RCList>>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Messenger` is never used
[INFO] [stdout]  --> src/practice/pointer/refcell.rs:1:11
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub trait Messenger {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LimitTracker` is never constructed
[INFO] [stdout]  --> src/practice/pointer/refcell.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct LimitTracker<'a, T: Messenger> {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `set_value` are never used
[INFO] [stdout]   --> src/practice/pointer/refcell.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | / impl<'a, T> LimitTracker<'a, T>
[INFO] [stdout] 12 | | where
[INFO] [stdout] 13 | |     T: Messenger,
[INFO] [stdout]    | |_________________- associated items in this implementation
[INFO] [stdout] 14 |   {
[INFO] [stdout] 15 |       pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |       pub fn set_value(&mut self, value: usize) {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `List` is never used
[INFO] [stdout]  --> src/practice/pointer/cycle.rs:6:6
[INFO] [stdout]   |
[INFO] [stdout] 6 | enum List {
[INFO] [stdout]   |      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/practice/pointer/cycle.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Node {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]   --> src/practice/pointer/cycle.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl List {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] 19 |     fn tail(&self) -> Option<&RefCell<Rc<List>>> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `channel` is never used
[INFO] [stdout]  --> src/practice/thread.rs:7:4
[INFO] [stdout]   |
[INFO] [stdout] 7 | fn channel() {
[INFO] [stdout]   |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mutex` is never used
[INFO] [stdout]   --> src/practice/thread.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn mutex() {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bubble_sort` is never used
[INFO] [stdout]   --> src/algorithm/bubble.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn bubble_sort<T: Ord>(arr: &mut [T]) {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge` is never used
[INFO] [stdout]  --> src/algorithm/mergesort.rs:1:4
[INFO] [stdout]   |
[INFO] [stdout] 1 | fn merge(vec: &mut Vec<i32>, start: usize, mid: usize, end: usize) {
[INFO] [stdout]   |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_sort` is never used
[INFO] [stdout]   --> src/algorithm/mergesort.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn merge_sort(vec: &mut Vec<i32>, start: usize, end: usize) {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MergeParam` is never constructed
[INFO] [stdout]   --> src/algorithm/mergesort.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 | struct MergeParam {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `merge_sort_nonrecursive` is never used
[INFO] [stdout]   --> src/algorithm/mergesort.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn merge_sort_nonrecursive(vec: &mut Vec<i32>, start: usize, end: usize) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Linked` is never used
[INFO] [stdout]  --> src/algorithm/linked_list.rs:3:6
[INFO] [stdout]   |
[INFO] [stdout] 3 | type Linked<T> = Option<Box<Node<T>>>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]  --> src/algorithm/linked_list.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Node<T> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LinkedListMock` is never constructed
[INFO] [stdout]   --> src/algorithm/linked_list.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct LinkedListMock<T> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/algorithm/linked_list.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | impl<T> Node<T> {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 20 |     fn new(data: T) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/algorithm/linked_list.rs:30:8
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl<T> LinkedListMock<T> {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  30 |     fn new() -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  37 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  41 |     fn push_front_node(&mut self, mut node: Box<Node<T>>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn push_front(&mut self, data: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  51 |     pub fn pop_front(&mut self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn push_back(&mut self, data: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn pop_back(&mut self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn reverse(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn contains(&self, data: &T) -> bool
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     fn front(&self) -> Option<&T> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn front_mut(&mut self) -> Option<&mut T> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     fn back(&self) -> &Linked<T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn get_node_by_index(&mut self, index: usize) -> Option<&mut Box<Node<T>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     fn remove_v1(&mut self, at: usize) -> T {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn back_mut() {}
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 209 |     fn split_off() {}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 210 |     fn drain_filter() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 211 |     fn from_iter(&mut self, vec: Vec<T>) -> &mut Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn append(&mut self, other: &mut LinkedListMock<T>)->&mut Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Iter` is never constructed
[INFO] [stdout]    --> src/algorithm/linked_list.rs:229:8
[INFO] [stdout]     |
[INFO] [stdout] 229 | struct Iter<'a, T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]    --> src/algorithm/linked_list.rs:235:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | impl<'a, T> Iter<'a, T> {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] 235 |     fn next(&mut self) -> Option<&T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Linked` is never used
[INFO] [stdout]  --> src/algorithm/double_linked_list.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type Linked<T> = Option<Rc<RefCell<Node<T>>>>;
[INFO] [stdout]   |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Node` is never constructed
[INFO] [stdout]   --> src/algorithm/double_linked_list.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct Node<T> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DoubleLinkedList` is never constructed
[INFO] [stdout]   --> src/algorithm/double_linked_list.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct DoubleLinkedList<T> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/algorithm/double_linked_list.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<T> Node<T> {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 25 |     fn new(data: T) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:35:18
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl<T> DoubleLinkedList<T> {
[INFO] [stdout]     | --------------------------- associated items in this implementation
[INFO] [stdout]  35 |     pub const fn new() -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  45 |     fn gen_linked_node(&self, node: Node<T>) -> Linked<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |     fn push_front_node(&mut self, mut node: Node<T>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  62 |     pub fn push_front(&mut self, data: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn pop_front(&mut self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     fn push_back_node(&mut self, mut node: Node<T>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub fn push_back(&mut self, data: T) -> &mut Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn pop_back(&mut self) -> Option<T> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn clear(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn contains(&self, data: &T) -> bool
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     fn front(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     fn back(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     fn get_node_by_index(&mut self, index: usize) -> Linked<T> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn from_iter(&mut self, vec: Vec<T>) -> &mut Self {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     fn append(&mut self, other: &mut DoubleLinkedList<T>) -> &mut Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Iter` is never constructed
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:252:8
[INFO] [stdout]     |
[INFO] [stdout] 252 | struct Iter<T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next` is never used
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:258:8
[INFO] [stdout]     |
[INFO] [stdout] 257 | impl<T> Iter<T> {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 258 |     fn next(&mut self) -> Option<T> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/practice/pointer/refcell.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stdout]    |                           ^^                 --------------- the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<'_, T> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/algorithm/linked_list.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ------- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:165:14
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn front(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |              ^^^^^            ------ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn front(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn back(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |             ^^^^^            ------ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn back(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.26s
[INFO] running `Command { std: "docker" "inspect" "6a5f6f00c51a72e5e8a21b32d1f8535fae338bdc8b8e870ea616f3fe6f9e683e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a5f6f00c51a72e5e8a21b32d1f8535fae338bdc8b8e870ea616f3fe6f9e683e", kill_on_drop: false }`
[INFO] [stdout] 6a5f6f00c51a72e5e8a21b32d1f8535fae338bdc8b8e870ea616f3fe6f9e683e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e7a7785644702413d5cf7a32359fd42a9b75751b49e44a451fc89e421d3fd308
[INFO] running `Command { std: "docker" "start" "-a" "e7a7785644702413d5cf7a32359fd42a9b75751b49e44a451fc89e421d3fd308", kill_on_drop: false }`
[INFO] [stderr]    Compiling dispatch-logic v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `JoinHandle`
[INFO] [stdout]  --> src/practice/thread.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::thread::{self, JoinHandle};
[INFO] [stdout]   |                         ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: duplicated attribute
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:459:5
[INFO] [stdout]     |
[INFO] [stdout] 459 |     #[test]
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(duplicate_macro_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `guess_game` and `recursive_macro`
[INFO] [stdout]   --> src/main.rs:10:27
[INFO] [stdout]    |
[INFO] [stdout] 10 | use practice::{args_parse,guess_game,recursive_macro};
[INFO] [stdout]    |                           ^^^^^^^^^^ ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/practice/file_reader.rs:70:13
[INFO] [stdout]    |
[INFO] [stdout] 70 |         let data = read_file_vec(FILEPATH).unwrap();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]   --> src/practice/file_reader.rs:75:13
[INFO] [stdout]    |
[INFO] [stdout] 75 |         let data = read_file_line_by_line(FILEPATH).unwrap();
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/practice/str_operation.rs:18:14
[INFO] [stdout]    |
[INFO] [stdout] 18 |          let mut s = String::from("hello world");
[INFO] [stdout]    |              ----^
[INFO] [stdout]    |              |
[INFO] [stdout]    |              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `list`
[INFO] [stdout]   --> src/practice/pointer/structure.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let list = List::Cons(
[INFO] [stdout]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node1`
[INFO] [stdout]   --> src/practice/pointer/structure.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let node1 = List::Cons(1, Box::new(List::Nil));
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_node1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node2`
[INFO] [stdout]   --> src/practice/pointer/structure.rs:43:13
[INFO] [stdout]    |
[INFO] [stdout] 43 |         let node2 = List::Cons(2, Box::new(List::Nil));
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_node2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/algorithm/linked_list.rs:181:17
[INFO] [stdout]     |
[INFO] [stdout] 181 |             let mut temp = self.head.take().unwrap();
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `other`
[INFO] [stdout]    --> src/algorithm/linked_list.rs:221:26
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn append(&mut self, other: &mut LinkedListMock<T>)->&mut Self {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/algorithm/double_linked_list.rs:83:34
[INFO] [stdout]    |
[INFO] [stdout] 83 |     fn push_back_node(&mut self, mut node: Node<T>) {
[INFO] [stdout]    |                                  ----^^^^
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `head_node`
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:105:22
[INFO] [stdout]     |
[INFO] [stdout] 105 |             Some(ref head_node) => {
[INFO] [stdout]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `double_linked_list::Iter<T>` is more private than the item `double_linked_list::DoubleLinkedList::<T>::iter`
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `double_linked_list::DoubleLinkedList::<T>::iter` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `double_linked_list::Iter<T>` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:252:1
[INFO] [stdout]     |
[INFO] [stdout] 252 | struct Iter<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start` is never used
[INFO] [stdout]  --> src/practice/guess_game.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn start() {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]  --> src/practice/pointer/structure.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 |     Cons(i32, Box<List>),
[INFO] [stdout]   |     ---- ^^^  ^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     fields in this variant
[INFO] [stdout]   |
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]   |
[INFO] [stdout] 4 -     Cons(i32, Box<List>),
[INFO] [stdout] 4 +     Cons((), ()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `tail` is never used
[INFO] [stdout]  --> src/practice/pointer/structure.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | impl List {
[INFO] [stdout]   | --------- method in this implementation
[INFO] [stdout] 9 |     fn tail(&self) -> Option<&List> {
[INFO] [stdout]   |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/practice/pointer/structure.rs:19:10
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Cons(i32, RefCell<Box<RCList>>),
[INFO] [stdout]    |     ---- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RCList` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 19 -     Cons(i32, RefCell<Box<RCList>>),
[INFO] [stdout] 19 +     Cons((), RefCell<Box<RCList>>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/practice/pointer/cycle.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout]   |     ---- ^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]   |
[INFO] [stdout] 7 -     Cons(i32, RefCell<Rc<List>>),
[INFO] [stdout] 7 +     Cons((), RefCell<Rc<List>>),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `value` and `children` are never read
[INFO] [stdout]   --> src/practice/pointer/cycle.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct Node {
[INFO] [stdout]    |        ---- fields in this struct
[INFO] [stdout] 13 |     value: i32,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     parent: RefCell<Weak<Node>>,
[INFO] [stdout] 15 |     children: RefCell<Vec<Rc<Node>>>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `reverse`, `back_mut`, `split_off`, `drain_filter`, and `append` are never used
[INFO] [stdout]    --> src/algorithm/linked_list.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl<T> LinkedListMock<T> {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn reverse(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     fn back_mut() {}
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 209 |     fn split_off() {}
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 210 |     fn drain_filter() {}
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     fn append(&mut self, other: &mut LinkedListMock<T>)->&mut Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `contains` are never used
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout]  34 | impl<T> DoubleLinkedList<T> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     pub fn contains(&self, data: &T) -> bool
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `contains` is never used
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:384:8
[INFO] [stdout]     |
[INFO] [stdout] 384 |     fn contains() {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/practice/pointer/refcell.rs:15:27
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stdout]    |                           ^^                 --------------- the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<'_, T> {
[INFO] [stdout]    |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/algorithm/linked_list.rs:109:17
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stdout]     |                 ^^^^^     ------- the same lifetime is hidden here
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `standardLinkedList` should have a snake case name
[INFO] [stdout]    --> src/algorithm/linked_list.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 276 |     fn standardLinkedList() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `standard_linked_list`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::collections::LinkedList::<T, A>::front_mut` that must be used
[INFO] [stdout]    --> src/algorithm/linked_list.rs:284:9
[INFO] [stdout]     |
[INFO] [stdout] 284 |         l.front_mut();
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 284 |         let _ = l.front_mut();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::collections::LinkedList::<T, A>::front` that must be used
[INFO] [stdout]    --> src/algorithm/linked_list.rs:285:9
[INFO] [stdout]     |
[INFO] [stdout] 285 |         l.front();
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 285 |         let _ = l.front();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::collections::LinkedList::<T, A>::back` that must be used
[INFO] [stdout]    --> src/algorithm/linked_list.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 287 |         l.back();
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 287 |         let _ = l.back();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:165:14
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn front(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |              ^^^^^            ------ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 165 |     fn front(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn back(&self) -> Option<Ref<T>> {
[INFO] [stdout]     |             ^^^^^            ------ the same lifetime is hidden here
[INFO] [stdout]     |             |
[INFO] [stdout]     |             the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 181 |     fn back(&self) -> Option<Ref<'_, T>> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `standardLinkedList` should have a snake case name
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:309:8
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn standardLinkedList() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `standard_linked_list`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::collections::LinkedList::<T, A>::front_mut` that must be used
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:317:9
[INFO] [stdout]     |
[INFO] [stdout] 317 |         l.front_mut();
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 317 |         let _ = l.front_mut();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::collections::LinkedList::<T, A>::front` that must be used
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:318:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |         l.front();
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 318 |         let _ = l.front();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `std::collections::LinkedList::<T, A>::back` that must be used
[INFO] [stdout]    --> src/algorithm/double_linked_list.rs:320:9
[INFO] [stdout]     |
[INFO] [stdout] 320 |         l.back();
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let _ = l.back();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.07s
[INFO] running `Command { std: "docker" "inspect" "e7a7785644702413d5cf7a32359fd42a9b75751b49e44a451fc89e421d3fd308", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e7a7785644702413d5cf7a32359fd42a9b75751b49e44a451fc89e421d3fd308", kill_on_drop: false }`
[INFO] [stdout] e7a7785644702413d5cf7a32359fd42a9b75751b49e44a451fc89e421d3fd308
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] ea6d4b42584e37956008c115b8269859cc53f718c131b3e515b9f676b84c6eb9
[INFO] running `Command { std: "docker" "start" "-a" "ea6d4b42584e37956008c115b8269859cc53f718c131b3e515b9f676b84c6eb9", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `JoinHandle`
[INFO] [stdout] 
[INFO] [stderr]  --> src/practice/thread.rs:3:25
[INFO] [stdout] running 49 tests
[INFO] [stderr]   |
[INFO] [stdout] test algorithm::bubble::tests::test_bubbl_char ... ok
[INFO] [stderr] 3 | use std::thread::{self, JoinHandle};
[INFO] [stdout] test algorithm::bubble::tests::test_bubbl_int ... ok
[INFO] [stderr]   |                         ^^^^^^^^^^
[INFO] [stdout] test algorithm::double_linked_list::tests::clear ... ok
[INFO] [stderr]   |
[INFO] [stdout] test algorithm::double_linked_list::tests::from ... ok
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] test algorithm::double_linked_list::tests::front ... ok
[INFO] [stderr] 
[INFO] [stdout] test algorithm::double_linked_list::tests::get_node_by_index ... ok
[INFO] [stderr] warning: duplicated attribute
[INFO] [stdout] test algorithm::double_linked_list::tests::head ... ok
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:459:5
[INFO] [stdout] test algorithm::double_linked_list::tests::iterator_demonstration ... ok
[INFO] [stderr]     |
[INFO] [stdout] test algorithm::double_linked_list::tests::pop_front ... ok
[INFO] [stderr] 459 |     #[test]
[INFO] [stdout] test algorithm::double_linked_list::tests::push_back ... ok
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stdout] test algorithm::double_linked_list::tests::push_front ... ok
[INFO] [stderr]     |
[INFO] [stdout] test algorithm::double_linked_list::tests::standardLinkedList ... ok
[INFO] [stderr]     = note: `#[warn(duplicate_macro_attributes)]` on by default
[INFO] [stdout] test algorithm::double_linked_list::tests::tail ... ok
[INFO] [stderr] 
[INFO] [stdout] test algorithm::linked_list::tests::back ... ok
[INFO] [stderr] warning: unused imports: `guess_game` and `recursive_macro`
[INFO] [stdout] test algorithm::linked_list::tests::push_back ... ok
[INFO] [stderr]   --> src/main.rs:10:27
[INFO] [stdout] test algorithm::double_linked_list::tests::pop_back ... ok
[INFO] [stderr]    |
[INFO] [stdout] test algorithm::linked_list::tests::iter ... ok
[INFO] [stderr] 10 | use practice::{args_parse,guess_game,recursive_macro};
[INFO] [stdout] test algorithm::linked_list::tests::standardLinkedList ... ok
[INFO] [stderr]    |                           ^^^^^^^^^^ ^^^^^^^^^^^^^^^
[INFO] [stdout] test algorithm::linked_list::tests::remove_v1 ... ok
[INFO] [stderr] 
[INFO] [stdout] test algorithm::linked_list::tests::from ... ok
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stdout] test algorithm::linked_list::tests::contains ... ok
[INFO] [stderr]   --> src/practice/file_reader.rs:70:13
[INFO] [stdout] test algorithm::linked_list::tests::front_mut ... ok
[INFO] [stderr]    |
[INFO] [stdout] test algorithm::double_linked_list::tests::back ... ok
[INFO] [stderr] 70 |         let data = read_file_vec(FILEPATH).unwrap();
[INFO] [stdout] test algorithm::linked_list::tests::pop_front ... ok
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] test algorithm::linked_list::tests::push_front ... ok
[INFO] [stderr]    |
[INFO] [stdout] test algorithm::mergesort::tests::test_merge_sort ... ok
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] test algorithm::linked_list::tests::pop_back ... ok
[INFO] [stderr] 
[INFO] [stdout] test algorithm::mergesort::tests::test_merge_sort_nonrecursive ... ok
[INFO] [stderr] warning: unused variable: `data`
[INFO] [stdout] test algorithm::linked_list::tests::clear ... ok
[INFO] [stderr]   --> src/practice/file_reader.rs:75:13
[INFO] [stdout] test practice::file_reader::tests::test_read_file_string ... ok
[INFO] [stderr]    |
[INFO] [stdout] test practice::file_reader::tests::test_iterate_dir ... ok
[INFO] [stderr] 75 |         let data = read_file_line_by_line(FILEPATH).unwrap();
[INFO] [stdout] test practice::pointer::cycle::tests::test_list ... ok
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] test practice::pointer::cycle::tests::weak ... ok
[INFO] [stderr] 
[INFO] [stdout] test practice::recursive_macro::tests::write_html ... ok
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stdout] test practice::pointer::structure::tests::test_refcell_list ... ok
[INFO] [stderr]   --> src/practice/str_operation.rs:18:14
[INFO] [stdout] test practice::file_reader::tests::test_read_file_line_by_line ... ok
[INFO] [stderr]    |
[INFO] [stdout] test practice::str_operation::tests::test_first_word ... ok
[INFO] [stderr] 18 |          let mut s = String::from("hello world");
[INFO] [stderr]    |              ----^
[INFO] [stderr]    |              |
[INFO] [stderr]    |              help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `list`
[INFO] [stderr]   --> src/practice/pointer/structure.rs:37:13
[INFO] [stderr]    |
[INFO] [stderr] 37 |         let list = List::Cons(
[INFO] [stderr]    |             ^^^^ help: if this is intentional, prefix it with an underscore: `_list`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node1`
[INFO] [stderr]   --> src/practice/pointer/structure.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |         let node1 = List::Cons(1, Box::new(List::Nil));
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_node1`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `node2`
[INFO] [stderr]   --> src/practice/pointer/structure.rs:43:13
[INFO] [stderr]    |
[INFO] [stderr] 43 |         let node2 = List::Cons(2, Box::new(List::Nil));
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_node2`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/algorithm/linked_list.rs:181:17
[INFO] [stderr]     |
[INFO] [stderr] 181 |             let mut temp = self.head.take().unwrap();
[INFO] [stderr]     |                 ----^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `other`
[INFO] [stderr]    --> src/algorithm/linked_list.rs:221:26
[INFO] [stderr]     |
[INFO] [stderr] 221 |     fn append(&mut self, other: &mut LinkedListMock<T>)->&mut Self {
[INFO] [stderr]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_other`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/algorithm/double_linked_list.rs:83:34
[INFO] [stderr]    |
[INFO] [stderr] 83 |     fn push_back_node(&mut self, mut node: Node<T>) {
[INFO] [stderr]    |                                  ----^^^^
[INFO] [stderr]    |                                  |
[INFO] [stderr]    |                                  help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `head_node`
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:105:22
[INFO] [stderr]     |
[INFO] [stderr] 105 |             Some(ref head_node) => {
[INFO] [stderr]     |                      ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head_node`
[INFO] [stderr] 
[INFO] [stderr] warning: type `double_linked_list::Iter<T>` is more private than the item `double_linked_list::DoubleLinkedList::<T>::iter`
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:131:5
[INFO] [stderr]     |
[INFO] [stderr] 131 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `double_linked_list::DoubleLinkedList::<T>::iter` is reachable at visibility `pub(crate)`
[INFO] [stderr]     |
[INFO] [stderr] note: but type `double_linked_list::Iter<T>` is only usable at visibility `pub(self)`
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:252:1
[INFO] [stderr]     |
[INFO] [stderr] 252 | struct Iter<T> {
[INFO] [stderr]     | ^^^^^^^^^^^^^^
[INFO] [stderr]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `start` is never used
[INFO] [stderr]  --> src/practice/guess_game.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn start() {
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `0` and `1` are never read
[INFO] [stderr]  --> src/practice/pointer/structure.rs:4:10
[INFO] [stderr]   |
[INFO] [stderr] 4 |     Cons(i32, Box<List>),
[INFO] [stderr]   |     ---- ^^^  ^^^^^^^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     fields in this variant
[INFO] [stderr]   |
[INFO] [stderr] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stderr]   |
[INFO] [stderr] 4 -     Cons(i32, Box<List>),
[INFO] [stderr] 4 +     Cons((), ()),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: method `tail` is never used
[INFO] [stderr]  --> src/practice/pointer/structure.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | impl List {
[INFO] [stderr]   | --------- method in this implementation
[INFO] [stderr] 9 |     fn tail(&self) -> Option<&List> {
[INFO] [stderr]   |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/practice/pointer/structure.rs:19:10
[INFO] [stderr]    |
[INFO] [stderr] 19 |     Cons(i32, RefCell<Box<RCList>>),
[INFO] [stderr]    |     ---- ^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `RCList` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 19 -     Cons(i32, RefCell<Box<RCList>>),
[INFO] [stderr] 19 +     Cons((), RefCell<Box<RCList>>),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]  --> src/practice/pointer/cycle.rs:7:10
[INFO] [stderr]   |
[INFO] [stderr] 7 |     Cons(i32, RefCell<Rc<List>>),
[INFO] [stderr]   |     ---- ^^^
[INFO] [stderr]   |     |
[INFO] [stderr]   |     field in this variant
[INFO] [stderr]   |
[INFO] [stderr]   = note: `List` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]   |
[INFO] [stderr] 7 -     Cons(i32, RefCell<Rc<List>>),
[INFO] [stderr] 7 +     Cons((), RefCell<Rc<List>>),
[INFO] [stderr]   |
[INFO] [stderr] 
[INFO] [stderr] warning: fields `value` and `children` are never read
[INFO] [stderr]   --> src/practice/pointer/cycle.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | struct Node {
[INFO] [stderr]    |        ---- fields in this struct
[INFO] [stderr] 13 |     value: i32,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 14 |     parent: RefCell<Weak<Node>>,
[INFO] [stderr] 15 |     children: RefCell<Vec<Rc<Node>>>,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `reverse`, `back_mut`, `split_off`, `drain_filter`, and `append` are never used
[INFO] [stderr]    --> src/algorithm/linked_list.rs:92:12
[INFO] [stderr]     |
[INFO] [stderr]  29 | impl<T> LinkedListMock<T> {
[INFO] [stderr]     | ------------------------- associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr]  92 |     pub fn reverse(&mut self) {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     fn back_mut() {}
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 209 |     fn split_off() {}
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 210 |     fn drain_filter() {}
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 221 |     fn append(&mut self, other: &mut LinkedListMock<T>)->&mut Self {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `len` and `contains` are never used
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:127:12
[INFO] [stderr]     |
[INFO] [stderr]  34 | impl<T> DoubleLinkedList<T> {
[INFO] [stderr]     | --------------------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 127 |     pub fn len(&self) -> usize {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 142 |     pub fn contains(&self, data: &T) -> bool
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `contains` is never used
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:384:8
[INFO] [stderr]     |
[INFO] [stderr] 384 |     fn contains() {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/practice/pointer/refcell.rs:15:27
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<T> {
[INFO] [stderr]    |                           ^^                 --------------- the same lifetime is hidden here
[INFO] [stderr]    |                           |
[INFO] [stderr]    |                           the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 15 |     pub fn new(messenger: &T, max: usize) -> LimitTracker<'_, T> {
[INFO] [stderr]    |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/algorithm/linked_list.rs:109:17
[INFO] [stderr]     |
[INFO] [stderr] 109 |     pub fn iter(&self) -> Iter<T> {
[INFO] [stderr]     |                 ^^^^^     ------- the same lifetime is hidden here
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 109 |     pub fn iter(&self) -> Iter<'_, T> {
[INFO] [stderr]     |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: function `standardLinkedList` should have a snake case name
[INFO] [stderr]    --> src/algorithm/linked_list.rs:276:8
[INFO] [stderr]     |
[INFO] [stderr] 276 |     fn standardLinkedList() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `standard_linked_list`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::collections::LinkedList::<T, A>::front_mut` that must be used
[INFO] [stderr]    --> src/algorithm/linked_list.rs:284:9
[INFO] [stderr]     |
[INFO] [stderr] 284 |         l.front_mut();
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 284 |         let _ = l.front_mut();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::collections::LinkedList::<T, A>::front` that must be used
[INFO] [stderr]    --> src/algorithm/linked_list.rs:285:9
[INFO] [stderr]     |
[INFO] [stderr] 285 |         l.front();
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 285 |         let _ = l.front();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::collections::LinkedList::<T, A>::back` that must be used
[INFO] [stderr]    --> src/algorithm/linked_list.rs:287:9
[INFO] [stderr]     |
[INFO] [stderr] 287 |         l.back();
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 287 |         let _ = l.back();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:165:14
[INFO] [stderr]     |
[INFO] [stderr] 165 |     fn front(&self) -> Option<Ref<T>> {
[INFO] [stderr]     |              ^^^^^            ------ the same lifetime is hidden here
[INFO] [stderr]     |              |
[INFO] [stderr]     |              the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 165 |     fn front(&self) -> Option<Ref<'_, T>> {
[INFO] [stderr]     |                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:181:13
[INFO] [stderr]     |
[INFO] [stderr] 181 |     fn back(&self) -> Option<Ref<T>> {
[INFO] [stderr]     |             ^^^^^            ------ the same lifetime is hidden here
[INFO] [stderr]     |             |
[INFO] [stderr]     |             the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 181 |     fn back(&self) -> Option<Ref<'_, T>> {
[INFO] [stderr]     |                                  +++
[INFO] [stderr] 
[INFO] [stderr] warning: function `standardLinkedList` should have a snake case name
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:309:8
[INFO] [stderr]     |
[INFO] [stderr] 309 |     fn standardLinkedList() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `standard_linked_list`
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::collections::LinkedList::<T, A>::front_mut` that must be used
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:317:9
[INFO] [stderr]     |
[INFO] [stderr] 317 |         l.front_mut();
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 317 |         let _ = l.front_mut();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::collections::LinkedList::<T, A>::front` that must be used
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:318:9
[INFO] [stderr]     |
[INFO] [stderr] 318 |         l.front();
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 318 |         let _ = l.front();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused return value of `std::collections::LinkedList::<T, A>::back` that must be used
[INFO] [stderr]    --> src/algorithm/double_linked_list.rs:320:9
[INFO] [stderr]     |
[INFO] [stderr] 320 |         l.back();
[INFO] [stderr]     |         ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 320 |         let _ = l.back();
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `dispatch-logic` (bin "dispatch-logic" test) generated 35 warnings (run `cargo fix --bin "dispatch-logic" --tests` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/dispatch_logic-9dca9cb564756edc)
[INFO] [stdout] test algorithm::double_linked_list::tests::get_node_by_index ... ok
[INFO] [stdout] test practice::pointer::refcell::tests::it_sends_an_over_75_percent_warning_message ... ok
[INFO] [stdout] test practice::file_reader::tests::test_read_file_buffer ... ok
[INFO] [stdout] test practice::file_reader::tests::test_read_file_vec ... ok
[INFO] [stdout] test practice::pointer::structure::tests::test_list ... ok
[INFO] [stdout] test practice::thread::tests::test_mutex ... ok
[INFO] [stdout] test algorithm::double_linked_list::tests::get_node_by_index_panic - should panic ... ok
[INFO] [stdout] test algorithm::double_linked_list::tests::iter ... FAILED
[INFO] [stdout] test algorithm::double_linked_list::tests::append ... FAILED
[INFO] [stdout] test algorithm::linked_list::tests::get_node_by_index ... ok
[INFO] [stdout] test algorithm::linked_list::tests::front ... ok
[INFO] [stdout] test practice::thread::tests::test_channel has been running for over 60 seconds
[ERROR] error running command: no output for 300 seconds
[INFO] running `Command { std: "docker" "inspect" "ea6d4b42584e37956008c115b8269859cc53f718c131b3e515b9f676b84c6eb9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea6d4b42584e37956008c115b8269859cc53f718c131b3e515b9f676b84c6eb9", kill_on_drop: false }`
[INFO] [stdout] ea6d4b42584e37956008c115b8269859cc53f718c131b3e515b9f676b84c6eb9
