[INFO] cloning repository https://github.com/terrarier2111/Algorithms [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/terrarier2111/Algorithms" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fterrarier2111%2FAlgorithms", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fterrarier2111%2FAlgorithms'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 90d8da743eb9cfc6b596564bffdff845af1bc98c [INFO] checking terrarier2111/Algorithms against try#9d63f825c0d409b0e1743a2c84b33f86965e5929 for pr-136968 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fterrarier2111%2FAlgorithms" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/terrarier2111/Algorithms on toolchain 9d63f825c0d409b0e1743a2c84b33f86965e5929 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+9d63f825c0d409b0e1743a2c84b33f86965e5929" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/terrarier2111/Algorithms [INFO] finished tweaking git repo https://github.com/terrarier2111/Algorithms [INFO] tweaked toml for git repo https://github.com/terrarier2111/Algorithms written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/terrarier2111/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" "+9d63f825c0d409b0e1743a2c84b33f86965e5929" "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-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+9d63f825c0d409b0e1743a2c84b33f86965e5929" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1e38a57f094af3125abb39946d3e14db8259a3b92cf9300e15552d898d75fe95 [INFO] running `Command { std: "docker" "start" "-a" "1e38a57f094af3125abb39946d3e14db8259a3b92cf9300e15552d898d75fe95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1e38a57f094af3125abb39946d3e14db8259a3b92cf9300e15552d898d75fe95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1e38a57f094af3125abb39946d3e14db8259a3b92cf9300e15552d898d75fe95", kill_on_drop: false }` [INFO] [stdout] 1e38a57f094af3125abb39946d3e14db8259a3b92cf9300e15552d898d75fe95 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3959728d45483eb673ba100a951a6b9f5012970368db2a9e08e0ac9b67c8a5ad" "/opt/rustwide/cargo-home/bin/cargo" "+9d63f825c0d409b0e1743a2c84b33f86965e5929" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4beb93ebce983d299e74a3adaba685cd7c7156e34736849c9e1b1ce6fb0d72bb [INFO] running `Command { std: "docker" "start" "-a" "4beb93ebce983d299e74a3adaba685cd7c7156e34736849c9e1b1ce6fb0d72bb", kill_on_drop: false }` [INFO] [stderr] Checking RustAlgorithms v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:32:94 [INFO] [stdout] | [INFO] [stdout] 32 | let key_offsets: Vec = key.as_bytes().iter().map(|x| (x & CHAR_MASK) - 1).collect(); /// Calculate the offset on one side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | let key_offsets = key_offsets.as_slice(); [INFO] [stdout] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:36:50 [INFO] [stdout] | [INFO] [stdout] 36 | let char_offset = (x.1 & CHAR_MASK) - 1; /// Calculate the offset on the other side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | let result = result_fn(char_offset, key_offset); [INFO] [stdout] | ------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/break_encrypt/caesar.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug`, `Display`, and `Formatter` [INFO] [stdout] --> src/break_encrypt/caesar.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{Debug, Display, Formatter}; [INFO] [stdout] | ^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::encrypt::encrypt_caesar` [INFO] [stdout] --> src/break_encrypt/caesar.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::encrypt::encrypt_caesar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | for x in 0..26 { /// Iterate over the number of letters in the alphabet and check for every possible shift [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | decrypt(inpt, buffer, x); [INFO] [stdout] | ------------------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:32:94 [INFO] [stdout] | [INFO] [stdout] 32 | let key_offsets: Vec = key.as_bytes().iter().map(|x| (x & CHAR_MASK) - 1).collect(); /// Calculate the offset on one side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 33 | let key_offsets = key_offsets.as_slice(); [INFO] [stdout] | ----------------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] = note: `#[warn(unused_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/encrypt/polyalphabet.rs:36:50 [INFO] [stdout] | [INFO] [stdout] 36 | let char_offset = (x.1 & CHAR_MASK) - 1; /// Calculate the offset on the other side of the table [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 37 | let result = result_fn(char_offset, key_offset); [INFO] [stdout] | ------------------------------------------------ rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/break_encrypt/caesar.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Debug`, `Display`, and `Formatter` [INFO] [stdout] --> src/break_encrypt/caesar.rs:2:16 [INFO] [stdout] | [INFO] [stdout] 2 | use std::fmt::{Debug, Display, Formatter}; [INFO] [stdout] | ^^^^^ ^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::encrypt::encrypt_caesar` [INFO] [stdout] --> src/break_encrypt/caesar.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::encrypt::encrypt_caesar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | for x in 0..26 { /// Iterate over the number of letters in the alphabet and check for every possible shift [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | decrypt(inpt, buffer, x); [INFO] [stdout] | ------------------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:20:40 [INFO] [stdout] | [INFO] [stdout] 20 | if buffer == expected_result { /// Compare the result with the expected result [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 21 | | /// we could also add this to a list which we could return later [INFO] [stdout] 22 | | /// and which contains all possible permutations. [INFO] [stdout] | |________________________________________________________________________________________^ [INFO] [stdout] 23 | return Ok(x); [INFO] [stdout] | ------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | /// This means that we didn't find the expected result here! [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | / return Err(BreakError { [INFO] [stdout] 28 | | msg: "".to_string() [INFO] [stdout] 29 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | for x in range { /// Iterate over the given range and check for every possible shift [INFO] [stdout] | ______________________^ [INFO] [stdout] 46 | | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 47 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `finalize` [INFO] [stdout] --> src/rng/acorn.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{finalize, xor_shift::{self, gen_u64}, Rng}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash::Hash` [INFO] [stdout] --> src/compression/huffman.rs:1:68 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::{BinaryHeap, HashMap}, fmt::{Debug, Write}, hash::Hash}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem::transmute` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::mem::transmute; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::Iter` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use std::slice::Iter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::hash_map::Values` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::hash_map::Values; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash::h1::H1` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use hash::h1::H1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng::acorn::AcornRng` [INFO] [stdout] --> src/main.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use rng::acorn::AcornRng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng::lcg::LCGGenerator64` [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use rng::lcg::LCGGenerator64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng::xor_shift::XorShiftPRng64` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use rng::xor_shift::XorShiftPRng64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::sudoku::print_constants` [INFO] [stdout] --> src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::sudoku::print_constants; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::sudoku::verifier::verify` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use crate::sudoku::verifier::verify; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:20:40 [INFO] [stdout] | [INFO] [stdout] 20 | if buffer == expected_result { /// Compare the result with the expected result [INFO] [stdout] | ________________________________________^ [INFO] [stdout] 21 | | /// we could also add this to a list which we could return later [INFO] [stdout] 22 | | /// and which contains all possible permutations. [INFO] [stdout] | |________________________________________________________________________________________^ [INFO] [stdout] 23 | return Ok(x); [INFO] [stdout] | ------------ rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | /// This means that we didn't find the expected result here! [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 27 | / return Err(BreakError { [INFO] [stdout] 28 | | msg: "".to_string() [INFO] [stdout] 29 | | }); [INFO] [stdout] | |______- rustdoc does not generate documentation for expressions [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused doc comment [INFO] [stdout] --> src/break_encrypt/caesar.rs:45:22 [INFO] [stdout] | [INFO] [stdout] 45 | for x in range { /// Iterate over the given range and check for every possible shift [INFO] [stdout] | ______________________^ [INFO] [stdout] 46 | | /// Create a buffer to which we write our cipher output later. [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] 47 | let mut buffer = input.to_string(); [INFO] [stdout] | ----------------------------------- rustdoc does not generate documentation for statements [INFO] [stdout] | [INFO] [stdout] = help: use `//` for a plain comment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::verify` [INFO] [stdout] --> src/sudoku/verifier.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | use super::verify; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `finalize` [INFO] [stdout] --> src/rng/acorn.rs:1:13 [INFO] [stdout] | [INFO] [stdout] 1 | use super::{finalize, xor_shift::{self, gen_u64}, Rng}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash::Hash` [INFO] [stdout] --> src/compression/huffman.rs:1:68 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{collections::{BinaryHeap, HashMap}, fmt::{Debug, Write}, hash::Hash}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::mem::transmute` [INFO] [stdout] --> src/main.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::mem::transmute; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::slice::Iter` [INFO] [stdout] --> src/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use std::slice::Iter; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::hash_map::Values` [INFO] [stdout] --> src/main.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::collections::hash_map::Values; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::convert::TryInto` [INFO] [stdout] --> src/main.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::convert::TryInto; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hash::h1::H1` [INFO] [stdout] --> src/main.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | use hash::h1::H1; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `const_mut_refs` has been stable since 1.83.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(const_mut_refs)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng::acorn::AcornRng` [INFO] [stdout] --> src/main.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | use rng::acorn::AcornRng; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng::lcg::LCGGenerator64` [INFO] [stdout] --> src/main.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | use rng::lcg::LCGGenerator64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rng::xor_shift::XorShiftPRng64` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use rng::xor_shift::XorShiftPRng64; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::sudoku::print_constants` [INFO] [stdout] --> src/main.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | use crate::sudoku::print_constants; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::sudoku::verifier::verify` [INFO] [stdout] --> src/main.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | use crate::sudoku::verifier::verify; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `const_maybe_uninit_write` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(const_maybe_uninit_write)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `const_mut_refs` has been stable since 1.83.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(const_mut_refs)] [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `const_maybe_uninit_write` has been stable since 1.85.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/main.rs:3:12 [INFO] [stdout] | [INFO] [stdout] 3 | #![feature(const_maybe_uninit_write)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut bucket = buckets.get_mut(char_as_num(str_ver[str_ver.len() - 1] as char) as usize).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:39:21 [INFO] [stdout] | [INFO] [stdout] 39 | let mut bucket = result.get_mut(elem).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | let mut bucket = buckets.get_mut(char_as_num(str_ver[str_ver.len() - 1] as char) as usize).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sorting/radix.rs:39:21 [INFO] [stdout] | [INFO] [stdout] 39 | let mut bucket = result.get_mut(elem).unwrap(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sudoku/base.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let mut cells = CellArray::new(board); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:6:9 [INFO] [stdout] | [INFO] [stdout] 6 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/encrypt/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 27 | let mut out = unsafe { out.as_bytes_mut() }; [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `unsafe` block [INFO] [stdout] --> src/util/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | unsafe { input.as_bytes() } [INFO] [stdout] | ^^^^^^ unnecessary `unsafe` block [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/sudoku/base.rs:93:13 [INFO] [stdout] | [INFO] [stdout] 93 | let mut cells = CellArray::new(board); [INFO] [stdout] | ----^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash` is never used [INFO] [stdout] --> src/main.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn hash(val: u64) { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `entropy_analysis` is never used [INFO] [stdout] --> src/main.rs:127:4 [INFO] [stdout] | [INFO] [stdout] 127 | fn entropy_analysis(mut rng: impl Rng) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD` is never used [INFO] [stdout] --> src/main.rs:173:7 [INFO] [stdout] | [INFO] [stdout] 173 | const EXAMPLE_SUDOKU_BOARD: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_2` is never used [INFO] [stdout] --> src/main.rs:185:7 [INFO] [stdout] | [INFO] [stdout] 185 | const EXAMPLE_SUDOKU_BOARD_2: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_3` is never used [INFO] [stdout] --> src/main.rs:197:7 [INFO] [stdout] | [INFO] [stdout] 197 | const EXAMPLE_SUDOKU_BOARD_3: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_4` is never used [INFO] [stdout] --> src/main.rs:210:7 [INFO] [stdout] | [INFO] [stdout] 210 | const EXAMPLE_SUDOKU_BOARD_4: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_5` is never used [INFO] [stdout] --> src/main.rs:222:7 [INFO] [stdout] | [INFO] [stdout] 222 | const EXAMPLE_SUDOKU_BOARD_5: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_6` is never used [INFO] [stdout] --> src/main.rs:235:7 [INFO] [stdout] | [INFO] [stdout] 235 | const EXAMPLE_SUDOKU_BOARD_6: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_7` is never used [INFO] [stdout] --> src/main.rs:247:7 [INFO] [stdout] | [INFO] [stdout] 247 | const EXAMPLE_SUDOKU_BOARD_7: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_8` is never used [INFO] [stdout] --> src/main.rs:259:7 [INFO] [stdout] | [INFO] [stdout] 259 | const EXAMPLE_SUDOKU_BOARD_8: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/radix.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn sort(src: &[i32]) -> Box<[i32]> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `char_as_num` is never used [INFO] [stdout] --> src/sorting/radix.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn char_as_num(input: char) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest` is never used [INFO] [stdout] --> src/sorting/radix.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn longest(strs: &HashMap>) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/selection.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [i32]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/bubble.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [i32]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/insertion.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [usize]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_caesar` is never used [INFO] [stdout] --> src/encrypt/mod.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn encrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_poly` is never used [INFO] [stdout] --> src/encrypt/mod.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn encrypt_poly(input: &str, key: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_caesar` is never used [INFO] [stdout] --> src/encrypt/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn decrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_poly` is never used [INFO] [stdout] --> src/encrypt/mod.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn decrypt_poly(input: &str, key: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASK` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const MASK: u8 = !((1 << 5) | (1 << 6) | (1 << 7)); // TODO: Use this! [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn encrypt(input: &[u8], output: &mut [u8], shift_num: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn decrypt(input: &[u8], output: &mut [u8], shift_num: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn shift(x: u8, offset: u8) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unshift` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn unshift(x: u8, offset: u8) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ALPHABET_START` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const ALPHABET_START: u8 = 65; /// this is equal to `'A'` in UTF-8 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ALPHABET_END` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:2:7 [INFO] [stdout] | [INFO] [stdout] 2 | const ALPHABET_END: u8 = 90; /// this is equal to `'Z'` in UTF-8 [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHAR_MASK` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const CHAR_MASK: u8 = !((1 << 5) | (1 << 6) | (1 << 7)); /// This mask eliminates the bits which are relevant for upper/lower case repres... [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn encrypt(input: &[u8], output: &mut [u8], key: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn decrypt(input: &[u8], output: &mut [u8], key: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_op` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn perform_op(input: &[u8], output: &mut [u8], key: &str, result_fn: Box u8>) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `break_caesar` is never used [INFO] [stdout] --> src/break_encrypt/caesar.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn break_caesar(input: &str, expected: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `break_caesar_permuts_default` is never used [INFO] [stdout] --> src/break_encrypt/caesar.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn break_caesar_permuts_default(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `break_caesar_permuts` is never used [INFO] [stdout] --> src/break_encrypt/caesar.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn break_caesar_permuts(input: &str, range: Range) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_nearest` is never used [INFO] [stdout] --> src/search/binary.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn search_nearest(container: &[usize], target: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_length_limited_nearest` is never used [INFO] [stdout] --> src/search/binary.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn search_length_limited_nearest(container: &[T], target: T, length: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_constants` is never used [INFO] [stdout] --> src/sudoku/mod.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn print_constants() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `column_by_cell` is never used [INFO] [stdout] --> src/sudoku/base.rs:66:14 [INFO] [stdout] | [INFO] [stdout] 66 | pub const fn column_by_cell(cell: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `row_by_cell` is never used [INFO] [stdout] --> src/sudoku/base.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | pub const fn row_by_cell(cell: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `field_by_cell` is never used [INFO] [stdout] --> src/sudoku/base.rs:76:14 [INFO] [stdout] | [INFO] [stdout] 76 | pub const fn field_by_cell(cell: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SudokuBase` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct SudokuBase { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/sudoku/base.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl SudokuBase { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn new(board: &[u8; CELLS]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `META_ARRAY_LEN` is never used [INFO] [stdout] --> src/sudoku/base.rs:146:7 [INFO] [stdout] | [INFO] [stdout] 146 | const META_ARRAY_LEN: usize = 9_usize.div_ceil(2 * size_of::() / size_of::()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MetaArray` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct MetaArray([u64; META_ARRAY_LEN]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MetaArray` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `BASE`, `has_specified`, `get_possibility`, and `set_possibility` are never used [INFO] [stdout] --> src/sudoku/base.rs:153:11 [INFO] [stdout] | [INFO] [stdout] 151 | impl MetaArray { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 152 | [INFO] [stdout] 153 | const BASE: u64 = (1 << 4) - 1; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn has_specified(&self, num: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn get_possibility(&self, num: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub const fn set_possibility(&mut self, num: usize, val: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CellArray` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct CellArray([Cell; CELLS]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `get_mut` are never used [INFO] [stdout] --> src/sudoku/base.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 179 | impl CellArray { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 182 | const fn new(board: &[u8; CELLS]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | pub const fn get(&self, idx: u8) -> Cell { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub const fn get_mut(&mut self, idx: u8) -> &mut Cell { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cell` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | pub struct Cell(u16); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cell` has a derived impl for the trait `Clone`, 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/sudoku/base.rs:245:11 [INFO] [stdout] | [INFO] [stdout] 243 | impl Cell { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 244 | [INFO] [stdout] 245 | const ANY: u16 = ((1 << 10) - 1) & !1; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | const fn new_val(num: u8) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | const fn new_maybe(maybe: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub const fn possible_vals_set(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub const fn possible_vals(self) -> PossibleValsIter { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub const fn may_be(self, val: u8) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub const fn set_impossible(&mut self, val: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | pub const fn set_val(&mut self, val: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub const fn get_val(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub const fn has_val(self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_impossible` is never used [INFO] [stdout] --> src/sudoku/solver.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn set_impossible(base: &mut SudokuBase, cell: usize, val: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cell_val` is never used [INFO] [stdout] --> src/sudoku/solver.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn set_cell_val(base: &mut SudokuBase, cell: usize, final_val: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve` is never used [INFO] [stdout] --> src/sudoku/solver.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn solve(board: &mut [u8; CELLS]) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_seed`, and `gen_u64` are never used [INFO] [stdout] --> src/rng/mod.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Rng { [INFO] [stdout] | --- associated items in this trait [INFO] [stdout] 6 | [INFO] [stdout] 7 | fn new() -> Self; [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | [INFO] [stdout] 9 | fn with_seed(seed: u64) -> Self; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 10 | [INFO] [stdout] 11 | fn gen_u64(&mut self) -> u64; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hash/h1.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl H1 { [INFO] [stdout] | ------- associated function in this implementation [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub const fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_u64` is never used [INFO] [stdout] --> src/hash/h1.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn rotate_u64(val: u64, by: usize) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hash/h2.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl H2 { [INFO] [stdout] | ------- associated function in this implementation [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub const fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MIX` is never used [INFO] [stdout] --> src/hash/h2.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const MIX: u64 = 0b01010101011001010100101010101100111100101000100101011000101001011; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_u64` is never used [INFO] [stdout] --> src/hash/h2.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn rotate_u64(val: u64, by: usize) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_entries` is never used [INFO] [stdout] --> src/compression/huffman.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn build_entries(table: &mut HashMap, node: &CodeNode, curr_word: &mut BitStream) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pop_bit` is never used [INFO] [stdout] --> src/compression/huffman.rs:211:8 [INFO] [stdout] | [INFO] [stdout] 135 | impl BitStream { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 211 | fn pop_bit(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_primes` is never used [INFO] [stdout] --> src/prime_finder.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn find_primes(until: u128) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_prime` is never used [INFO] [stdout] --> src/prime_finder.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_prime(val: u128) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sqrt_newton` is never used [INFO] [stdout] --> src/prime_finder.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn sqrt_newton(n: u128) -> u128 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021 [INFO] [stdout] --> src/main.rs:165:31 [INFO] [stdout] | [INFO] [stdout] 165 | for (dups, cases) in dups.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(array_into_iter)]` on by default [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 165 - for (dups, cases) in dups.into_iter().enumerate() { [INFO] [stdout] 165 + for (dups, cases) in dups.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 165 - for (dups, cases) in dups.into_iter().enumerate() { [INFO] [stdout] 165 + for (dups, cases) in IntoIterator::into_iter(dups).enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hash` is never used [INFO] [stdout] --> src/main.rs:114:4 [INFO] [stdout] | [INFO] [stdout] 114 | fn hash(val: u64) { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `entropy_analysis` is never used [INFO] [stdout] --> src/main.rs:127:4 [INFO] [stdout] | [INFO] [stdout] 127 | fn entropy_analysis(mut rng: impl Rng) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD` is never used [INFO] [stdout] --> src/main.rs:173:7 [INFO] [stdout] | [INFO] [stdout] 173 | const EXAMPLE_SUDOKU_BOARD: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_2` is never used [INFO] [stdout] --> src/main.rs:185:7 [INFO] [stdout] | [INFO] [stdout] 185 | const EXAMPLE_SUDOKU_BOARD_2: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_3` is never used [INFO] [stdout] --> src/main.rs:197:7 [INFO] [stdout] | [INFO] [stdout] 197 | const EXAMPLE_SUDOKU_BOARD_3: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_4` is never used [INFO] [stdout] --> src/main.rs:210:7 [INFO] [stdout] | [INFO] [stdout] 210 | const EXAMPLE_SUDOKU_BOARD_4: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_5` is never used [INFO] [stdout] --> src/main.rs:222:7 [INFO] [stdout] | [INFO] [stdout] 222 | const EXAMPLE_SUDOKU_BOARD_5: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_6` is never used [INFO] [stdout] --> src/main.rs:235:7 [INFO] [stdout] | [INFO] [stdout] 235 | const EXAMPLE_SUDOKU_BOARD_6: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_7` is never used [INFO] [stdout] --> src/main.rs:247:7 [INFO] [stdout] | [INFO] [stdout] 247 | const EXAMPLE_SUDOKU_BOARD_7: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXAMPLE_SUDOKU_BOARD_8` is never used [INFO] [stdout] --> src/main.rs:259:7 [INFO] [stdout] | [INFO] [stdout] 259 | const EXAMPLE_SUDOKU_BOARD_8: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/radix.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | pub(crate) fn sort(src: &[i32]) -> Box<[i32]> { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `char_as_num` is never used [INFO] [stdout] --> src/sorting/radix.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn char_as_num(input: char) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `longest` is never used [INFO] [stdout] --> src/sorting/radix.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn longest(strs: &HashMap>) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/selection.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [i32]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/bubble.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [i32]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sort` is never used [INFO] [stdout] --> src/sorting/insertion.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn sort(src: &mut [usize]) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_caesar` is never used [INFO] [stdout] --> src/encrypt/mod.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn encrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt_poly` is never used [INFO] [stdout] --> src/encrypt/mod.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn encrypt_poly(input: &str, key: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_caesar` is never used [INFO] [stdout] --> src/encrypt/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn decrypt_caesar(input: &str, offset: u8) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt_poly` is never used [INFO] [stdout] --> src/encrypt/mod.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn decrypt_poly(input: &str, key: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASK` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const MASK: u8 = !((1 << 5) | (1 << 6) | (1 << 7)); // TODO: Use this! [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn encrypt(input: &[u8], output: &mut [u8], shift_num: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn decrypt(input: &[u8], output: &mut [u8], shift_num: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `shift` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:23:4 [INFO] [stdout] | [INFO] [stdout] 23 | fn shift(x: u8, offset: u8) -> u8 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `unshift` is never used [INFO] [stdout] --> src/encrypt/ceasar.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | fn unshift(x: u8, offset: u8) -> u8 { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ALPHABET_START` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:1:7 [INFO] [stdout] | [INFO] [stdout] 1 | const ALPHABET_START: u8 = 65; /// this is equal to `'A'` in UTF-8 [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ALPHABET_END` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:2:7 [INFO] [stdout] | [INFO] [stdout] 2 | const ALPHABET_END: u8 = 90; /// this is equal to `'Z'` in UTF-8 [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CHAR_MASK` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const CHAR_MASK: u8 = !((1 << 5) | (1 << 6) | (1 << 7)); /// This mask eliminates the bits which are relevant for upper/lower case repres... [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `encrypt` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:8:8 [INFO] [stdout] | [INFO] [stdout] 8 | pub fn encrypt(input: &[u8], output: &mut [u8], key: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decrypt` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn decrypt(input: &[u8], output: &mut [u8], key: &str) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `perform_op` is never used [INFO] [stdout] --> src/encrypt/polyalphabet.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn perform_op(input: &[u8], output: &mut [u8], key: &str, result_fn: Box u8>) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `break_caesar` is never used [INFO] [stdout] --> src/break_encrypt/caesar.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn break_caesar(input: &str, expected: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `break_caesar_permuts_default` is never used [INFO] [stdout] --> src/break_encrypt/caesar.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn break_caesar_permuts_default(input: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `break_caesar_permuts` is never used [INFO] [stdout] --> src/break_encrypt/caesar.rs:42:8 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn break_caesar_permuts(input: &str, range: Range) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_nearest` is never used [INFO] [stdout] --> src/search/binary.rs:4:8 [INFO] [stdout] | [INFO] [stdout] 4 | pub fn search_nearest(container: &[usize], target: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `search_length_limited_nearest` is never used [INFO] [stdout] --> src/search/binary.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn search_length_limited_nearest(container: &[T], target: T, length: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `print_constants` is never used [INFO] [stdout] --> src/sudoku/mod.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn print_constants() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELDS` is never used [INFO] [stdout] --> src/sudoku/base.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const FIELDS: usize = 9; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROWS` is never used [INFO] [stdout] --> src/sudoku/base.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const ROWS: usize = 9; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COLUMNS` is never used [INFO] [stdout] --> src/sudoku/base.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const COLUMNS: usize = 9; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CELLS` is never used [INFO] [stdout] --> src/sudoku/base.rs:6:11 [INFO] [stdout] | [INFO] [stdout] 6 | pub const CELLS: usize = ROWS * COLUMNS; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELD_INDICES` is never used [INFO] [stdout] --> src/sudoku/base.rs:8:11 [INFO] [stdout] | [INFO] [stdout] 8 | pub const FIELD_INDICES: [[usize; 9]; 9] = { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `ROW_INDICES` is never used [INFO] [stdout] --> src/sudoku/base.rs:29:11 [INFO] [stdout] | [INFO] [stdout] 29 | pub const ROW_INDICES: [[usize; 9]; 9] = { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COLUMN_INDICES` is never used [INFO] [stdout] --> src/sudoku/base.rs:47:11 [INFO] [stdout] | [INFO] [stdout] 47 | pub const COLUMN_INDICES: [[usize; 9]; 9] = { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021 [INFO] [stdout] --> src/sudoku/mod.rs:17:39 [INFO] [stdout] | [INFO] [stdout] 17 | for (idx, field) in FIELD_INDICES.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 17 - for (idx, field) in FIELD_INDICES.into_iter().enumerate() { [INFO] [stdout] 17 + for (idx, field) in FIELD_INDICES.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 17 - for (idx, field) in FIELD_INDICES.into_iter().enumerate() { [INFO] [stdout] 17 + for (idx, field) in IntoIterator::into_iter(FIELD_INDICES).enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `column_by_cell` is never used [INFO] [stdout] --> src/sudoku/base.rs:66:14 [INFO] [stdout] | [INFO] [stdout] 66 | pub const fn column_by_cell(cell: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `row_by_cell` is never used [INFO] [stdout] --> src/sudoku/base.rs:71:14 [INFO] [stdout] | [INFO] [stdout] 71 | pub const fn row_by_cell(cell: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `field_by_cell` is never used [INFO] [stdout] --> src/sudoku/base.rs:76:14 [INFO] [stdout] | [INFO] [stdout] 76 | pub const fn field_by_cell(cell: usize) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SudokuBase` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:82:12 [INFO] [stdout] | [INFO] [stdout] 82 | pub struct SudokuBase { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/sudoku/base.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 89 | impl SudokuBase { [INFO] [stdout] | --------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 92 | pub fn new(board: &[u8; CELLS]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `META_ARRAY_LEN` is never used [INFO] [stdout] --> src/sudoku/base.rs:146:7 [INFO] [stdout] | [INFO] [stdout] 146 | const META_ARRAY_LEN: usize = 9_usize.div_ceil(2 * size_of::() / size_of::()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MetaArray` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:149:12 [INFO] [stdout] | [INFO] [stdout] 149 | pub struct MetaArray([u64; META_ARRAY_LEN]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MetaArray` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `BASE`, `has_specified`, `get_possibility`, and `set_possibility` are never used [INFO] [stdout] --> src/sudoku/base.rs:153:11 [INFO] [stdout] | [INFO] [stdout] 151 | impl MetaArray { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] 152 | [INFO] [stdout] 153 | const BASE: u64 = (1 << 4) - 1; [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 156 | pub fn has_specified(&self, num: usize) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub fn get_possibility(&self, num: usize) -> u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | pub const fn set_possibility(&mut self, num: usize, val: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CellArray` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:177:12 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct CellArray([Cell; CELLS]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get`, and `get_mut` are never used [INFO] [stdout] --> src/sudoku/base.rs:182:14 [INFO] [stdout] | [INFO] [stdout] 179 | impl CellArray { [INFO] [stdout] | -------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 182 | const fn new(board: &[u8; CELLS]) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 229 | pub const fn get(&self, idx: u8) -> Cell { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 234 | pub const fn get_mut(&mut self, idx: u8) -> &mut Cell { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Cell` is never constructed [INFO] [stdout] --> src/sudoku/base.rs:241:12 [INFO] [stdout] | [INFO] [stdout] 241 | pub struct Cell(u16); [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Cell` has a derived impl for the trait `Clone`, 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/sudoku/base.rs:245:11 [INFO] [stdout] | [INFO] [stdout] 243 | impl Cell { [INFO] [stdout] | --------- associated items in this implementation [INFO] [stdout] 244 | [INFO] [stdout] 245 | const ANY: u16 = ((1 << 10) - 1) & !1; [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 248 | const fn new_val(num: u8) -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 253 | const fn new_maybe(maybe: u16) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 258 | pub const fn possible_vals_set(self) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 263 | pub const fn possible_vals(self) -> PossibleValsIter { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 268 | pub const fn may_be(self, val: u8) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 273 | pub const fn set_impossible(&mut self, val: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 278 | pub const fn set_val(&mut self, val: u8) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub const fn get_val(self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 291 | pub const fn has_val(self) -> bool { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_impossible` is never used [INFO] [stdout] --> src/sudoku/solver.rs:3:4 [INFO] [stdout] | [INFO] [stdout] 3 | fn set_impossible(base: &mut SudokuBase, cell: usize, val: usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `set_cell_val` is never used [INFO] [stdout] --> src/sudoku/solver.rs:34:4 [INFO] [stdout] | [INFO] [stdout] 34 | fn set_cell_val(base: &mut SudokuBase, cell: usize, final_val: usize) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `solve` is never used [INFO] [stdout] --> src/sudoku/solver.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn solve(board: &mut [u8; CELLS]) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `EXPECTED` is never used [INFO] [stdout] --> src/sudoku/verifier.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | const EXPECTED: usize = ((1 << 10) - 1) & !1; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify` is never used [INFO] [stdout] --> src/sudoku/verifier.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn verify(grid: &[u8; CELLS]) -> bool { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CORRECT` is never used [INFO] [stdout] --> src/sudoku/verifier.rs:41:11 [INFO] [stdout] | [INFO] [stdout] 41 | const CORRECT: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INCORRECT` is never used [INFO] [stdout] --> src/sudoku/verifier.rs:53:11 [INFO] [stdout] | [INFO] [stdout] 53 | const INCORRECT: &[u8; 81] = &[ [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_seed`, and `gen_u64` are never used [INFO] [stdout] --> src/rng/mod.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub trait Rng { [INFO] [stdout] | --- associated items in this trait [INFO] [stdout] 6 | [INFO] [stdout] 7 | fn new() -> Self; [INFO] [stdout] | ^^^ [INFO] [stdout] 8 | [INFO] [stdout] 9 | fn with_seed(seed: u64) -> Self; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 10 | [INFO] [stdout] 11 | fn gen_u64(&mut self) -> u64; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hash/h1.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl H1 { [INFO] [stdout] | ------- associated function in this implementation [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub const fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_u64` is never used [INFO] [stdout] --> src/hash/h1.rs:84:4 [INFO] [stdout] | [INFO] [stdout] 84 | fn rotate_u64(val: u64, by: usize) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/hash/h2.rs:11:18 [INFO] [stdout] | [INFO] [stdout] 9 | impl H2 { [INFO] [stdout] | ------- associated function in this implementation [INFO] [stdout] 10 | [INFO] [stdout] 11 | pub const fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MIX` is never used [INFO] [stdout] --> src/hash/h2.rs:35:7 [INFO] [stdout] | [INFO] [stdout] 35 | const MIX: u64 = 0b01010101011001010100101010101100111100101000100101011000101001011; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `rotate_u64` is never used [INFO] [stdout] --> src/hash/h2.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn rotate_u64(val: u64, by: usize) -> u64 { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_entries` is never used [INFO] [stdout] --> src/compression/huffman.rs:79:4 [INFO] [stdout] | [INFO] [stdout] 79 | fn build_entries(table: &mut HashMap, node: &CodeNode, curr_word: &mut BitStream) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pop_bit` is never used [INFO] [stdout] --> src/compression/huffman.rs:211:8 [INFO] [stdout] | [INFO] [stdout] 135 | impl BitStream { [INFO] [stdout] | -------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 211 | fn pop_bit(&mut self) -> Option { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_primes` is never used [INFO] [stdout] --> src/prime_finder.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn find_primes(until: u128) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_prime` is never used [INFO] [stdout] --> src/prime_finder.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn is_prime(val: u128) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sqrt_newton` is never used [INFO] [stdout] --> src/prime_finder.rs:46:4 [INFO] [stdout] | [INFO] [stdout] 46 | fn sqrt_newton(n: u128) -> u128 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021 [INFO] [stdout] --> src/main.rs:165:31 [INFO] [stdout] | [INFO] [stdout] 165 | for (dups, cases) in dups.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(array_into_iter)]` on by default [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 165 - for (dups, cases) in dups.into_iter().enumerate() { [INFO] [stdout] 165 + for (dups, cases) in dups.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 165 - for (dups, cases) in dups.into_iter().enumerate() { [INFO] [stdout] 165 + for (dups, cases) in IntoIterator::into_iter(dups).enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method call resolves to `<&[T; N] as IntoIterator>::into_iter` (due to backwards compatibility), but will resolve to `<[T; N] as IntoIterator>::into_iter` in Rust 2021 [INFO] [stdout] --> src/sudoku/mod.rs:17:39 [INFO] [stdout] | [INFO] [stdout] 17 | for (idx, field) in FIELD_INDICES.into_iter().enumerate() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: use `.iter()` instead of `.into_iter()` to avoid ambiguity [INFO] [stdout] | [INFO] [stdout] 17 - for (idx, field) in FIELD_INDICES.into_iter().enumerate() { [INFO] [stdout] 17 + for (idx, field) in FIELD_INDICES.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] help: or use `IntoIterator::into_iter(..)` instead of `.into_iter()` to explicitly iterate by value [INFO] [stdout] | [INFO] [stdout] 17 - for (idx, field) in FIELD_INDICES.into_iter().enumerate() { [INFO] [stdout] 17 + for (idx, field) in IntoIterator::into_iter(FIELD_INDICES).enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.40s [INFO] running `Command { std: "docker" "inspect" "4beb93ebce983d299e74a3adaba685cd7c7156e34736849c9e1b1ce6fb0d72bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4beb93ebce983d299e74a3adaba685cd7c7156e34736849c9e1b1ce6fb0d72bb", kill_on_drop: false }` [INFO] [stdout] 4beb93ebce983d299e74a3adaba685cd7c7156e34736849c9e1b1ce6fb0d72bb