[INFO] cloning repository https://github.com/jzohdi/LCS
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jzohdi/LCS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzohdi%2FLCS", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzohdi%2FLCS'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7dfc6048e9a5c565935578b90f7f06bbc0826052
[INFO] checking jzohdi/LCS against master#4b9792692fbb675174d4d2082e7c37b2bc930e71 for pr-153692-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjzohdi%2FLCS" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jzohdi/LCS
[INFO] finished tweaking git repo https://github.com/jzohdi/LCS
[INFO] tweaked toml for git repo https://github.com/jzohdi/LCS written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jzohdi/LCS on toolchain 4b9792692fbb675174d4d2082e7c37b2bc930e71
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jzohdi/LCS 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" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a05c461844fc1d5c701667d6f17ae7084253e320e86ecf62446c240e67bc4b89
[INFO] running `Command { std: "docker" "start" "-a" "a05c461844fc1d5c701667d6f17ae7084253e320e86ecf62446c240e67bc4b89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a05c461844fc1d5c701667d6f17ae7084253e320e86ecf62446c240e67bc4b89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a05c461844fc1d5c701667d6f17ae7084253e320e86ecf62446c240e67bc4b89", kill_on_drop: false }`
[INFO] [stdout] a05c461844fc1d5c701667d6f17ae7084253e320e86ecf62446c240e67bc4b89
[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" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+4b9792692fbb675174d4d2082e7c37b2bc930e71" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fabcc9e03aa7de68ec4e6cd858d4d9e7358f64a76059f798a8c20604de9b7601
[INFO] running `Command { std: "docker" "start" "-a" "fabcc9e03aa7de68ec4e6cd858d4d9e7358f64a76059f798a8c20604de9b7601", kill_on_drop: false }`
[INFO] [stderr]     Checking longest_bytes v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/suffix_tree.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/ukkonen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/ukkonen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/suffix_tree.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::rc::Rc`
[INFO] [stdout]  --> src/ukkonen.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::rc::Rc;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cell::RefCell`
[INFO] [stdout]  --> src/ukkonen.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::RefCell;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ukkonen.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut active_node: Option<usize> = None;   // current node being looked at, None means root
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `order` is never read
[INFO] [stdout]    --> src/ukkonen.rs:272:25
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut order = 0;
[INFO] [stdout]     |                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 276 |             order = node.order;
[INFO] [stdout]     |             ------------------ `order` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_start` is never read
[INFO] [stdout]    --> src/ukkonen.rs:273:29
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let mut new_start = 0;
[INFO] [stdout]     |                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 279 |             new_start = original_start + config.branch_len;
[INFO] [stdout]     |             ---------------------------------------------- `new_start` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `edge`
[INFO] [stdout]    --> src/ukkonen.rs:342:34
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_edge`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `length`
[INFO] [stdout]    --> src/ukkonen.rs:342:44
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/ukkonen.rs:342:59
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/ukkonen.rs:374:25
[INFO] [stdout]     |
[INFO] [stdout] 374 |             if let Some(n) = &self.nodes[i] {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/ukkonen.rs:422:25
[INFO] [stdout]     |
[INFO] [stdout] 422 |             if let Some(n) = &self.nodes[i] {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLocation` is never constructed
[INFO] [stdout]  --> src/lib.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct FileLocation {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_offset`, and `offset` are never used
[INFO] [stdout]   --> src/lib.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl FileLocation {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(filename: &str) -> FileLocation {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn set_offset(&mut self, offset: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn offset(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimized_suffix_search` is never used
[INFO] [stdout]    --> src/lib.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn optimized_suffix_search(file1: &reader::ParsedFile, file2: &reader::ParsedFile) -> SearchResult  {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `suffix_tree_search` is never used
[INFO] [stdout]    --> src/lib.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn suffix_tree_search(file1: &reader::ParsedFile, file2: &reader::ParsedFile) -> SearchResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `relative_path` is never read
[INFO] [stdout]   --> src/reader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ParsedFile {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 11 |     file_name: String,
[INFO] [stdout] 12 |     relative_path: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `children` is never read
[INFO] [stdout]    --> src/ukkonen.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 133 | struct UNode {
[INFO] [stdout]     |        ----- field in this struct
[INFO] [stdout] 134 |     pub children: Vec<usize>, // the children will be the location of the child in NodeStore
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UNode` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeType` is never used
[INFO] [stdout]    --> src/ukkonen.rs:141:6
[INFO] [stdout]     |
[INFO] [stdout] 141 | enum NodeType {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `node_type_string` is never used
[INFO] [stdout]    --> src/ukkonen.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn node_type_string(range: &Range) -> NodeType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `length` is never used
[INFO] [stdout]    --> src/ukkonen.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl UNode {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `add_leaf`, `index_is_child`, and `is_root` are never used
[INFO] [stdout]    --> src/ukkonen.rs:298:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl UkkonenTree {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn add_leaf(&mut self, order: usize, key: u8, start: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn is_root(node: &UNode) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `range_length` is never used
[INFO] [stdout]    --> src/ukkonen.rs:504:4
[INFO] [stdout]     |
[INFO] [stdout] 504 | fn range_length(range: &Range) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_start` is never used
[INFO] [stdout]    --> src/ukkonen.rs:521:12
[INFO] [stdout]     |
[INFO] [stdout] 520 | impl Range {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] 521 |     pub fn set_start(&mut self, start: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ukkonen.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut active_node: Option<usize> = None;   // current node being looked at, None means root
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `order` is never read
[INFO] [stdout]    --> src/ukkonen.rs:272:25
[INFO] [stdout]     |
[INFO] [stdout] 272 |         let mut order = 0;
[INFO] [stdout]     |                         ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 276 |             order = node.order;
[INFO] [stdout]     |             ------------------ `order` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `new_start` is never read
[INFO] [stdout]    --> src/ukkonen.rs:273:29
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let mut new_start = 0;
[INFO] [stdout]     |                             ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 279 |             new_start = original_start + config.branch_len;
[INFO] [stdout]     |             ---------------------------------------------- `new_start` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `edge`
[INFO] [stdout]    --> src/ukkonen.rs:342:34
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_edge`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `length`
[INFO] [stdout]    --> src/ukkonen.rs:342:44
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |                                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/ukkonen.rs:342:59
[INFO] [stdout]     |
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |                                                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/ukkonen.rs:374:25
[INFO] [stdout]     |
[INFO] [stdout] 374 |             if let Some(n) = &self.nodes[i] {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `n`
[INFO] [stdout]    --> src/ukkonen.rs:422:25
[INFO] [stdout]     |
[INFO] [stdout] 422 |             if let Some(n) = &self.nodes[i] {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_n`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLocation` is never constructed
[INFO] [stdout]  --> src/lib.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct FileLocation {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_offset`, and `offset` are never used
[INFO] [stdout]   --> src/lib.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl FileLocation {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 12 |     pub fn new(filename: &str) -> FileLocation {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn set_offset(&mut self, offset: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn offset(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `optimized_suffix_search` is never used
[INFO] [stdout]    --> src/lib.rs:120:4
[INFO] [stdout]     |
[INFO] [stdout] 120 | fn optimized_suffix_search(file1: &reader::ParsedFile, file2: &reader::ParsedFile) -> SearchResult  {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `suffix_tree_search` is never used
[INFO] [stdout]    --> src/lib.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn suffix_tree_search(file1: &reader::ParsedFile, file2: &reader::ParsedFile) -> SearchResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `polynomial_search` is never used
[INFO] [stdout]    --> src/lib.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn polynomial_search(file1: &reader::ParsedFile, file2: &reader::ParsedFile) -> SearchResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `relative_path` is never read
[INFO] [stdout]   --> src/reader.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct ParsedFile {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 11 |     file_name: String,
[INFO] [stdout] 12 |     relative_path: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ukkonen_create` is never used
[INFO] [stdout]   --> src/ukkonen.rs:18:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub fn ukkonen_create(array: &Vec<u8>) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LinkNode` is never used
[INFO] [stdout]    --> src/ukkonen.rs:118:6
[INFO] [stdout]     |
[INFO] [stdout] 118 | enum LinkNode {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `link_to_str` is never used
[INFO] [stdout]    --> src/ukkonen.rs:124:4
[INFO] [stdout]     |
[INFO] [stdout] 124 | fn link_to_str(link: &LinkNode) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UNode` is never constructed
[INFO] [stdout]    --> src/ukkonen.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | struct UNode {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NodeType` is never used
[INFO] [stdout]    --> src/ukkonen.rs:141:6
[INFO] [stdout]     |
[INFO] [stdout] 141 | enum NodeType {
[INFO] [stdout]     |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `node_type_string` is never used
[INFO] [stdout]    --> src/ukkonen.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn node_type_string(range: &Range) -> NodeType {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `length`, and `set_link` are never used
[INFO] [stdout]    --> src/ukkonen.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl UNode {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 155 |     pub fn new(range: Range, link: LinkNode, order: usize) -> UNode {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn length(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub fn set_link(&mut self, link: LinkNode) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_range` is never used
[INFO] [stdout]    --> src/ukkonen.rs:173:4
[INFO] [stdout]     |
[INFO] [stdout] 173 | fn unpack_range(range: &Range) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_new_leaf_range` is never used
[INFO] [stdout]    --> src/ukkonen.rs:182:4
[INFO] [stdout]     |
[INFO] [stdout] 182 | fn get_new_leaf_range(curr_node_range: &Range, end: usize) -> Range {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AddNodeConfig` is never constructed
[INFO] [stdout]    --> src/ukkonen.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 | struct AddNodeConfig {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UkkonenTree` is never constructed
[INFO] [stdout]    --> src/ukkonen.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | struct UkkonenTree {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ukkonen.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl UkkonenTree {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn new() -> UkkonenTree {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn update_link(&mut self, from: usize, to: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn add_node(&mut self, node_key: Option<usize>, child_key: u8, config: AddNodeConfig) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub fn split_node(self: &'_ mut Self, node_key: usize, config: &AddNodeConfig) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     fn new_leaf(self: &'_ mut Self, order: usize, key: u8, start: usize) -> usize {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn add_leaf(&mut self, order: usize, key: u8, start: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub fn add_leaf_to(&mut self, active_node: Option<usize>, child_key: u8, end: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub fn represented_index(&self, active_node: Option<usize>, active_edge: u8, length: usize) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 342 |     pub fn index_is_child(&self, edge: u8, length: usize, key: u8) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     pub fn node_has_child(&self, active_node: Option<usize>, item_to_check: u8) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn is_root(node: &UNode) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub fn get_node_range(&self, node_index: Option<usize>) -> Range {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 |     pub fn pretty_print(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |      fn create_leaf_for(&mut self, node_pos: Option<usize>, child_config: NodeConfig) {
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn inc_size(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 402 |     fn print(&self, curr_node_index: usize, depth: usize) {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 431 |      fn has_child(&self, node_pos: Option<usize>, child_key: u8) -> bool {
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 440 |     fn next_order(&self) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 444 |     fn hash(&self, node_order: usize, key: u8) -> usize {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 448 |     fn get_node_order(&self, node_index: Option<usize>) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub fn node_range(&self, node_index: usize) -> Range {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     fn edge_is_leaf(&self, node_key: Option<usize>, child_key: u8) -> bool  {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     fn is_leaf(&self, key: usize) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     fn child_hash(&self, node_key: Option<usize>, child_key: u8) -> usize {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeConfig` is never constructed
[INFO] [stdout]    --> src/ukkonen.rs:490:8
[INFO] [stdout]     |
[INFO] [stdout] 490 | struct NodeConfig {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Range` is never constructed
[INFO] [stdout]    --> src/ukkonen.rs:498:8
[INFO] [stdout]     |
[INFO] [stdout] 498 | struct Range {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `range_length` is never used
[INFO] [stdout]    --> src/ukkonen.rs:504:4
[INFO] [stdout]     |
[INFO] [stdout] 504 | fn range_length(range: &Range) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `range_to_str` is never used
[INFO] [stdout]    --> src/ukkonen.rs:512:4
[INFO] [stdout]     |
[INFO] [stdout] 512 | fn range_to_str(range: &Range) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `set_start`, `set_end`, `get_start`, and `clone` are never used
[INFO] [stdout]    --> src/ukkonen.rs:521:12
[INFO] [stdout]     |
[INFO] [stdout] 520 | impl Range {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 521 |     pub fn set_start(&mut self, start: usize) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 524 |     pub fn set_end(&mut self, end: Option<usize>) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn get_start(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn clone(range: &Range) -> Range {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::slice::<impl [T]>::connect`: renamed to join
[INFO] [stdout]    --> src/main.rs:119:141
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...ion {}", s.filename, s.start_pos)).collect::<Vec<String>>().connect("\n"));
[INFO] [stdout]     |                                                                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 119 -     println!("Files found in:\n{}", find_all.iter().map(|s| format!("{} at position {}", s.filename, s.start_pos)).collect::<Vec<String>>().connect("\n"));
[INFO] [stdout] 119 +     println!("Files found in:\n{}", find_all.iter().map(|s| format!("{} at position {}", s.filename, s.start_pos)).collect::<Vec<String>>().join("\n"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_search_for_byte` is never used
[INFO] [stdout]    --> src/main.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn current_search_for_byte(search_for: &SearchFor, offset: usize) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `locations_from` is never used
[INFO] [stdout]    --> src/main.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn locations_from(max_res: &SearchResult) -> Vec<SequenceLocation>{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:33:44
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let filename1 = parsed_files[i].clone();
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:34:44
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let filename2 = parsed_files[j].clone();
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::slice::<impl [T]>::connect`: renamed to join
[INFO] [stdout]    --> src/main.rs:119:141
[INFO] [stdout]     |
[INFO] [stdout] 119 | ...ion {}", s.filename, s.start_pos)).collect::<Vec<String>>().connect("\n"));
[INFO] [stdout]     |                                                                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 119 -     println!("Files found in:\n{}", find_all.iter().map(|s| format!("{} at position {}", s.filename, s.start_pos)).collect::<Vec<String>>().connect("\n"));
[INFO] [stdout] 119 +     println!("Files found in:\n{}", find_all.iter().map(|s| format!("{} at position {}", s.filename, s.start_pos)).collect::<Vec<String>>().join("\n"));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_search_for_byte` is never used
[INFO] [stdout]    --> src/main.rs:162:4
[INFO] [stdout]     |
[INFO] [stdout] 162 | fn current_search_for_byte(search_for: &SearchFor, offset: usize) -> u8 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `locations_from` is never used
[INFO] [stdout]    --> src/main.rs:181:4
[INFO] [stdout]     |
[INFO] [stdout] 181 | fn locations_from(max_res: &SearchResult) -> Vec<SequenceLocation>{
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:33:44
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let filename1 = parsed_files[i].clone();
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout]    = note: `#[warn(noop_method_call)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: call to `.clone()` on a reference in this situation does nothing
[INFO] [stdout]   --> src/main.rs:34:44
[INFO] [stdout]    |
[INFO] [stdout] 34 |             let filename2 = parsed_files[j].clone();
[INFO] [stdout]    |                                            ^^^^^^^^ help: remove this redundant call
[INFO] [stdout]    |
[INFO] [stdout]    = note: the type `str` does not implement `Clone`, so calling `clone` on `&str` copies the reference, which does not do anything and can be removed
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.69s
[INFO] running `Command { std: "docker" "inspect" "fabcc9e03aa7de68ec4e6cd858d4d9e7358f64a76059f798a8c20604de9b7601", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fabcc9e03aa7de68ec4e6cd858d4d9e7358f64a76059f798a8c20604de9b7601", kill_on_drop: false }`
[INFO] [stdout] fabcc9e03aa7de68ec4e6cd858d4d9e7358f64a76059f798a8c20604de9b7601
