[INFO] cloning repository https://github.com/ogomezba/rs-algorithms [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ogomezba/rs-algorithms" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fogomezba%2Frs-algorithms", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fogomezba%2Frs-algorithms'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d33ad4cf838034673e15a7e9b3d0f1dc25507f93 [INFO] building ogomezba/rs-algorithms against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fogomezba%2Frs-algorithms" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/ogomezba/rs-algorithms on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/ogomezba/rs-algorithms [INFO] finished tweaking git repo https://github.com/ogomezba/rs-algorithms [INFO] tweaked toml for git repo https://github.com/ogomezba/rs-algorithms written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/ogomezba/rs-algorithms 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e0a21464f2d74a0b270d3a4734637e834ca1bec899f23dc17ae8fa09bfe0372c [INFO] running `Command { std: "docker" "start" "-a" "e0a21464f2d74a0b270d3a4734637e834ca1bec899f23dc17ae8fa09bfe0372c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e0a21464f2d74a0b270d3a4734637e834ca1bec899f23dc17ae8fa09bfe0372c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0a21464f2d74a0b270d3a4734637e834ca1bec899f23dc17ae8fa09bfe0372c", kill_on_drop: false }` [INFO] [stdout] e0a21464f2d74a0b270d3a4734637e834ca1bec899f23dc17ae8fa09bfe0372c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 321b59dee13165b354cd4be0dde621063ea1e7d0627631138230c8398ea9be4c [INFO] running `Command { std: "docker" "start" "-a" "321b59dee13165b354cd4be0dde621063ea1e7d0627631138230c8398ea9be4c", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Compiling getrandom v0.2.10 [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 algorithms-course v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/algorithms/quick_sort.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `insertion_sort as isort` [INFO] [stdout] --> src/algorithms/quick_sort.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use super::{insertion_sort as isort, knuth_shuffle::shuffle}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `line_segment_intersection` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn line_segment_intersection(segments: &[LineSegment]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_horizontal` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn is_horizontal(segment: &LineSegment) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `less_prio_event` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn less_prio_event(e1: &Event, e2: &Event) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Event` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 77 | enum Event { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LineSegment` is never constructed [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct LineSegment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 88 | impl LineSegment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 89 | pub fn new(start: Point, end: Point) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:94:6 [INFO] [stdout] | [INFO] [stdout] 94 | type Point = (isize, isize); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DepthFirstPath` is never constructed [INFO] [stdout] --> src/algorithms/graph_algorithms.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct DepthFirstPath { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DepthFirstPath` 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 `create`, `has_path_to`, and `path_to` are never used [INFO] [stdout] --> src/algorithms/graph_algorithms.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl DepthFirstPath { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 11 | pub fn create(g: &Graph, s: usize) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn has_path_to(&self, v: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn path_to(&self, v: usize) -> Option> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs` is never used [INFO] [stdout] --> src/algorithms/graph_algorithms.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn bfs(g: &Graph, v: usize, marked: &mut Vec, edge_to: &mut Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/heap_sort.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn sort(mut v: Vec) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/insertion_sort.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn sort(v: &mut [T]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort_section` is never used [INFO] [stdout] --> src/algorithms/insertion_sort.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn sort_section(v: &mut Vec, low: usize, high: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shuffle` is never used [INFO] [stdout] --> src/algorithms/knuth_shuffle.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn shuffle(v: &mut [T]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kruskal_mst` is never used [INFO] [stdout] --> src/algorithms/kruskal_mst.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn kruskal_mst(g: WeightedGraph) -> (Vec, u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CUTOFF` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | static CUTOFF: usize = 7; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn sort(v: &mut Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort_without_copy` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn sort_without_copy(mut v: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `basic_sort` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn basic_sort(v: &mut Vec, aux: &mut Vec, low: usize, high: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bottom_up_sort` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn bottom_up_sort(v: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `in_place_merge` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn in_place_merge( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_without_copy` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:95:4 [INFO] [stdout] | [INFO] [stdout] 95 | fn merge_without_copy(v1: Vec, v2: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QuickFind` is never constructed [INFO] [stdout] --> src/algorithms/quick_find.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct QuickFind { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `union`, and `connected` are never used [INFO] [stdout] --> src/algorithms/quick_find.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl QuickFind { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new(number_of_elements: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn union(&mut self, a: usize, b: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn connected(&self, a: usize, b: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CUTOFF` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | static CUTOFF: usize = 10; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn sort(v: &mut [T]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `selection` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn selection(v: &mut [T], k: usize) -> &T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_selection` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn do_selection(v: &mut [T], k: usize, lo: usize, hi: usize) -> &T { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_sort` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn do_sort(v: &mut [T]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `partition_full` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn partition_full(v: &mut [T], lo: usize, hi: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `partition_slice` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn partition_slice(v: &mut [T]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QuickUnion` is never constructed [INFO] [stdout] --> src/algorithms/quick_union.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct QuickUnion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `union`, `connected`, and `find_root` are never used [INFO] [stdout] --> src/algorithms/quick_union.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl QuickUnion { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new(number_of_elements: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn union(&mut self, a: usize, b: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn connected(&self, a: usize, b: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn find_root(&self, a: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QuickUnionWeighted` is never constructed [INFO] [stdout] --> src/algorithms/quick_union_weighted.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct QuickUnionWeighted { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `QuickUnionWeighted` 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 `new`, `union`, `set_under`, `connected`, `find_root`, and `find_root_mut` are never used [INFO] [stdout] --> src/algorithms/quick_union_weighted.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl QuickUnionWeighted { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 8 | pub fn new(number_of_elements: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn union(&mut self, a: usize, b: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn set_under(&mut self, child: usize, parent: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn connected(&self, a: usize, b: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | fn find_root(&self, a: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn find_root_mut(&mut self, a: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/selection_sort.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(v: &mut Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shell_sort` is never used [INFO] [stdout] --> src/algorithms/shell_sort.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn shell_sort(v: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shell_sort_h` is never used [INFO] [stdout] --> src/algorithms/shell_sort.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn shell_sort_h(v: &mut [T], h: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShellSequenceGenerator` is never constructed [INFO] [stdout] --> src/algorithms/shell_sort.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | struct ShellSequenceGenerator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/algorithms/shell_sort.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl ShellSequenceGenerator { [INFO] [stdout] | --------------------------- associated function in this implementation [INFO] [stdout] 41 | fn new(max: usize) -> ShellSequenceGenerator { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bag` is never constructed [INFO] [stdout] --> src/data_structures/bag.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Bag { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, and `iter` are never used [INFO] [stdout] --> src/data_structures/bag.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Bag { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn push(&mut self, element: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn iter(&self) -> std::slice::Iter<'_, T> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BalancedSearchTree` is never constructed [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct BalancedSearchTree { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BalancedSearchTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Color` is never used [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | enum Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl BalancedSearchTree { [INFO] [stdout] | ------------------------------------------------------- associated items in this implementation [INFO] [stdout] 24 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn get(&self, key: K) -> Option<&V> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn put(&mut self, key: K, val: V) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | fn do_put(node: Option>>, key: K, val: V) -> Option>> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn rotate_left(mut node: Node) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn rotate_right(mut node: Node) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn flip_colors(mut node: Node) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | fn is_red(node: &Option<&Box>>) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinaryHeap` is never constructed [INFO] [stdout] --> src/data_structures/binary_heap.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct BinaryHeap { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/binary_heap.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl BinaryHeap { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 7 | pub fn new(less_prio: fn(&T, &T) -> bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn insert(&mut self, element: T) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn delete_max(&mut self) -> T { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn swim(&mut self, i: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | fn sink(&mut self, sink_start: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn parent(i: usize) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn first_child(&self, i: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_priority_queue` is never used [INFO] [stdout] --> src/data_structures/binary_heap.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn max_priority_queue() -> BinaryHeap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `min_priority_queue` is never used [INFO] [stdout] --> src/data_structures/binary_heap.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn min_priority_queue() -> BinaryHeap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/data_structures/binary_search_tree.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinarySearchTree` is never constructed [INFO] [stdout] --> src/data_structures/binary_search_tree.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct BinarySearchTree { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinarySearchTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/binary_search_tree.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl BinarySearchTree { [INFO] [stdout] | -------------------------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> BinarySearchTree { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn get(&self, key: K) -> Option<&T> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn put(&mut self, key: K, value: T) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn do_put(node: &mut Option>>, key: K, val: T) -> Option>> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn delete(&mut self, key: K) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn do_delete(node: Option>>, key: K) -> Option>> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn delete_min(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | fn do_delete_min( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn min(&self) -> Option<&K> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn max(&self) -> Option<&K> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn rank(&self, key: K) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn do_rank(node: &Option>>, key: K) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn select(&self, k: usize) -> &K { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | fn do_select(node: &Option>>, k: usize, acc: usize) -> &K { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn search_1d(&self, lo: &K, hi: &K) -> Vec<&K> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | fn size(node: &Option>>) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | fn do_search_1d<'a>( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `vertices` and `edges` are never used [INFO] [stdout] --> src/data_structures/graph.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Graph { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn vertices(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn edges(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_empty` is never used [INFO] [stdout] --> src/data_structures/queue.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Queue { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RandomizedQueue` is never constructed [INFO] [stdout] --> src/data_structures/randomized_queue.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct RandomizedQueue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RandomizedQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/randomized_queue.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl RandomizedQueue { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn enqueue(&mut self, elem: T) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn dequeue(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn sample(&self) -> Option<&T> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn iter(&self) -> RandomizedQueueIter { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | fn random_idx(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Stack` is never constructed [INFO] [stdout] --> src/data_structures/stack.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Stack { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stack` 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 `new`, `push`, `pop`, and `is_empty` are never used [INFO] [stdout] --> src/data_structures/stack.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Stack { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new() -> Stack { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn push(&mut self, elem: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StackWithMax` is never constructed [INFO] [stdout] --> src/data_structures/stack_with_max.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct StackWithMax { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StackWithMax` 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 `new`, `push`, `pop`, and `max` are never used [INFO] [stdout] --> src/data_structures/stack_with_max.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl StackWithMax { [INFO] [stdout] | ------------------------------------------ associated items in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn push(&mut self, elem: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn max(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/data_structures/types.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct 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: struct `WeightedGraph` is never constructed [INFO] [stdout] --> src/data_structures/weighted_graph.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct WeightedGraph { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_edge`, `adj`, `vertices`, and `edges` are never used [INFO] [stdout] --> src/data_structures/weighted_graph.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl WeightedGraph { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 9 | pub fn new(n: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn add_edge(&mut self, edge: Edge) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn adj(&self, v: usize) -> &[Rc] { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn vertices(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn edges(&self) -> &[Rc] { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `both`, `other`, and `weight` are never used [INFO] [stdout] --> src/data_structures/weighted_graph.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Edge { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 51 | pub fn new(v: usize, w: usize, weight: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn both(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn other(&self, v: usize) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn weight(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brute_collinear_points` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn brute_collinear_points(points: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fast_collinear_points` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn fast_collinear_points(points: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:70:10 [INFO] [stdout] | [INFO] [stdout] 70 | pub type Point = (f32, f32); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LineSegment` is never constructed [INFO] [stdout] --> src/exercises/collinear_points.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct LineSegment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineSegment` 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 function `new` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 78 | impl LineSegment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 79 | fn new(start: Point, end: Point) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_height` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn compare_height((x1, y1): &Point, (x2, y2): &Point) -> Ordering { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slope` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn slope((x1, y1): Point, (x2, y2): Point) -> f32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evaluate` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn evaluate(expression: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_operator` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn to_operator(c: char) -> Box f32> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_operator` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn is_operator(c: char) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn mul(a: f32, b: f32) -> f32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn add(a: f32, b: f32) -> f32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `execute_percolation` is never used [INFO] [stdout] --> src/exercises/percolation.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn execute_percolation(n: usize, runs: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Percolation` is never constructed [INFO] [stdout] --> src/exercises/percolation.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Percolation { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MatrixElement` is never constructed [INFO] [stdout] --> src/exercises/percolation.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | struct MatrixElement { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `open`, `number_of_open_sites`, `percolates`, `get`, and `get_mut` are never used [INFO] [stdout] --> src/exercises/percolation.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl Percolation { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 43 | pub fn new(n: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn open(&mut self, i: usize, j: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | fn number_of_open_sites(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn percolates(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn get(&self, i: usize, j: usize) -> &MatrixElement { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn get_mut(&mut self, i: usize, j: usize) -> &mut MatrixElement { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_puzzle` is never used [INFO] [stdout] --> src/exercises/slider_puzzle.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn solve_puzzle(board: Board) -> SearchNode { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchNode` is never constructed [INFO] [stdout] --> src/exercises/slider_puzzle.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct SearchNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `priority` and `print_solution` are never used [INFO] [stdout] --> src/exercises/slider_puzzle.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl SearchNode { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 46 | fn priority(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn print_solution(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/exercises/slider_puzzle.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 67 | impl Board { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 68 | pub fn new(tiles: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn dimension(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn hamming(&self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn manhattan(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn is_goal(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn neighbors(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | fn tile_goal(&self, n: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | fn zero(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn swap(&mut self, (x1, y1): (usize, usize), (x2, y2): (usize, usize)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/algorithms/merge_sort.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let N = v.len(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.09s [INFO] running `Command { std: "docker" "inspect" "321b59dee13165b354cd4be0dde621063ea1e7d0627631138230c8398ea9be4c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "321b59dee13165b354cd4be0dde621063ea1e7d0627631138230c8398ea9be4c", kill_on_drop: false }` [INFO] [stdout] 321b59dee13165b354cd4be0dde621063ea1e7d0627631138230c8398ea9be4c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 427d666681d1ffe57831b5db11925b3dd8a9946334a0ae5202ae33d5805cf848 [INFO] running `Command { std: "docker" "start" "-a" "427d666681d1ffe57831b5db11925b3dd8a9946334a0ae5202ae33d5805cf848", kill_on_drop: false }` [INFO] [stderr] Compiling algorithms-course v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::time::Instant` [INFO] [stdout] --> src/algorithms/quick_sort.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::time::Instant; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `insertion_sort as isort` [INFO] [stdout] --> src/algorithms/quick_sort.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | use super::{insertion_sort as isort, knuth_shuffle::shuffle}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `line_segment_intersection` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn line_segment_intersection(segments: &[LineSegment]) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_horizontal` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:53:4 [INFO] [stdout] | [INFO] [stdout] 53 | fn is_horizontal(segment: &LineSegment) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `less_prio_event` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:57:4 [INFO] [stdout] | [INFO] [stdout] 57 | fn less_prio_event(e1: &Event, e2: &Event) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Event` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:77:6 [INFO] [stdout] | [INFO] [stdout] 77 | enum Event { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LineSegment` is never constructed [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct LineSegment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 88 | impl LineSegment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 89 | pub fn new(start: Point, end: Point) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point` is never used [INFO] [stdout] --> src/algorithms/geometric_algorithms.rs:94:6 [INFO] [stdout] | [INFO] [stdout] 94 | type Point = (isize, isize); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `DepthFirstPath` is never constructed [INFO] [stdout] --> src/algorithms/graph_algorithms.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct DepthFirstPath { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DepthFirstPath` 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 `create`, `has_path_to`, and `path_to` are never used [INFO] [stdout] --> src/algorithms/graph_algorithms.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 10 | impl DepthFirstPath { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 11 | pub fn create(g: &Graph, s: usize) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn has_path_to(&self, v: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn path_to(&self, v: usize) -> Option> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bfs` is never used [INFO] [stdout] --> src/algorithms/graph_algorithms.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn bfs(g: &Graph, v: usize, marked: &mut Vec, edge_to: &mut Vec) { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/heap_sort.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn sort(mut v: Vec) -> Vec { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/insertion_sort.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn sort(v: &mut [T]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort_section` is never used [INFO] [stdout] --> src/algorithms/insertion_sort.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn sort_section(v: &mut Vec, low: usize, high: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shuffle` is never used [INFO] [stdout] --> src/algorithms/knuth_shuffle.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn shuffle(v: &mut [T]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kruskal_mst` is never used [INFO] [stdout] --> src/algorithms/kruskal_mst.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn kruskal_mst(g: WeightedGraph) -> (Vec, u32) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CUTOFF` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | static CUTOFF: usize = 7; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn sort(v: &mut Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort_without_copy` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn sort_without_copy(mut v: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `basic_sort` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn basic_sort(v: &mut Vec, aux: &mut Vec, low: usize, high: usize) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `bottom_up_sort` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | pub fn bottom_up_sort(v: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `in_place_merge` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn in_place_merge( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `merge_without_copy` is never used [INFO] [stdout] --> src/algorithms/merge_sort.rs:95:4 [INFO] [stdout] | [INFO] [stdout] 95 | fn merge_without_copy(v1: Vec, v2: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QuickFind` is never constructed [INFO] [stdout] --> src/algorithms/quick_find.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct QuickFind { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `union`, and `connected` are never used [INFO] [stdout] --> src/algorithms/quick_find.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl QuickFind { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new(number_of_elements: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn union(&mut self, a: usize, b: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn connected(&self, a: usize, b: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CUTOFF` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | static CUTOFF: usize = 10; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn sort(v: &mut [T]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `selection` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn selection(v: &mut [T], k: usize) -> &T { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_selection` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn do_selection(v: &mut [T], k: usize, lo: usize, hi: usize) -> &T { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `do_sort` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | fn do_sort(v: &mut [T]) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `partition_full` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:41:4 [INFO] [stdout] | [INFO] [stdout] 41 | fn partition_full(v: &mut [T], lo: usize, hi: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `partition_slice` is never used [INFO] [stdout] --> src/algorithms/quick_sort.rs:70:4 [INFO] [stdout] | [INFO] [stdout] 70 | fn partition_slice(v: &mut [T]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QuickUnion` is never constructed [INFO] [stdout] --> src/algorithms/quick_union.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct QuickUnion { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `union`, `connected`, and `find_root` are never used [INFO] [stdout] --> src/algorithms/quick_union.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl QuickUnion { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new(number_of_elements: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn union(&mut self, a: usize, b: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn connected(&self, a: usize, b: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | fn find_root(&self, a: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `QuickUnionWeighted` is never constructed [INFO] [stdout] --> src/algorithms/quick_union_weighted.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct QuickUnionWeighted { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `QuickUnionWeighted` 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 `new`, `union`, `set_under`, `connected`, `find_root`, and `find_root_mut` are never used [INFO] [stdout] --> src/algorithms/quick_union_weighted.rs:8:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl QuickUnionWeighted { [INFO] [stdout] | ----------------------- associated items in this implementation [INFO] [stdout] 8 | pub fn new(number_of_elements: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 20 | pub fn union(&mut self, a: usize, b: usize) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 40 | pub fn set_under(&mut self, child: usize, parent: usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn connected(&self, a: usize, b: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | fn find_root(&self, a: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 58 | fn find_root_mut(&mut self, a: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/algorithms/selection_sort.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(v: &mut Vec) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shell_sort` is never used [INFO] [stdout] --> src/algorithms/shell_sort.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn shell_sort(v: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shell_sort_h` is never used [INFO] [stdout] --> src/algorithms/shell_sort.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn shell_sort_h(v: &mut [T], h: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ShellSequenceGenerator` is never constructed [INFO] [stdout] --> src/algorithms/shell_sort.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | struct ShellSequenceGenerator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/algorithms/shell_sort.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 40 | impl ShellSequenceGenerator { [INFO] [stdout] | --------------------------- associated function in this implementation [INFO] [stdout] 41 | fn new(max: usize) -> ShellSequenceGenerator { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Bag` is never constructed [INFO] [stdout] --> src/data_structures/bag.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct Bag { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `push`, and `iter` are never used [INFO] [stdout] --> src/data_structures/bag.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 5 | impl Bag { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 6 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 12 | pub fn push(&mut self, element: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | pub fn iter(&self) -> std::slice::Iter<'_, T> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BalancedSearchTree` is never constructed [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct BalancedSearchTree { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BalancedSearchTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Color` is never used [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:18:6 [INFO] [stdout] | [INFO] [stdout] 18 | enum Color { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/balanced_search_tree.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl BalancedSearchTree { [INFO] [stdout] | ------------------------------------------------------- associated items in this implementation [INFO] [stdout] 24 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn get(&self, key: K) -> Option<&V> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn put(&mut self, key: K, val: V) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | fn do_put(node: Option>>, key: K, val: V) -> Option>> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | fn rotate_left(mut node: Node) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | fn rotate_right(mut node: Node) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | fn flip_colors(mut node: Node) -> Box> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | fn is_red(node: &Option<&Box>>) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinaryHeap` is never constructed [INFO] [stdout] --> src/data_structures/binary_heap.rs:1:12 [INFO] [stdout] | [INFO] [stdout] 1 | pub struct BinaryHeap { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/binary_heap.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl BinaryHeap { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 7 | pub fn new(less_prio: fn(&T, &T) -> bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 14 | pub fn insert(&mut self, element: T) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn delete_max(&mut self) -> T { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | fn swim(&mut self, i: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 47 | fn sink(&mut self, sink_start: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | fn parent(i: usize) -> usize { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | fn first_child(&self, i: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `max_priority_queue` is never used [INFO] [stdout] --> src/data_structures/binary_heap.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | pub fn max_priority_queue() -> BinaryHeap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `min_priority_queue` is never used [INFO] [stdout] --> src/data_structures/binary_heap.rs:89:8 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn min_priority_queue() -> BinaryHeap { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/data_structures/binary_search_tree.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | struct Node { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `BinarySearchTree` is never constructed [INFO] [stdout] --> src/data_structures/binary_search_tree.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct BinarySearchTree { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinarySearchTree` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/binary_search_tree.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl BinarySearchTree { [INFO] [stdout] | -------------------------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> BinarySearchTree { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn get(&self, key: K) -> Option<&T> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn put(&mut self, key: K, value: T) { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | fn do_put(node: &mut Option>>, key: K, val: T) -> Option>> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn delete(&mut self, key: K) { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 75 | fn do_delete(node: Option>>, key: K) -> Option>> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 106 | pub fn delete_min(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | fn do_delete_min( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn min(&self) -> Option<&K> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn max(&self) -> Option<&K> { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 158 | pub fn len(&self) -> usize { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 162 | pub fn rank(&self, key: K) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | fn do_rank(node: &Option>>, key: K) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | pub fn select(&self, k: usize) -> &K { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | fn do_select(node: &Option>>, k: usize, acc: usize) -> &K { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | pub fn search_1d(&self, lo: &K, hi: &K) -> Vec<&K> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 199 | fn size(node: &Option>>) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 203 | fn do_search_1d<'a>( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `vertices` and `edges` are never used [INFO] [stdout] --> src/data_structures/graph.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 6 | impl Graph { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 18 | pub fn vertices(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn edges(&self) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_empty` is never used [INFO] [stdout] --> src/data_structures/queue.rs:41:12 [INFO] [stdout] | [INFO] [stdout] 7 | impl Queue { [INFO] [stdout] | ------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `RandomizedQueue` is never constructed [INFO] [stdout] --> src/data_structures/randomized_queue.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct RandomizedQueue { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RandomizedQueue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/data_structures/randomized_queue.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl RandomizedQueue { [INFO] [stdout] | -------------------------- associated items in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn enqueue(&mut self, elem: T) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | pub fn dequeue(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn sample(&self) -> Option<&T> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn size(&self) -> usize { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 46 | pub fn iter(&self) -> RandomizedQueueIter { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 53 | fn random_idx(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Stack` is never constructed [INFO] [stdout] --> src/data_structures/stack.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub struct Stack { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Stack` 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 `new`, `push`, `pop`, and `is_empty` are never used [INFO] [stdout] --> src/data_structures/stack.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl Stack { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 9 | pub fn new() -> Stack { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 13 | pub fn push(&mut self, elem: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 19 | pub fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 25 | pub fn is_empty(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `StackWithMax` is never constructed [INFO] [stdout] --> src/data_structures/stack_with_max.rs:7:12 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct StackWithMax { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `StackWithMax` 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 `new`, `push`, `pop`, and `max` are never used [INFO] [stdout] --> src/data_structures/stack_with_max.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl StackWithMax { [INFO] [stdout] | ------------------------------------------ associated items in this implementation [INFO] [stdout] 13 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 23 | pub fn push(&mut self, elem: T) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn pop(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 48 | pub fn max(&mut self) -> Option { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Node` is never constructed [INFO] [stdout] --> src/data_structures/types.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct 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: struct `WeightedGraph` is never constructed [INFO] [stdout] --> src/data_structures/weighted_graph.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | pub struct WeightedGraph { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `add_edge`, `adj`, `vertices`, and `edges` are never used [INFO] [stdout] --> src/data_structures/weighted_graph.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 8 | impl WeightedGraph { [INFO] [stdout] | ------------------ associated items in this implementation [INFO] [stdout] 9 | pub fn new(n: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn add_edge(&mut self, edge: Edge) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | pub fn adj(&self, v: usize) -> &[Rc] { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 34 | pub fn vertices(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn edges(&self) -> &[Rc] { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `both`, `other`, and `weight` are never used [INFO] [stdout] --> src/data_structures/weighted_graph.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 50 | impl Edge { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 51 | pub fn new(v: usize, w: usize, weight: u32) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 55 | pub fn both(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 59 | pub fn other(&self, v: usize) -> usize { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 67 | pub fn weight(&self) -> u32 { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `brute_collinear_points` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn brute_collinear_points(points: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fast_collinear_points` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn fast_collinear_points(points: Vec) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Point` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:70:10 [INFO] [stdout] | [INFO] [stdout] 70 | pub type Point = (f32, f32); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LineSegment` is never constructed [INFO] [stdout] --> src/exercises/collinear_points.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct LineSegment { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LineSegment` 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 function `new` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:79:8 [INFO] [stdout] | [INFO] [stdout] 78 | impl LineSegment { [INFO] [stdout] | ---------------- associated function in this implementation [INFO] [stdout] 79 | fn new(start: Point, end: Point) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compare_height` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn compare_height((x1, y1): &Point, (x2, y2): &Point) -> Ordering { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `slope` is never used [INFO] [stdout] --> src/exercises/collinear_points.rs:94:4 [INFO] [stdout] | [INFO] [stdout] 94 | fn slope((x1, y1): Point, (x2, y2): Point) -> f32 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `evaluate` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn evaluate(expression: &str) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_operator` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn to_operator(c: char) -> Box f32> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_operator` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn is_operator(c: char) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:43:4 [INFO] [stdout] | [INFO] [stdout] 43 | fn mul(a: f32, b: f32) -> f32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/exercises/dijkstra_arithmetics.rs:47:4 [INFO] [stdout] | [INFO] [stdout] 47 | fn add(a: f32, b: f32) -> f32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `execute_percolation` is never used [INFO] [stdout] --> src/exercises/percolation.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn execute_percolation(n: usize, runs: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Percolation` is never constructed [INFO] [stdout] --> src/exercises/percolation.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct Percolation { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MatrixElement` is never constructed [INFO] [stdout] --> src/exercises/percolation.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | struct MatrixElement { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `open`, `number_of_open_sites`, `percolates`, `get`, and `get_mut` are never used [INFO] [stdout] --> src/exercises/percolation.rs:43:12 [INFO] [stdout] | [INFO] [stdout] 42 | impl Percolation { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 43 | pub fn new(n: usize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn open(&mut self, i: usize, j: usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | fn number_of_open_sites(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn percolates(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | fn get(&self, i: usize, j: usize) -> &MatrixElement { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 133 | fn get_mut(&mut self, i: usize, j: usize) -> &mut MatrixElement { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve_puzzle` is never used [INFO] [stdout] --> src/exercises/slider_puzzle.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn solve_puzzle(board: Board) -> SearchNode { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SearchNode` is never constructed [INFO] [stdout] --> src/exercises/slider_puzzle.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | pub struct SearchNode { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `priority` and `print_solution` are never used [INFO] [stdout] --> src/exercises/slider_puzzle.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 45 | impl SearchNode { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] 46 | fn priority(&self) -> usize { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub fn print_solution(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/exercises/slider_puzzle.rs:68:12 [INFO] [stdout] | [INFO] [stdout] 67 | impl Board { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 68 | pub fn new(tiles: Vec>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 72 | pub fn dimension(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn hamming(&self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 93 | pub fn manhattan(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn is_goal(&self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn neighbors(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | fn tile_goal(&self, n: usize) -> (usize, usize) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 152 | fn zero(&self) -> (usize, usize) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn swap(&mut self, (x1, y1): (usize, usize), (x2, y2): (usize, usize)) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `N` should have a snake case name [INFO] [stdout] --> src/algorithms/merge_sort.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | let N = v.len(); [INFO] [stdout] | ^ help: convert the identifier to snake case: `n` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.45s [INFO] running `Command { std: "docker" "inspect" "427d666681d1ffe57831b5db11925b3dd8a9946334a0ae5202ae33d5805cf848", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "427d666681d1ffe57831b5db11925b3dd8a9946334a0ae5202ae33d5805cf848", kill_on_drop: false }` [INFO] [stdout] 427d666681d1ffe57831b5db11925b3dd8a9946334a0ae5202ae33d5805cf848