[INFO] updating cached repository ImMax/linker [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/ImMax/linker [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/ImMax/linker" "work/ex/clippy-test-run/sources/stable/gh/ImMax/linker"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/ImMax/linker'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/ImMax/linker" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ImMax/linker"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ImMax/linker'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] bf6cc2cd28fdebc2b7a0d526392244973bacb5a1 [INFO] sha for GitHub repo ImMax/linker: bf6cc2cd28fdebc2b7a0d526392244973bacb5a1 [INFO] validating manifest of ImMax/linker 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 ImMax/linker 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 ImMax/linker [INFO] finished frobbing ImMax/linker [INFO] frobbed toml for ImMax/linker written to work/ex/clippy-test-run/sources/stable/gh/ImMax/linker/Cargo.toml [INFO] started frobbing ImMax/linker [INFO] finished frobbing ImMax/linker [INFO] frobbed toml for ImMax/linker written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ImMax/linker/Cargo.toml [INFO] crate ImMax/linker 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 ImMax/linker against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/ImMax/linker:/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 -Dclippy::into_iter_on_array" "-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] 741773772f82831f7676a0cb8f56e6151dc6e7afe010f208172952bf507c8f7f [INFO] running `"docker" "start" "-a" "741773772f82831f7676a0cb8f56e6151dc6e7afe010f208172952bf507c8f7f"` [INFO] [stderr] Checking linker v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `super::obj_file::*` [INFO] [stderr] --> src/parser.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use super::obj_file::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:10:22 [INFO] [stderr] | [INFO] [stderr] 10 | pub const SEGMENTS: &'static str = "- segments -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:11:21 [INFO] [stderr] | [INFO] [stderr] 11 | pub const SYMBOLS: &'static str = "- symbols -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:12:18 [INFO] [stderr] | [INFO] [stderr] 12 | pub const RELS: &'static str = "- rels -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | pub const DATA: &'static str = "- data -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | return to_file_map(&lines).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `to_file_map(&lines).clone()` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | return file_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `file_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / return Segment { [INFO] [stderr] 69 | | name: x.next().unwrap().to_string(), [INFO] [stderr] 70 | | address: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 71 | | length: i64::from_str_radix(x.next().unwrap(), 16).unwrap(), [INFO] [stderr] 72 | | code: x.next().unwrap().to_string() [INFO] [stderr] 73 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 68 | Segment { [INFO] [stderr] 69 | name: x.next().unwrap().to_string(), [INFO] [stderr] 70 | address: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 71 | length: i64::from_str_radix(x.next().unwrap(), 16).unwrap(), [INFO] [stderr] 72 | code: x.next().unwrap().to_string() [INFO] [stderr] 73 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / return Symbol { [INFO] [stderr] 79 | | name: x.next().unwrap().to_string(), [INFO] [stderr] 80 | | value: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 81 | | seg: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 82 | | sym_type: x.next().unwrap().to_string(), [INFO] [stderr] 83 | | module: m [INFO] [stderr] 84 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 78 | Symbol { [INFO] [stderr] 79 | name: x.next().unwrap().to_string(), [INFO] [stderr] 80 | value: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 81 | seg: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 82 | sym_type: x.next().unwrap().to_string(), [INFO] [stderr] 83 | module: m [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | return lines.into_iter().map(|line| str_to_segment(line.as_str())).map(|s| (s.name.clone(), s)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `lines.into_iter().map(|line| str_to_segment(line.as_str())).map(|s| (s.name.clone(), s)).collect()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / return lines.into_iter().map( |line| str_to_symbol(line.as_str(), module) ) [INFO] [stderr] 93 | | .map( |s| (s.name.clone(), s) ).collect(); [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 92 | lines.into_iter().map( |line| str_to_symbol(line.as_str(), module) ) [INFO] [stderr] 93 | .map( |s| (s.name.clone(), s) ).collect() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/obj_file.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | return ObjectFile {segments, symbols}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ObjectFile {segments, symbols}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/obj_file.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | return ObjectFile { segments: comb_segs, symbols: comb_symbs }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ObjectFile { segments: comb_segs, symbols: comb_symbs }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/obj_file.rs:65:16 [INFO] [stderr] | [INFO] [stderr] 65 | if (sym.sym_type == "*ABS*") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/segment.rs:3:22 [INFO] [stderr] | [INFO] [stderr] 3 | pub const TEXT_SEG: &'static str = ".text"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/segment.rs:4:22 [INFO] [stderr] | [INFO] [stderr] 4 | pub const DATA_SEG: &'static str = ".data"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/segment.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | pub const BSS_SEG: &'static str = ".bss"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/segment.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | return Segment {name, address, length, code}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Segment {name, address, length, code}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MAGIC_LINE` [INFO] [stderr] --> src/parser.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | const MAGIC_LINE: usize = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ENTRIES_LINE` [INFO] [stderr] --> src/parser.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const ENTRIES_LINE: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NSEGS_ENTRY` [INFO] [stderr] --> src/parser.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | const NSEGS_ENTRY: usize = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NSYMS_ENTRY` [INFO] [stderr] --> src/parser.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | const NSYMS_ENTRY: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NRELS_ENTRY` [INFO] [stderr] --> src/parser.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | const NRELS_ENTRY: usize = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/parser.rs:92:18 [INFO] [stderr] | [INFO] [stderr] 92 | return lines.into_iter().map( |line| str_to_symbol(line.as_str(), module) ) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/parser.rs:96:39 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/parser.rs:96:79 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/obj_file.rs:20:54 [INFO] [stderr] | [INFO] [stderr] 20 | let mut segments = parser::lines_to_segments(file_map.get(SEGMENTS).unwrap().to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&file_map[SEGMENTS]` [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/obj_file.rs:21:25 [INFO] [stderr] | [INFO] [stderr] 21 | let sym_lines = file_map.get(SYMBOLS).unwrap().to_vec(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&file_map[SYMBOLS]` [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: you seem to want to iterate on a map's values [INFO] [stderr] --> src/obj_file.rs:63:25 [INFO] [stderr] | [INFO] [stderr] 63 | for (_, sym) in &self.symbols { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 63 | for sym in self.symbols.values() { [INFO] [stderr] | ^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `super::obj_file::*` [INFO] [stderr] --> src/parser.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use super::obj_file::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:10:22 [INFO] [stderr] | [INFO] [stderr] 10 | pub const SEGMENTS: &'static str = "- segments -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:11:21 [INFO] [stderr] | [INFO] [stderr] 11 | pub const SYMBOLS: &'static str = "- symbols -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:12:18 [INFO] [stderr] | [INFO] [stderr] 12 | pub const RELS: &'static str = "- rels -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/parser.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | pub const DATA: &'static str = "- data -"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | return to_file_map(&lines).clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `to_file_map(&lines).clone()` [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: unneeded return statement [INFO] [stderr] --> src/parser.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | return file_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `file_map` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / return Segment { [INFO] [stderr] 69 | | name: x.next().unwrap().to_string(), [INFO] [stderr] 70 | | address: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 71 | | length: i64::from_str_radix(x.next().unwrap(), 16).unwrap(), [INFO] [stderr] 72 | | code: x.next().unwrap().to_string() [INFO] [stderr] 73 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 68 | Segment { [INFO] [stderr] 69 | name: x.next().unwrap().to_string(), [INFO] [stderr] 70 | address: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 71 | length: i64::from_str_radix(x.next().unwrap(), 16).unwrap(), [INFO] [stderr] 72 | code: x.next().unwrap().to_string() [INFO] [stderr] 73 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:78:5 [INFO] [stderr] | [INFO] [stderr] 78 | / return Symbol { [INFO] [stderr] 79 | | name: x.next().unwrap().to_string(), [INFO] [stderr] 80 | | value: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 81 | | seg: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 82 | | sym_type: x.next().unwrap().to_string(), [INFO] [stderr] 83 | | module: m [INFO] [stderr] 84 | | }; [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 78 | Symbol { [INFO] [stderr] 79 | name: x.next().unwrap().to_string(), [INFO] [stderr] 80 | value: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 81 | seg: x.next().unwrap().parse::().unwrap(), [INFO] [stderr] 82 | sym_type: x.next().unwrap().to_string(), [INFO] [stderr] 83 | module: m [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | return lines.into_iter().map(|line| str_to_segment(line.as_str())).map(|s| (s.name.clone(), s)).collect(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `lines.into_iter().map(|line| str_to_segment(line.as_str())).map(|s| (s.name.clone(), s)).collect()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/parser.rs:92:5 [INFO] [stderr] | [INFO] [stderr] 92 | / return lines.into_iter().map( |line| str_to_symbol(line.as_str(), module) ) [INFO] [stderr] 93 | | .map( |s| (s.name.clone(), s) ).collect(); [INFO] [stderr] | |______________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 92 | lines.into_iter().map( |line| str_to_symbol(line.as_str(), module) ) [INFO] [stderr] 93 | .map( |s| (s.name.clone(), s) ).collect() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/obj_file.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | return ObjectFile {segments, symbols}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ObjectFile {segments, symbols}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/obj_file.rs:49:9 [INFO] [stderr] | [INFO] [stderr] 49 | return ObjectFile { segments: comb_segs, symbols: comb_symbs }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ObjectFile { segments: comb_segs, symbols: comb_symbs }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/obj_file.rs:65:16 [INFO] [stderr] | [INFO] [stderr] 65 | if (sym.sym_type == "*ABS*") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/segment.rs:3:22 [INFO] [stderr] | [INFO] [stderr] 3 | pub const TEXT_SEG: &'static str = ".text"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/segment.rs:4:22 [INFO] [stderr] | [INFO] [stderr] 4 | pub const DATA_SEG: &'static str = ".data"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/segment.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | pub const BSS_SEG: &'static str = ".bss"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/segment.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | return Segment {name, address, length, code}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Segment {name, address, length, code}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `MAGIC_LINE` [INFO] [stderr] --> src/parser.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | const MAGIC_LINE: usize = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `ENTRIES_LINE` [INFO] [stderr] --> src/parser.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | const ENTRIES_LINE: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NSEGS_ENTRY` [INFO] [stderr] --> src/parser.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | const NSEGS_ENTRY: usize = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NSYMS_ENTRY` [INFO] [stderr] --> src/parser.rs:19:1 [INFO] [stderr] | [INFO] [stderr] 19 | const NSYMS_ENTRY: usize = 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant item is never used: `NRELS_ENTRY` [INFO] [stderr] --> src/parser.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | const NRELS_ENTRY: usize = 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/parser.rs:92:18 [INFO] [stderr] | [INFO] [stderr] 92 | return lines.into_iter().map( |line| str_to_symbol(line.as_str(), module) ) [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/parser.rs:96:39 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/parser.rs:96:79 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 96 | pub fn do_common_blocks(symbols: &mut HashMap, segments: &mut HashMap) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/obj_file.rs:20:54 [INFO] [stderr] | [INFO] [stderr] 20 | let mut segments = parser::lines_to_segments(file_map.get(SEGMENTS).unwrap().to_vec()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&file_map[SEGMENTS]` [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/obj_file.rs:21:25 [INFO] [stderr] | [INFO] [stderr] 21 | let sym_lines = file_map.get(SYMBOLS).unwrap().to_vec(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&file_map[SYMBOLS]` [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: you seem to want to iterate on a map's values [INFO] [stderr] --> src/obj_file.rs:63:25 [INFO] [stderr] | [INFO] [stderr] 63 | for (_, sym) in &self.symbols { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 63 | for sym in self.symbols.values() { [INFO] [stderr] | ^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.87s [INFO] running `"docker" "inspect" "741773772f82831f7676a0cb8f56e6151dc6e7afe010f208172952bf507c8f7f"` [INFO] running `"docker" "rm" "-f" "741773772f82831f7676a0cb8f56e6151dc6e7afe010f208172952bf507c8f7f"` [INFO] [stdout] 741773772f82831f7676a0cb8f56e6151dc6e7afe010f208172952bf507c8f7f