[INFO] updating cached repository dewaka/rename [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/dewaka/rename [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/dewaka/rename" "work/ex/clippy-test-run/sources/stable/gh/dewaka/rename"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/dewaka/rename'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/dewaka/rename" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dewaka/rename"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dewaka/rename'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 30d9baaa918ab614490a97134a0af6c03df546cd [INFO] sha for GitHub repo dewaka/rename: 30d9baaa918ab614490a97134a0af6c03df546cd [INFO] validating manifest of dewaka/rename 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 dewaka/rename 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 dewaka/rename [INFO] finished frobbing dewaka/rename [INFO] frobbed toml for dewaka/rename written to work/ex/clippy-test-run/sources/stable/gh/dewaka/rename/Cargo.toml [INFO] started frobbing dewaka/rename [INFO] finished frobbing dewaka/rename [INFO] frobbed toml for dewaka/rename written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dewaka/rename/Cargo.toml [INFO] crate dewaka/rename 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 dewaka/rename 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-2/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/dewaka/rename:/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] d46bcde5fbd2538d5b64ab452f53f7407b65ad9f6ac5253ef349a27ee3073349 [INFO] running `"docker" "start" "-a" "d46bcde5fbd2538d5b64ab452f53f7407b65ad9f6ac5253ef349a27ee3073349"` [INFO] [stderr] Checking atty v0.2.11 [INFO] [stderr] Checking walkdir v2.2.5 [INFO] [stderr] Checking uuid v0.6.5 [INFO] [stderr] Checking clap v2.32.0 [INFO] [stderr] Checking rename v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/app.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | write!(nfile, "{}\n", name).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/app.rs:136:13 [INFO] [stderr] | [INFO] [stderr] 136 | write!(nfile, "{}\n", name).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/rename.rs:94:16 [INFO] [stderr] | [INFO] [stderr] 94 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 95 | | if early_exit { [INFO] [stderr] 96 | | return Err(format!("Failed to rename: {:?}", rename)); [INFO] [stderr] 97 | | } else { [INFO] [stderr] 98 | | println!("Warning - failed to rename: {:?}", rename); [INFO] [stderr] 99 | | } [INFO] [stderr] 100 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 94 | } else if early_exit { [INFO] [stderr] 95 | return Err(format!("Failed to rename: {:?}", rename)); [INFO] [stderr] 96 | } else { [INFO] [stderr] 97 | println!("Warning - failed to rename: {:?}", rename); [INFO] [stderr] 98 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/rename.rs:94:16 [INFO] [stderr] | [INFO] [stderr] 94 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 95 | | if early_exit { [INFO] [stderr] 96 | | return Err(format!("Failed to rename: {:?}", rename)); [INFO] [stderr] 97 | | } else { [INFO] [stderr] 98 | | println!("Warning - failed to rename: {:?}", rename); [INFO] [stderr] 99 | | } [INFO] [stderr] 100 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 94 | } else if early_exit { [INFO] [stderr] 95 | return Err(format!("Failed to rename: {:?}", rename)); [INFO] [stderr] 96 | } else { [INFO] [stderr] 97 | println!("Warning - failed to rename: {:?}", rename); [INFO] [stderr] 98 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/rename.rs:236:69 [INFO] [stderr] | [INFO] [stderr] 236 | fn run_test_with_setup(setup: S, teardown: C, test: T) -> () [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] error: this `if` has identical blocks [INFO] [stderr] --> src/app.rs:121:48 [INFO] [stderr] | [INFO] [stderr] 121 | } else if !filter_dirs { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 122 | | contents.push(file.to_owned()); [INFO] [stderr] 123 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/app.rs:119:41 [INFO] [stderr] | [INFO] [stderr] 119 | if md.is_file() { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 120 | | contents.push(file.to_owned()); [INFO] [stderr] 121 | | } else if !filter_dirs { [INFO] [stderr] | |_________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [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/app.rs:132:39 [INFO] [stderr] | [INFO] [stderr] 132 | fn write_temp_file(&self, fnames: &Vec) -> tempfile::NamedTempFile { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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/app.rs:167:39 [INFO] [stderr] | [INFO] [stderr] 167 | fn read_from_editor(&self, froms: &Vec, editor: &str, tos: &mut Vec) { [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: single-character string constant used as pattern [INFO] [stderr] --> src/app.rs:191:30 [INFO] [stderr] | [INFO] [stderr] 191 | for s in lines.split("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/app.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | for ref s in files.iter() { [INFO] [stderr] | ^^^^^ ------------ help: try: `let s = &files.iter();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_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/rename.rs:7:27 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn bulk_rename(froms: &Vec, tos: &Vec, is_demo: bool) -> Result { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/rename.rs:7:46 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn bulk_rename(froms: &Vec, tos: &Vec, is_demo: bool) -> Result { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/rename.rs:39:34 [INFO] [stderr] | [INFO] [stderr] 39 | fn with_temporary_moves(renames: &Vec<(Rename, Rename)>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(Rename, Rename)]` [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/rename.rs:54:39 [INFO] [stderr] | [INFO] [stderr] 54 | fn split_by_rename_conflicts(renames: &Vec) -> (Vec<(Rename, Rename)>, Vec) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Rename]` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/rename.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / if seen.contains_key(&k) { [INFO] [stderr] 62 | | let other = seen.get(&k).unwrap(); [INFO] [stderr] 63 | | [INFO] [stderr] 64 | | if r != other { [INFO] [stderr] ... | [INFO] [stderr] 71 | | seen.insert(k, r.clone()); [INFO] [stderr] 72 | | } [INFO] [stderr] | |_________^ help: consider using: `seen.entry(k)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/rename.rs:62:25 [INFO] [stderr] | [INFO] [stderr] 62 | let other = seen.get(&k).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&seen[&k]` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/rename.rs:75:40 [INFO] [stderr] | [INFO] [stderr] 75 | let non_conflicting: Vec = renames [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 76 | | .iter() [INFO] [stderr] 77 | | .filter(|r| !conflicting_set.contains(&r)) [INFO] [stderr] 78 | | .map(|r| r.clone()) [INFO] [stderr] | |___________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 75 | let non_conflicting: Vec = renames [INFO] [stderr] 76 | .iter() [INFO] [stderr] 77 | .filter(|r| !conflicting_set.contains(&r)).cloned() [INFO] [stderr] | [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/rename.rs:87:28 [INFO] [stderr] | [INFO] [stderr] 87 | fn do_bulk_rename(renames: &Vec, early_exit: bool, is_demo: bool) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Rename]` [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] error: this `if` has identical blocks [INFO] [stderr] --> src/app.rs:121:48 [INFO] [stderr] | [INFO] [stderr] 121 | } else if !filter_dirs { [INFO] [stderr] | ________________________________________________^ [INFO] [stderr] 122 | | contents.push(file.to_owned()); [INFO] [stderr] 123 | | } [INFO] [stderr] | |_________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::if_same_then_else)] on by default [INFO] [stderr] note: same as this [INFO] [stderr] --> src/app.rs:119:41 [INFO] [stderr] | [INFO] [stderr] 119 | if md.is_file() { [INFO] [stderr] | _________________________________________^ [INFO] [stderr] 120 | | contents.push(file.to_owned()); [INFO] [stderr] 121 | | } else if !filter_dirs { [INFO] [stderr] | |_________________________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [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/app.rs:132:39 [INFO] [stderr] | [INFO] [stderr] 132 | fn write_temp_file(&self, fnames: &Vec) -> tempfile::NamedTempFile { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [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: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:120:31 [INFO] [stderr] | [INFO] [stderr] 120 | let sorting = sort_option.expect(&format!("Invalid sort option: {}", sort_type)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Invalid sort option: {}", sort_type))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:123:45 [INFO] [stderr] | [INFO] [stderr] 123 | Some(sdepth) => Some(sdepth.parse().expect(&format!("Invalid depth: {}", sdepth))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Invalid depth: {}", sdepth))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [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/app.rs:167:39 [INFO] [stderr] | [INFO] [stderr] 167 | fn read_from_editor(&self, froms: &Vec, editor: &str, tos: &mut Vec) { [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: single-character string constant used as pattern [INFO] [stderr] --> src/app.rs:191:30 [INFO] [stderr] | [INFO] [stderr] 191 | for s in lines.split("\n") { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/app.rs:224:13 [INFO] [stderr] | [INFO] [stderr] 224 | for ref s in files.iter() { [INFO] [stderr] | ^^^^^ ------------ help: try: `let s = &files.iter();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_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/rename.rs:7:27 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn bulk_rename(froms: &Vec, tos: &Vec, is_demo: bool) -> Result { [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/rename.rs:7:46 [INFO] [stderr] | [INFO] [stderr] 7 | pub fn bulk_rename(froms: &Vec, tos: &Vec, is_demo: bool) -> Result { [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] error: Could not compile `rename`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/rename.rs:39:34 [INFO] [stderr] | [INFO] [stderr] 39 | fn with_temporary_moves(renames: &Vec<(Rename, Rename)>) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(Rename, Rename)]` [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/rename.rs:54:39 [INFO] [stderr] | [INFO] [stderr] 54 | fn split_by_rename_conflicts(renames: &Vec) -> (Vec<(Rename, Rename)>, Vec) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Rename]` [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/rename.rs:61:9 [INFO] [stderr] | [INFO] [stderr] 61 | / if seen.contains_key(&k) { [INFO] [stderr] 62 | | let other = seen.get(&k).unwrap(); [INFO] [stderr] 63 | | [INFO] [stderr] 64 | | if r != other { [INFO] [stderr] ... | [INFO] [stderr] 71 | | seen.insert(k, r.clone()); [INFO] [stderr] 72 | | } [INFO] [stderr] | |_________^ help: consider using: `seen.entry(k)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/rename.rs:62:25 [INFO] [stderr] | [INFO] [stderr] 62 | let other = seen.get(&k).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `&seen[&k]` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/rename.rs:75:40 [INFO] [stderr] | [INFO] [stderr] 75 | let non_conflicting: Vec = renames [INFO] [stderr] | ________________________________________^ [INFO] [stderr] 76 | | .iter() [INFO] [stderr] 77 | | .filter(|r| !conflicting_set.contains(&r)) [INFO] [stderr] 78 | | .map(|r| r.clone()) [INFO] [stderr] | |___________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 75 | let non_conflicting: Vec = renames [INFO] [stderr] 76 | .iter() [INFO] [stderr] 77 | .filter(|r| !conflicting_set.contains(&r)).cloned() [INFO] [stderr] | [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/rename.rs:87:28 [INFO] [stderr] | [INFO] [stderr] 87 | fn do_bulk_rename(renames: &Vec, early_exit: bool, is_demo: bool) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[Rename]` [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: redundant closure found [INFO] [stderr] --> src/rename.rs:243:42 [INFO] [stderr] | [INFO] [stderr] 243 | let result = panic::catch_unwind(|| test()); [INFO] [stderr] | ^^^^^^^^^ help: remove closure as shown: `test` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/rename.rs:281:13 [INFO] [stderr] | [INFO] [stderr] 281 | / match fs::write(&file_path, contents) { [INFO] [stderr] 282 | | Ok(_) => self.file_contents.push(( [INFO] [stderr] 283 | | file_path.to_str().unwrap().to_string(), [INFO] [stderr] 284 | | contents.to_string(), [INFO] [stderr] 285 | | )), [INFO] [stderr] 286 | | Err(_) => (), [INFO] [stderr] 287 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 281 | if let Ok(_) = fs::write(&file_path, contents) { self.file_contents.push(( [INFO] [stderr] 282 | file_path.to_str().unwrap().to_string(), [INFO] [stderr] 283 | contents.to_string(), [INFO] [stderr] 284 | )) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:120:31 [INFO] [stderr] | [INFO] [stderr] 120 | let sorting = sort_option.expect(&format!("Invalid sort option: {}", sort_type)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Invalid sort option: {}", sort_type))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/main.rs:123:45 [INFO] [stderr] | [INFO] [stderr] 123 | Some(sdepth) => Some(sdepth.parse().expect(&format!("Invalid depth: {}", sdepth))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Invalid depth: {}", sdepth))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rename`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "d46bcde5fbd2538d5b64ab452f53f7407b65ad9f6ac5253ef349a27ee3073349"` [INFO] running `"docker" "rm" "-f" "d46bcde5fbd2538d5b64ab452f53f7407b65ad9f6ac5253ef349a27ee3073349"` [INFO] [stdout] d46bcde5fbd2538d5b64ab452f53f7407b65ad9f6ac5253ef349a27ee3073349