[INFO] updating cached repository danielpclark/faster_path [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/danielpclark/faster_path [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/danielpclark/faster_path" "work/ex/clippy-test-run/sources/stable/gh/danielpclark/faster_path"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/danielpclark/faster_path'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/danielpclark/faster_path" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/danielpclark/faster_path"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/danielpclark/faster_path'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ca470d4965a0750f89e79d648fba4c30c52a5169 [INFO] sha for GitHub repo danielpclark/faster_path: ca470d4965a0750f89e79d648fba4c30c52a5169 [INFO] validating manifest of danielpclark/faster_path 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 danielpclark/faster_path 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 danielpclark/faster_path [INFO] finished frobbing danielpclark/faster_path [INFO] frobbed toml for danielpclark/faster_path written to work/ex/clippy-test-run/sources/stable/gh/danielpclark/faster_path/Cargo.toml [INFO] started frobbing danielpclark/faster_path [INFO] finished frobbing danielpclark/faster_path [INFO] frobbed toml for danielpclark/faster_path written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/danielpclark/faster_path/Cargo.toml [INFO] crate danielpclark/faster_path 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 danielpclark/faster_path against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/danielpclark/faster_path:/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] f5477cf488ca36793982a8331e4a1e3512fd526a46595a41814373d17fa9ff4a [INFO] running `"docker" "start" "-a" "f5477cf488ca36793982a8331e4a1e3512fd526a46595a41814373d17fa9ff4a"` [INFO] [stderr] Compiling rutie v0.3.2 [INFO] [stderr] Checking faster_path v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debug.rs:24:7 [INFO] [stderr] | [INFO] [stderr] 24 | object_id: object_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `object_id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debug.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | class: class, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `class` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debug.rs:26:7 [INFO] [stderr] | [INFO] [stderr] 26 | inspect: inspect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `inspect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debug.rs:24:7 [INFO] [stderr] | [INFO] [stderr] 24 | object_id: object_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `object_id` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debug.rs:25:7 [INFO] [stderr] | [INFO] [stderr] 25 | class: class, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `class` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/debug.rs:26:7 [INFO] [stderr] | [INFO] [stderr] 26 | inspect: inspect, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `inspect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/pathname.rs:158:14 [INFO] [stderr] | [INFO] [stderr] 158 | } else { [INFO] [stderr] | ______________^ [INFO] [stderr] 159 | | if let Ok(v) = entry { [INFO] [stderr] 160 | | arr.push(Pathname::new(v.file_name().to_str().unwrap())); [INFO] [stderr] 161 | | }; [INFO] [stderr] 162 | | } [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] 158 | } else if let Ok(v) = entry { [INFO] [stderr] 159 | arr.push(Pathname::new(v.file_name().to_str().unwrap())); [INFO] [stderr] 160 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/plus.rs:66:10 [INFO] [stderr] | [INFO] [stderr] 66 | } else { [INFO] [stderr] | __________^ [INFO] [stderr] 67 | | if result_prefix.is_empty() { [INFO] [stderr] 68 | | ".".into() [INFO] [stderr] 69 | | } else { [INFO] [stderr] 70 | | result_prefix [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [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] 66 | } else if result_prefix.is_empty() { [INFO] [stderr] 67 | ".".into() [INFO] [stderr] 68 | } else { [INFO] [stderr] 69 | result_prefix [INFO] [stderr] 70 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/pathname.rs:158:14 [INFO] [stderr] | [INFO] [stderr] 158 | } else { [INFO] [stderr] | ______________^ [INFO] [stderr] 159 | | if let Ok(v) = entry { [INFO] [stderr] 160 | | arr.push(Pathname::new(v.file_name().to_str().unwrap())); [INFO] [stderr] 161 | | }; [INFO] [stderr] 162 | | } [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] 158 | } else if let Ok(v) = entry { [INFO] [stderr] 159 | arr.push(Pathname::new(v.file_name().to_str().unwrap())); [INFO] [stderr] 160 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/plus.rs:66:10 [INFO] [stderr] | [INFO] [stderr] 66 | } else { [INFO] [stderr] | __________^ [INFO] [stderr] 67 | | if result_prefix.is_empty() { [INFO] [stderr] 68 | | ".".into() [INFO] [stderr] 69 | | } else { [INFO] [stderr] 70 | | result_prefix [INFO] [stderr] 71 | | } [INFO] [stderr] 72 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [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] 66 | } else if result_prefix.is_empty() { [INFO] [stderr] 67 | ".".into() [INFO] [stderr] 68 | } else { [INFO] [stderr] 69 | result_prefix [INFO] [stderr] 70 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debug.rs:17:35 [INFO] [stderr] | [INFO] [stderr] 17 | try_convert_to::().unwrap_or(RString::new_utf8("Failed to get object_id!")).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("Failed to get object_id!"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debug.rs:19:35 [INFO] [stderr] | [INFO] [stderr] 19 | try_convert_to::().unwrap_or(RString::new_utf8("Failed to get class!")).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("Failed to get class!"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debug.rs:21:35 [INFO] [stderr] | [INFO] [stderr] 21 | try_convert_to::().unwrap_or(RString::new_utf8("Failed to get inspect!")).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("Failed to get inspect!"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/helpers.rs:34:7 [INFO] [stderr] | [INFO] [stderr] 34 | unwrap_or(RString::new_utf8("")). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helpers.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | / match maybe_string { [INFO] [stderr] 47 | | &Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 48 | | &Err(_) => "", [INFO] [stderr] 49 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 46 | match *maybe_string { [INFO] [stderr] 47 | Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 48 | Err(_) => "", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/pathname.rs:112:18 [INFO] [stderr] | [INFO] [stderr] 112 | let path = pth.unwrap_or(RString::new_utf8(".")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("."))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pathname.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | / let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] 117 | | if path == "." { [INFO] [stderr] 118 | | with_directory = false; [INFO] [stderr] 119 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let with_directory = if path == "." { false } else { with_dir.unwrap_or(Boolean::new(true)).to_bool() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/pathname.rs:116:39 [INFO] [stderr] | [INFO] [stderr] 116 | let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| Boolean::new(true))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [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/pathname.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | / match entry { [INFO] [stderr] 125 | | Ok(v) => { arr.push(RString::new_utf8(v.path().to_str().unwrap())); }, [INFO] [stderr] 126 | | _ => {} [INFO] [stderr] 127 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Ok(v) = entry { arr.push(RString::new_utf8(v.path().to_str().unwrap())); }` [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] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/pathname.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | / match entry { [INFO] [stderr] 130 | | Ok(v) => { arr.push(RString::new_utf8(v.file_name().to_str().unwrap())); }, [INFO] [stderr] 131 | | _ => {} [INFO] [stderr] 132 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Ok(v) = entry { arr.push(RString::new_utf8(v.file_name().to_str().unwrap())); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pathname.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | / let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] 148 | | if path == "." { [INFO] [stderr] 149 | | with_directory = false; [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let with_directory = if path == "." { false } else { with_dir.unwrap_or(Boolean::new(true)).to_bool() };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/pathname.rs:147:39 [INFO] [stderr] | [INFO] [stderr] 147 | let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| Boolean::new(true))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/pathname.rs:205:38 [INFO] [stderr] | [INFO] [stderr] 205 | return RString::new_utf8(&path[..pos + 1]); [INFO] [stderr] | ^^^^^^^^^ help: use: `..=pos` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/pathname.rs:307:14 [INFO] [stderr] | [INFO] [stderr] 307 | let path = match &pth { [INFO] [stderr] | ______________^ [INFO] [stderr] 308 | | &Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 309 | | &Err(_) => return Boolean::new(false), [INFO] [stderr] 310 | | }; [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 307 | let path = match pth { [INFO] [stderr] 308 | Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 309 | Err(_) => return Boolean::new(false), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/basename.rs:33:31 [INFO] [stderr] | [INFO] [stderr] 33 | if ext_bytes.len() == 2 && *ext_bytes.get(1).unwrap() == b'*' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ext_bytes[1]` [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 slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/basename.rs:34:20 [INFO] [stderr] | [INFO] [stderr] 34 | match memrchr(*ext_bytes.get(0).unwrap(), slice) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ext_bytes[0]` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/chop_basename.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / pub fn chop_basename<'a>(input: &'a str) -> Option<(&'a str, &'a str)> { [INFO] [stderr] 5 | | let bytes = input.as_bytes(); [INFO] [stderr] 6 | | let len = find_last_non_sep_pos(&bytes)? + 1; [INFO] [stderr] 7 | | let base_start = find_last_sep_pos(&bytes[..len]).map_or(0, |pos| pos + 1); [INFO] [stderr] ... | [INFO] [stderr] 11 | | Some((&input[0..base_start], &input[base_start..len])) [INFO] [stderr] 12 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/cleanpath_aggressive.rs:12:11 [INFO] [stderr] | [INFO] [stderr] 12 | match base.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `base` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/dirname.rs:22:11 [INFO] [stderr] | [INFO] [stderr] 22 | &path[..end + 1] [INFO] [stderr] | ^^^^^^^^^ help: use: `..=end` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/pathname_sys.rs:13:32 [INFO] [stderr] | [INFO] [stderr] 13 | let p_argv: *const Value = mem::transmute(argv); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `argv as *const rutie::types::Value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [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/plus.rs:76:32 [INFO] [stderr] | [INFO] [stderr] 76 | fn count_trailing(x: &str, xs: &Vec<&str>) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[&str]` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const usize`) [INFO] [stderr] --> src/memrnchr.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | let u = *(ptr.offset(offset as isize - 2 * size_of::() as isize) as *const usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const usize`) [INFO] [stderr] --> src/memrnchr.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | let v = *(ptr.offset(offset as isize - size_of::() as isize) as *const usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:58:15 [INFO] [stderr] | [INFO] [stderr] 58 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:63:15 [INFO] [stderr] | [INFO] [stderr] 63 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:105:15 [INFO] [stderr] | [INFO] [stderr] 105 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:111:15 [INFO] [stderr] | [INFO] [stderr] 111 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:155:15 [INFO] [stderr] | [INFO] [stderr] 155 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `faster_path`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debug.rs:17:35 [INFO] [stderr] | [INFO] [stderr] 17 | try_convert_to::().unwrap_or(RString::new_utf8("Failed to get object_id!")).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("Failed to get object_id!"))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debug.rs:19:35 [INFO] [stderr] | [INFO] [stderr] 19 | try_convert_to::().unwrap_or(RString::new_utf8("Failed to get class!")).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("Failed to get class!"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/debug.rs:21:35 [INFO] [stderr] | [INFO] [stderr] 21 | try_convert_to::().unwrap_or(RString::new_utf8("Failed to get inspect!")).to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("Failed to get inspect!"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/helpers.rs:34:7 [INFO] [stderr] | [INFO] [stderr] 34 | unwrap_or(RString::new_utf8("")). [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8(""))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/helpers.rs:46:3 [INFO] [stderr] | [INFO] [stderr] 46 | / match maybe_string { [INFO] [stderr] 47 | | &Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 48 | | &Err(_) => "", [INFO] [stderr] 49 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 46 | match *maybe_string { [INFO] [stderr] 47 | Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 48 | Err(_) => "", [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/pathname.rs:112:18 [INFO] [stderr] | [INFO] [stderr] 112 | let path = pth.unwrap_or(RString::new_utf8(".")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| RString::new_utf8("."))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pathname.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | / let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] 117 | | if path == "." { [INFO] [stderr] 118 | | with_directory = false; [INFO] [stderr] 119 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let with_directory = if path == "." { false } else { with_dir.unwrap_or(Boolean::new(true)).to_bool() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/pathname.rs:116:39 [INFO] [stderr] | [INFO] [stderr] 116 | let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| Boolean::new(true))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [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/pathname.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | / match entry { [INFO] [stderr] 125 | | Ok(v) => { arr.push(RString::new_utf8(v.path().to_str().unwrap())); }, [INFO] [stderr] 126 | | _ => {} [INFO] [stderr] 127 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Ok(v) = entry { arr.push(RString::new_utf8(v.path().to_str().unwrap())); }` [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] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/pathname.rs:129:9 [INFO] [stderr] | [INFO] [stderr] 129 | / match entry { [INFO] [stderr] 130 | | Ok(v) => { arr.push(RString::new_utf8(v.file_name().to_str().unwrap())); }, [INFO] [stderr] 131 | | _ => {} [INFO] [stderr] 132 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Ok(v) = entry { arr.push(RString::new_utf8(v.file_name().to_str().unwrap())); }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/pathname.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | / let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] 148 | | if path == "." { [INFO] [stderr] 149 | | with_directory = false; [INFO] [stderr] 150 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let with_directory = if path == "." { false } else { with_dir.unwrap_or(Boolean::new(true)).to_bool() };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/pathname.rs:147:39 [INFO] [stderr] | [INFO] [stderr] 147 | let mut with_directory = with_dir.unwrap_or(Boolean::new(true)).to_bool(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| Boolean::new(true))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/pathname.rs:205:38 [INFO] [stderr] | [INFO] [stderr] 205 | return RString::new_utf8(&path[..pos + 1]); [INFO] [stderr] | ^^^^^^^^^ help: use: `..=pos` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/pathname.rs:307:14 [INFO] [stderr] | [INFO] [stderr] 307 | let path = match &pth { [INFO] [stderr] | ______________^ [INFO] [stderr] 308 | | &Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 309 | | &Err(_) => return Boolean::new(false), [INFO] [stderr] 310 | | }; [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 307 | let path = match pth { [INFO] [stderr] 308 | Ok(ref rutie_string) => rutie_string.to_str(), [INFO] [stderr] 309 | Err(_) => return Boolean::new(false), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/basename.rs:33:31 [INFO] [stderr] | [INFO] [stderr] 33 | if ext_bytes.len() == 2 && *ext_bytes.get(1).unwrap() == b'*' { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ext_bytes[1]` [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 slice. Using `[]` is more clear and more concise [INFO] [stderr] --> src/basename.rs:34:20 [INFO] [stderr] | [INFO] [stderr] 34 | match memrchr(*ext_bytes.get(0).unwrap(), slice) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&ext_bytes[0]` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/chop_basename.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | / pub fn chop_basename<'a>(input: &'a str) -> Option<(&'a str, &'a str)> { [INFO] [stderr] 5 | | let bytes = input.as_bytes(); [INFO] [stderr] 6 | | let len = find_last_non_sep_pos(&bytes)? + 1; [INFO] [stderr] 7 | | let base_start = find_last_sep_pos(&bytes[..len]).map_or(0, |pos| pos + 1); [INFO] [stderr] ... | [INFO] [stderr] 11 | | Some((&input[0..base_start], &input[base_start..len])) [INFO] [stderr] 12 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/cleanpath_aggressive.rs:12:11 [INFO] [stderr] | [INFO] [stderr] 12 | match base.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `base` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 33 [INFO] [stderr] --> src/cleanpath_aggressive.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | / fn it_aggressively_cleans_the_path() { [INFO] [stderr] 40 | | assert_eq!(cleanpath_aggressive("/") , "/"); [INFO] [stderr] 41 | | assert_eq!(cleanpath_aggressive("") , "."); [INFO] [stderr] 42 | | assert_eq!(cleanpath_aggressive(".") , "."); [INFO] [stderr] ... | [INFO] [stderr] 71 | | assert_eq!(cleanpath_aggressive("a/b/../../../../c/../d"), "../../d"); [INFO] [stderr] 72 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/cleanpath_conservative.rs:47:1 [INFO] [stderr] | [INFO] [stderr] 47 | / fn it_conservatively_cleans_the_path() { [INFO] [stderr] 48 | | assert_eq!(cleanpath_conservative("/"), "/"); [INFO] [stderr] 49 | | assert_eq!(cleanpath_conservative(""), "."); [INFO] [stderr] 50 | | assert_eq!(cleanpath_conservative("."), "."); [INFO] [stderr] ... | [INFO] [stderr] 95 | | // end [INFO] [stderr] 96 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/dirname.rs:22:11 [INFO] [stderr] | [INFO] [stderr] 22 | &path[..end + 1] [INFO] [stderr] | ^^^^^^^^^ help: use: `..=end` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/pathname_sys.rs:13:32 [INFO] [stderr] | [INFO] [stderr] 13 | let p_argv: *const Value = mem::transmute(argv); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `argv as *const rutie::types::Value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [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/plus.rs:76:32 [INFO] [stderr] | [INFO] [stderr] 76 | fn count_trailing(x: &str, xs: &Vec<&str>) -> usize { [INFO] [stderr] | ^^^^^^^^^^ help: change this to: `&[&str]` [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] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const usize`) [INFO] [stderr] --> src/memrnchr.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | let u = *(ptr.offset(offset as isize - 2 * size_of::() as isize) as *const usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const usize`) [INFO] [stderr] --> src/memrnchr.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | let v = *(ptr.offset(offset as isize - size_of::() as isize) as *const usize); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/lib.rs:58:15 [INFO] [stderr] | [INFO] [stderr] 58 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:63:15 [INFO] [stderr] | [INFO] [stderr] 63 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:105:15 [INFO] [stderr] | [INFO] [stderr] 105 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:111:15 [INFO] [stderr] | [INFO] [stderr] 111 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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/lib.rs:155:15 [INFO] [stderr] | [INFO] [stderr] 155 | map_err(|e| VM::raise_ex(e) ).unwrap() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `VM::raise_ex` [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] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `faster_path`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f5477cf488ca36793982a8331e4a1e3512fd526a46595a41814373d17fa9ff4a"` [INFO] running `"docker" "rm" "-f" "f5477cf488ca36793982a8331e4a1e3512fd526a46595a41814373d17fa9ff4a"` [INFO] [stdout] f5477cf488ca36793982a8331e4a1e3512fd526a46595a41814373d17fa9ff4a