[INFO] updating cached repository cshaffer/advent_2017 [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/cshaffer/advent_2017 [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/cshaffer/advent_2017" "work/ex/clippy-test-run/sources/stable/gh/cshaffer/advent_2017"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/cshaffer/advent_2017'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/cshaffer/advent_2017" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cshaffer/advent_2017"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cshaffer/advent_2017'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 96ccf7be81dc5a12d7600d765701091585a7f090 [INFO] sha for GitHub repo cshaffer/advent_2017: 96ccf7be81dc5a12d7600d765701091585a7f090 [INFO] validating manifest of cshaffer/advent_2017 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of cshaffer/advent_2017 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing cshaffer/advent_2017 [INFO] finished frobbing cshaffer/advent_2017 [INFO] frobbed toml for cshaffer/advent_2017 written to work/ex/clippy-test-run/sources/stable/gh/cshaffer/advent_2017/Cargo.toml [INFO] started frobbing cshaffer/advent_2017 [INFO] finished frobbing cshaffer/advent_2017 [INFO] frobbed toml for cshaffer/advent_2017 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cshaffer/advent_2017/Cargo.toml [INFO] crate cshaffer/advent_2017 has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting cshaffer/advent_2017 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/cshaffer/advent_2017:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] f0ac8b43bcd8e5ddfc9c9701a6ade6b9bd13ff0447f19e6e4e09811eb0d451bf [INFO] running `"docker" "start" "-a" "f0ac8b43bcd8e5ddfc9c9701a6ade6b9bd13ff0447f19e6e4e09811eb0d451bf"` [INFO] [stderr] Checking advent_2017 v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/passphrase.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | s [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/passphrase.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | let s = String::from_iter(chars); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/realloc.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | return memory [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `memory` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/spiral_memory.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | distance [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/spiral_memory.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | let distance = (x.abs() + y.abs()) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/passphrase.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 14 | s [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/passphrase.rs:13:13 [INFO] [stderr] | [INFO] [stderr] 13 | let s = String::from_iter(chars); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/realloc.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | return memory [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `memory` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/spiral_memory.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | distance [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/spiral_memory.rs:5:20 [INFO] [stderr] | [INFO] [stderr] 5 | let distance = (x.abs() + y.abs()) as u32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: function is never used: `checksum` [INFO] [stderr] --> src/checksum.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn checksum(numbers: Vec>, pair_finder: fn(Vec) -> (u32, u32), pair_transformation: fn(u32, u32) -> u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `divisible` [INFO] [stderr] --> src/checksum.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | fn divisible(first: u32, second: u32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `divisible_values` [INFO] [stderr] --> src/checksum.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn divisible_values(row: Vec) -> (u32, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `extreme_values` [INFO] [stderr] --> src/checksum.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn extreme_values(row: Vec) -> (u32, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `quotient` [INFO] [stderr] --> src/checksum.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn quotient(first: u32, second: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `difference` [INFO] [stderr] --> src/checksum.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn difference(first: u32, second: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_one_line` [INFO] [stderr] --> src/io.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn read_one_line() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_int_arrays_from_file` [INFO] [stderr] --> src/io.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn read_int_arrays_from_file(path: String) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_string_arrays_from_file` [INFO] [stderr] --> src/io.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn read_string_arrays_from_file(path: String) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_string_lines_from_file` [INFO] [stderr] --> src/io.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn read_string_lines_from_file(path: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_int_array_from_file` [INFO] [stderr] --> src/io.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn read_int_array_from_file(path: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `inverse_captcha` [INFO] [stderr] --> src/inverse_captcha.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn inverse_captcha(digits: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sum_of_matching_offset_digits` [INFO] [stderr] --> src/inverse_captcha.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | fn sum_of_matching_offset_digits(v: &Vec, offset_function: fn(&Vec) -> usize) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_string_of_digits` [INFO] [stderr] --> src/inverse_captcha.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | fn parse_string_of_digits(input: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `just_one` [INFO] [stderr] --> src/inverse_captcha.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | fn just_one(_: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `length_over_two` [INFO] [stderr] --> src/inverse_captcha.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | fn length_over_two(vector: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `valid_count` [INFO] [stderr] --> src/passphrase.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn valid_count(phrases: Vec>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sort_word` [INFO] [stderr] --> src/passphrase.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | fn sort_word(word: &String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `valid_passphrase` [INFO] [stderr] --> src/passphrase.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | fn valid_passphrase(phrase: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `construct_tower` [INFO] [stderr] --> src/tower.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn construct_tower(input: Vec) -> (HashMap, HashMap, HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_weight` [INFO] [stderr] --> src/tower.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | fn parse_weight(text: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_weight_at_node` [INFO] [stderr] --> src/tower.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn find_weight_at_node(tower: HashMap>, weights: HashMap, node: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_node_weights` [INFO] [stderr] --> src/tower.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn print_node_weights(tower: HashMap>, weights: HashMap, root: String) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_root_of_tower` [INFO] [stderr] --> src/tower.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn find_root_of_tower(tower: HashMap) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `realloc` [INFO] [stderr] --> src/realloc.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn realloc(memory: Vec) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `redistribute` [INFO] [stderr] --> src/realloc.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | fn redistribute(memory: Vec, blocks: u32, next_index: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_index_of_max_value` [INFO] [stderr] --> src/realloc.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | fn find_index_of_max_value(memory: Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `manhattan_distance` [INFO] [stderr] --> src/spiral_memory.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn manhattan_distance(destination: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `travel_spiral` [INFO] [stderr] --> src/spiral_memory.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | fn travel_spiral(destination: u32) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `spiral_sum` [INFO] [stderr] --> src/spiral_memory.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn spiral_sum(input: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_comparison` [INFO] [stderr] --> src/registers.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | fn parse_comparison(operator: String) -> (fn(&i32, &i32) -> bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_operator` [INFO] [stderr] --> src/registers.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | fn parse_operator(operator: String) -> (fn(i32, i32) -> i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `run_instructions` [INFO] [stderr] --> src/registers.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn run_instructions(input: Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_largest_value` [INFO] [stderr] --> src/registers.rs:59:1 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn find_largest_value(registers: HashMap) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `count_garbage` [INFO] [stderr] --> src/stream.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn count_garbage(stream: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `hash` [INFO] [stderr] --> src/knot.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn hash(lengths_string: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `reverse_sublist` [INFO] [stderr] --> src/knot.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | fn reverse_sublist(list: Vec, index: usize, size: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `inverse_captcha_main` [INFO] [stderr] --> src/main.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | fn inverse_captcha_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `checksum_main` [INFO] [stderr] --> src/main.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | fn checksum_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `spiral_memory_main` [INFO] [stderr] --> src/main.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | fn spiral_memory_main(input: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `passphrase_main` [INFO] [stderr] --> src/main.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | fn passphrase_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `realloc_main` [INFO] [stderr] --> src/main.rs:41:1 [INFO] [stderr] | [INFO] [stderr] 41 | fn realloc_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tower_main` [INFO] [stderr] --> src/main.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | fn tower_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `registers_main` [INFO] [stderr] --> src/main.rs:54:1 [INFO] [stderr] | [INFO] [stderr] 54 | fn registers_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `stream_main` [INFO] [stderr] --> src/main.rs:61:1 [INFO] [stderr] | [INFO] [stderr] 61 | fn stream_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `knot_main` [INFO] [stderr] --> src/main.rs:66:1 [INFO] [stderr] | [INFO] [stderr] 66 | fn knot_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/io.rs:27:61 [INFO] [stderr] | [INFO] [stderr] 27 | contents.lines().map(|line| line.split_whitespace().map(|w| String::from(w)).collect()).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/io.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | contents.lines().map(|line| String::from(line)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/inverse_captcha.rs:5:37 [INFO] [stderr] | [INFO] [stderr] 5 | fn sum_of_matching_offset_digits(v: &Vec, offset_function: fn(&Vec) -> usize) -> u32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u32]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/inverse_captcha.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | fn just_one(_: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[A]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/inverse_captcha.rs:30:31 [INFO] [stderr] | [INFO] [stderr] 30 | fn length_over_two(vector: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[A]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/jump.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | i = i + jump; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `i += jump` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/passphrase.rs:10:20 [INFO] [stderr] | [INFO] [stderr] 10 | fn sort_word(word: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/passphrase.rs:17:29 [INFO] [stderr] | [INFO] [stderr] 17 | fn valid_passphrase(phrase: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/tower.rs:5:47 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn construct_tower(input: Vec) -> (HashMap, HashMap, HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/tower.rs:9:86 [INFO] [stderr] | [INFO] [stderr] 9 | let definitions:Vec> = input.iter().map(|s| s.split_whitespace().map(|x| String::from(x)).collect()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/tower.rs:15:58 [INFO] [stderr] | [INFO] [stderr] 15 | let name = def[i].clone().split(",").map(|x| String::from(x)).collect::>()[0].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/tower.rs:15:49 [INFO] [stderr] | [INFO] [stderr] 15 | let name = def[i].clone().split(",").map(|x| String::from(x)).collect::>()[0].clone(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:36:22 [INFO] [stderr] | [INFO] [stderr] 36 | let own_weight = weights.get(&node).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&weights[&node]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:38:11 [INFO] [stderr] | [INFO] [stderr] 38 | (*tower.get(&node).unwrap()).clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tower[&node]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tower.rs:42:8 [INFO] [stderr] | [INFO] [stderr] 42 | if children.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!children.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:54:34 [INFO] [stderr] | [INFO] [stderr] 54 | let children:Vec = (*tower.get(&root).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tower[&root]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:56:47 [INFO] [stderr] | [INFO] [stderr] 56 | println!("Child: {} ({}): {}", child, weights.get(&child).unwrap(), find_weight_at_node(tower.clone(), weights.clone(), child.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&weights[&child]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:70:23 [INFO] [stderr] | [INFO] [stderr] 70 | current = tower.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tower[¤t]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/realloc.rs:26:20 [INFO] [stderr] | [INFO] [stderr] 26 | current_step - seen_states.get(&memory).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&seen_states[&memory]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | if operator == ">".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `">"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | } else if operator == "<".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `"<"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:8:27 [INFO] [stderr] | [INFO] [stderr] 8 | } else if operator == "==".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `"=="` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | } else if operator == ">=".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `">="` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:12:27 [INFO] [stderr] | [INFO] [stderr] 12 | } else if operator == "<=".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `"<="` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:20:20 [INFO] [stderr] | [INFO] [stderr] 20 | if operator == "inc".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `"inc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/registers.rs:28:87 [INFO] [stderr] | [INFO] [stderr] 28 | let instructions:Vec> = input.iter().map(|s| s.split_whitespace().map(|x| String::from(x)).collect()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/registers.rs:36:14 [INFO] [stderr] | [INFO] [stderr] 36 | *registers.get(®ister).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®isters[®ister]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/registers.rs:42:14 [INFO] [stderr] | [INFO] [stderr] 42 | *registers.get(&conditional_register).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®isters[&conditional_register]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/registers.rs:62:12 [INFO] [stderr] | [INFO] [stderr] 62 | if val > &max { [INFO] [stderr] | ^^^^^^---- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `max` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/knot.rs:24:33 [INFO] [stderr] | [INFO] [stderr] 24 | let mut reversed:Vec = list.iter().cycle().skip(index).take(size).map(|x| *x).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `list.iter().cycle().skip(index).take(size).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: function is never used: `checksum` [INFO] [stderr] --> src/checksum.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn checksum(numbers: Vec>, pair_finder: fn(Vec) -> (u32, u32), pair_transformation: fn(u32, u32) -> u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `divisible` [INFO] [stderr] --> src/checksum.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | fn divisible(first: u32, second: u32) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `divisible_values` [INFO] [stderr] --> src/checksum.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn divisible_values(row: Vec) -> (u32, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `extreme_values` [INFO] [stderr] --> src/checksum.rs:37:1 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn extreme_values(row: Vec) -> (u32, u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `quotient` [INFO] [stderr] --> src/checksum.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn quotient(first: u32, second: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `difference` [INFO] [stderr] --> src/checksum.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn difference(first: u32, second: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_one_line` [INFO] [stderr] --> src/io.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn read_one_line() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_int_arrays_from_file` [INFO] [stderr] --> src/io.rs:12:1 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn read_int_arrays_from_file(path: String) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_string_arrays_from_file` [INFO] [stderr] --> src/io.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn read_string_arrays_from_file(path: String) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_string_lines_from_file` [INFO] [stderr] --> src/io.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | pub fn read_string_lines_from_file(path: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `read_int_array_from_file` [INFO] [stderr] --> src/io.rs:48:1 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn read_int_array_from_file(path: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `inverse_captcha` [INFO] [stderr] --> src/inverse_captcha.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn inverse_captcha(digits: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sum_of_matching_offset_digits` [INFO] [stderr] --> src/inverse_captcha.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | fn sum_of_matching_offset_digits(v: &Vec, offset_function: fn(&Vec) -> usize) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_string_of_digits` [INFO] [stderr] --> src/inverse_captcha.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | fn parse_string_of_digits(input: String) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `just_one` [INFO] [stderr] --> src/inverse_captcha.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | fn just_one(_: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `length_over_two` [INFO] [stderr] --> src/inverse_captcha.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | fn length_over_two(vector: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `valid_count` [INFO] [stderr] --> src/passphrase.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn valid_count(phrases: Vec>) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sort_word` [INFO] [stderr] --> src/passphrase.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | fn sort_word(word: &String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `valid_passphrase` [INFO] [stderr] --> src/passphrase.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | fn valid_passphrase(phrase: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `construct_tower` [INFO] [stderr] --> src/tower.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn construct_tower(input: Vec) -> (HashMap, HashMap, HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_weight` [INFO] [stderr] --> src/tower.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | fn parse_weight(text: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_weight_at_node` [INFO] [stderr] --> src/tower.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn find_weight_at_node(tower: HashMap>, weights: HashMap, node: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `print_node_weights` [INFO] [stderr] --> src/tower.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn print_node_weights(tower: HashMap>, weights: HashMap, root: String) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_root_of_tower` [INFO] [stderr] --> src/tower.rs:63:1 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn find_root_of_tower(tower: HashMap) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `realloc` [INFO] [stderr] --> src/realloc.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn realloc(memory: Vec) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `redistribute` [INFO] [stderr] --> src/realloc.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | fn redistribute(memory: Vec, blocks: u32, next_index: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_index_of_max_value` [INFO] [stderr] --> src/realloc.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | fn find_index_of_max_value(memory: Vec) -> usize { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `manhattan_distance` [INFO] [stderr] --> src/spiral_memory.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub fn manhattan_distance(destination: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `travel_spiral` [INFO] [stderr] --> src/spiral_memory.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | fn travel_spiral(destination: u32) -> (i32, i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `spiral_sum` [INFO] [stderr] --> src/spiral_memory.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn spiral_sum(input: u32) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_comparison` [INFO] [stderr] --> src/registers.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | fn parse_comparison(operator: String) -> (fn(&i32, &i32) -> bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `parse_operator` [INFO] [stderr] --> src/registers.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | fn parse_operator(operator: String) -> (fn(i32, i32) -> i32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `run_instructions` [INFO] [stderr] --> src/registers.rs:27:1 [INFO] [stderr] | [INFO] [stderr] 27 | pub fn run_instructions(input: Vec) -> HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `find_largest_value` [INFO] [stderr] --> src/registers.rs:59:1 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn find_largest_value(registers: HashMap) -> i32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `count_garbage` [INFO] [stderr] --> src/stream.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn count_garbage(stream: String) -> u32 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `hash` [INFO] [stderr] --> src/knot.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub fn hash(lengths_string: String) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `reverse_sublist` [INFO] [stderr] --> src/knot.rs:23:1 [INFO] [stderr] | [INFO] [stderr] 23 | fn reverse_sublist(list: Vec, index: usize, size: usize) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `inverse_captcha_main` [INFO] [stderr] --> src/main.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | fn inverse_captcha_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `checksum_main` [INFO] [stderr] --> src/main.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | fn checksum_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `spiral_memory_main` [INFO] [stderr] --> src/main.rs:24:1 [INFO] [stderr] | [INFO] [stderr] 24 | fn spiral_memory_main(input: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `passphrase_main` [INFO] [stderr] --> src/main.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | fn passphrase_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `realloc_main` [INFO] [stderr] --> src/main.rs:41:1 [INFO] [stderr] | [INFO] [stderr] 41 | fn realloc_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `tower_main` [INFO] [stderr] --> src/main.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | fn tower_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `registers_main` [INFO] [stderr] --> src/main.rs:54:1 [INFO] [stderr] | [INFO] [stderr] 54 | fn registers_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `stream_main` [INFO] [stderr] --> src/main.rs:61:1 [INFO] [stderr] | [INFO] [stderr] 61 | fn stream_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `knot_main` [INFO] [stderr] --> src/main.rs:66:1 [INFO] [stderr] | [INFO] [stderr] 66 | fn knot_main() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/io.rs:27:61 [INFO] [stderr] | [INFO] [stderr] 27 | contents.lines().map(|line| line.split_whitespace().map(|w| String::from(w)).collect()).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/io.rs:45:26 [INFO] [stderr] | [INFO] [stderr] 45 | contents.lines().map(|line| String::from(line)).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/inverse_captcha.rs:5:37 [INFO] [stderr] | [INFO] [stderr] 5 | fn sum_of_matching_offset_digits(v: &Vec, offset_function: fn(&Vec) -> usize) -> u32 { [INFO] [stderr] | ^^^^^^^^^ help: change this to: `&[u32]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/inverse_captcha.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | fn just_one(_: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[A]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/inverse_captcha.rs:30:31 [INFO] [stderr] | [INFO] [stderr] 30 | fn length_over_two(vector: &Vec) -> usize { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[A]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/jump.rs:12:9 [INFO] [stderr] | [INFO] [stderr] 12 | i = i + jump; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `i += jump` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/passphrase.rs:10:20 [INFO] [stderr] | [INFO] [stderr] 10 | fn sort_word(word: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/passphrase.rs:17:29 [INFO] [stderr] | [INFO] [stderr] 17 | fn valid_passphrase(phrase: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/tower.rs:5:47 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn construct_tower(input: Vec) -> (HashMap, HashMap, HashMap>) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/tower.rs:9:86 [INFO] [stderr] | [INFO] [stderr] 9 | let definitions:Vec> = input.iter().map(|s| s.split_whitespace().map(|x| String::from(x)).collect()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/tower.rs:15:58 [INFO] [stderr] | [INFO] [stderr] 15 | let name = def[i].clone().split(",").map(|x| String::from(x)).collect::>()[0].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/tower.rs:15:49 [INFO] [stderr] | [INFO] [stderr] 15 | let name = def[i].clone().split(",").map(|x| String::from(x)).collect::>()[0].clone(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:36:22 [INFO] [stderr] | [INFO] [stderr] 36 | let own_weight = weights.get(&node).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&weights[&node]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:38:11 [INFO] [stderr] | [INFO] [stderr] 38 | (*tower.get(&node).unwrap()).clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tower[&node]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/tower.rs:42:8 [INFO] [stderr] | [INFO] [stderr] 42 | if children.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!children.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:54:34 [INFO] [stderr] | [INFO] [stderr] 54 | let children:Vec = (*tower.get(&root).unwrap()).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tower[&root]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:56:47 [INFO] [stderr] | [INFO] [stderr] 56 | println!("Child: {} ({}): {}", child, weights.get(&child).unwrap(), find_weight_at_node(tower.clone(), weights.clone(), child.clone())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&weights[&child]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tower.rs:70:23 [INFO] [stderr] | [INFO] [stderr] 70 | current = tower.get(¤t).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&tower[¤t]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/realloc.rs:26:20 [INFO] [stderr] | [INFO] [stderr] 26 | current_step - seen_states.get(&memory).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&seen_states[&memory]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | if operator == ">".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `">"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:6:27 [INFO] [stderr] | [INFO] [stderr] 6 | } else if operator == "<".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `"<"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:8:27 [INFO] [stderr] | [INFO] [stderr] 8 | } else if operator == "==".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `"=="` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:10:27 [INFO] [stderr] | [INFO] [stderr] 10 | } else if operator == ">=".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `">="` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:12:27 [INFO] [stderr] | [INFO] [stderr] 12 | } else if operator == "<=".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `"<="` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/registers.rs:20:20 [INFO] [stderr] | [INFO] [stderr] 20 | if operator == "inc".to_string() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `"inc"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/registers.rs:28:87 [INFO] [stderr] | [INFO] [stderr] 28 | let instructions:Vec> = input.iter().map(|s| s.split_whitespace().map(|x| String::from(x)).collect()).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/registers.rs:36:14 [INFO] [stderr] | [INFO] [stderr] 36 | *registers.get(®ister).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®isters[®ister]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/registers.rs:42:14 [INFO] [stderr] | [INFO] [stderr] 42 | *registers.get(&conditional_register).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `®isters[&conditional_register]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/registers.rs:62:12 [INFO] [stderr] | [INFO] [stderr] 62 | if val > &max { [INFO] [stderr] | ^^^^^^---- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `max` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/knot.rs:24:33 [INFO] [stderr] | [INFO] [stderr] 24 | let mut reversed:Vec = list.iter().cycle().skip(index).take(size).map(|x| *x).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `list.iter().cycle().skip(index).take(size).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.14s [INFO] running `"docker" "inspect" "f0ac8b43bcd8e5ddfc9c9701a6ade6b9bd13ff0447f19e6e4e09811eb0d451bf"` [INFO] running `"docker" "rm" "-f" "f0ac8b43bcd8e5ddfc9c9701a6ade6b9bd13ff0447f19e6e4e09811eb0d451bf"` [INFO] [stdout] f0ac8b43bcd8e5ddfc9c9701a6ade6b9bd13ff0447f19e6e4e09811eb0d451bf