[INFO] crate rsfs 0.4.1 is already in cache [INFO] extracting crate rsfs 0.4.1 into work/ex/clippy-test-run/sources/stable/reg/rsfs/0.4.1 [INFO] extracting crate rsfs 0.4.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rsfs/0.4.1 [INFO] validating manifest of rsfs-0.4.1 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 rsfs-0.4.1 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 rsfs-0.4.1 [INFO] finished frobbing rsfs-0.4.1 [INFO] frobbed toml for rsfs-0.4.1 written to work/ex/clippy-test-run/sources/stable/reg/rsfs/0.4.1/Cargo.toml [INFO] started frobbing rsfs-0.4.1 [INFO] finished frobbing rsfs-0.4.1 [INFO] frobbed toml for rsfs-0.4.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rsfs/0.4.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 rsfs-0.4.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rsfs/0.4.1:/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] 2ba5978819efbd7510c02b57556d03bbd93196e95a713d9496b579bbfce1ef8e [INFO] running `"docker" "start" "-a" "2ba5978819efbd7510c02b57556d03bbd93196e95a713d9496b579bbfce1ef8e"` [INFO] [stderr] Checking parking_lot v0.4.8 [INFO] [stderr] Checking rsfs v0.4.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/mem/unix.rs:2066:17 [INFO] [stderr] | [INFO] [stderr] 2066 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/mem/unix.rs:2113:13 [INFO] [stderr] | [INFO] [stderr] 2113 | read: read, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `read` [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/mem/unix.rs:2114:13 [INFO] [stderr] | [INFO] [stderr] 2114 | write: write, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `write` [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/mem/unix.rs:2117:17 [INFO] [stderr] | [INFO] [stderr] 2117 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/mem/unix.rs:2066:17 [INFO] [stderr] | [INFO] [stderr] 2066 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/mem/unix.rs:2113:13 [INFO] [stderr] | [INFO] [stderr] 2113 | read: read, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `read` [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/mem/unix.rs:2114:13 [INFO] [stderr] | [INFO] [stderr] 2114 | write: write, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `write` [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/mem/unix.rs:2117:17 [INFO] [stderr] | [INFO] [stderr] 2117 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/ptr.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | Raw { ptr: ptr, mkr: PhantomData } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [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/mem/unix.rs:2066:17 [INFO] [stderr] | [INFO] [stderr] 2066 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/mem/unix.rs:2113:13 [INFO] [stderr] | [INFO] [stderr] 2113 | read: read, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `read` [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/mem/unix.rs:2114:13 [INFO] [stderr] | [INFO] [stderr] 2114 | write: write, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `write` [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/mem/unix.rs:2117:17 [INFO] [stderr] | [INFO] [stderr] 2117 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/mem/unix.rs:2066:17 [INFO] [stderr] | [INFO] [stderr] 2066 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/mem/unix.rs:2113:13 [INFO] [stderr] | [INFO] [stderr] 2113 | read: read, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `read` [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/mem/unix.rs:2114:13 [INFO] [stderr] | [INFO] [stderr] 2114 | write: write, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `write` [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/mem/unix.rs:2117:17 [INFO] [stderr] | [INFO] [stderr] 2117 | file: file, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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/ptr.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | Raw { ptr: ptr, mkr: PhantomData } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ptr` [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: variable does not need to be mutable [INFO] [stderr] --> src/mem/unix.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut dst = &mut self.data; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/mem/unix.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut dst = &mut self.data; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/mem/unix.rs:272:12 [INFO] [stderr] | [INFO] [stderr] 272 | Ok(self.cursor.lock().set_len(size)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 272 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/mem/unix.rs:1363:24 [INFO] [stderr] | [INFO] [stderr] 1363 | if !parts_iter.peek2().is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parts_iter.peek2().is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:1774:52 [INFO] [stderr] | [INFO] [stderr] 1774 | fn maybe_kill_self(pwd: &mut Pwd, removed: &Raw) { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:2074:26 [INFO] [stderr] | [INFO] [stderr] 2074 | fn open_existing(fs: &Raw, options: &OpenOptions) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/mem/unix.rs:272:12 [INFO] [stderr] | [INFO] [stderr] 272 | Ok(self.cursor.lock().set_len(size)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 272 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/mem/unix.rs:1363:24 [INFO] [stderr] | [INFO] [stderr] 1363 | if !parts_iter.peek2().is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parts_iter.peek2().is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:1774:52 [INFO] [stderr] | [INFO] [stderr] 1774 | fn maybe_kill_self(pwd: &mut Pwd, removed: &Raw) { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:2074:26 [INFO] [stderr] | [INFO] [stderr] 2074 | fn open_existing(fs: &Raw, options: &OpenOptions) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/path_parts.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | peek1: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/path_parts.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 28 | peek2: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/ptr.rs:23:18 [INFO] [stderr] | [INFO] [stderr] 23 | unsafe { mem::transmute(self.ptr) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.ptr as *mut T` [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: variable does not need to be mutable [INFO] [stderr] --> src/mem/unix.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut dst = &mut self.data; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/mem/unix.rs:197:13 [INFO] [stderr] | [INFO] [stderr] 197 | let mut dst = &mut self.data; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/mem/unix.rs:272:12 [INFO] [stderr] | [INFO] [stderr] 272 | Ok(self.cursor.lock().set_len(size)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 272 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/mem/unix.rs:1363:24 [INFO] [stderr] | [INFO] [stderr] 1363 | if !parts_iter.peek2().is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parts_iter.peek2().is_none()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:1774:52 [INFO] [stderr] | [INFO] [stderr] 1774 | fn maybe_kill_self(pwd: &mut Pwd, removed: &Raw) { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:2074:26 [INFO] [stderr] | [INFO] [stderr] 2074 | fn open_existing(fs: &Raw, options: &OpenOptions) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mem/unix.rs:2164:17 [INFO] [stderr] | [INFO] [stderr] 2164 | let ref mut dir = exp_root.kind.dir_mut(); [INFO] [stderr] | ----^^^^^^^^^^^--------------------------- help: try: `let dir = &mut exp_root.kind.dir_mut();` [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: this function has too many arguments (11/7) [INFO] [stderr] --> src/mem/unix.rs:2311:9 [INFO] [stderr] | [INFO] [stderr] 2311 | / fn test_open>(on: i32, [INFO] [stderr] 2312 | | fs: &FS, [INFO] [stderr] 2313 | | read: bool, [INFO] [stderr] 2314 | | write: bool, [INFO] [stderr] ... | [INFO] [stderr] 2353 | | assert!(file.metadata().unwrap().is_file()); [INFO] [stderr] 2354 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/mem/unix.rs:2450:5 [INFO] [stderr] | [INFO] [stderr] 2450 | / fn remove_dir_all() { [INFO] [stderr] 2451 | | // And now we ensure batch removes work as expected - specifically, an alphabetical remove [INFO] [stderr] 2452 | | // that fails when a subdirectory is not readable. [INFO] [stderr] 2453 | | let fs = FS::with_mode(0o700); [INFO] [stderr] ... | [INFO] [stderr] 2497 | | assert!(errs_eq(fs.new_dirbuilder().create("a").unwrap_err(), EINVAL())); [INFO] [stderr] 2498 | | } [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 27 [INFO] [stderr] --> src/mem/unix.rs:2501:5 [INFO] [stderr] | [INFO] [stderr] 2501 | / fn rename() { [INFO] [stderr] 2502 | | // Rename can fail _a lot_. [INFO] [stderr] 2503 | | let fs = FS::with_mode(0o700); [INFO] [stderr] 2504 | | assert!(fs.new_dirbuilder().mode(0o700).recursive(true).create("a/b/c").is_ok()); [INFO] [stderr] ... | [INFO] [stderr] 2532 | | assert!(fs == exp); [INFO] [stderr] 2533 | | } [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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/mem/unix.rs:2574:5 [INFO] [stderr] | [INFO] [stderr] 2574 | / fn raw_file() { [INFO] [stderr] 2575 | | let mut raw_file = RawFile { [INFO] [stderr] 2576 | | data: Vec::new(), [INFO] [stderr] 2577 | | inode: Inode::new(0, Ftyp::File, 0), [INFO] [stderr] ... | [INFO] [stderr] 2621 | | assert_eq!(raw_file.inode.read().length, 11); [INFO] [stderr] 2622 | | } [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: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/mem/unix.rs:2675:5 [INFO] [stderr] | [INFO] [stderr] 2675 | / fn hard_link() { [INFO] [stderr] 2676 | | let fs = FS::with_mode(0o300); [INFO] [stderr] 2677 | | assert!(fs.new_openopts().mode(0o600).create(true).write(true).open("f").is_ok()); [INFO] [stderr] 2678 | | assert!(fs.symlink("f", "sl").is_ok()); [INFO] [stderr] ... | [INFO] [stderr] 2736 | | } [INFO] [stderr] 2737 | | } [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: the function has a cyclomatic complexity of 72 [INFO] [stderr] --> src/mem/unix.rs:2740:5 [INFO] [stderr] | [INFO] [stderr] 2740 | / fn symlink() { [INFO] [stderr] 2741 | | // We proved, in our first test, that creating symlinks works. Let's test everything [INFO] [stderr] 2742 | | // through symlinks. [INFO] [stderr] 2743 | | let fs = FS::with_mode(0o300); [INFO] [stderr] ... | [INFO] [stderr] 2839 | | // Open is tested in hard_link [INFO] [stderr] 2840 | | } [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: passing a unit value to a function [INFO] [stderr] --> src/mem/unix.rs:272:12 [INFO] [stderr] | [INFO] [stderr] 272 | Ok(self.cursor.lock().set_len(size)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 272 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/mem/unix.rs:1363:24 [INFO] [stderr] | [INFO] [stderr] 1363 | if !parts_iter.peek2().is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `parts_iter.peek2().is_none()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:1774:52 [INFO] [stderr] | [INFO] [stderr] 1774 | fn maybe_kill_self(pwd: &mut Pwd, removed: &Raw) { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/mem/unix.rs:2074:26 [INFO] [stderr] | [INFO] [stderr] 2074 | fn open_existing(fs: &Raw, options: &OpenOptions) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `Raw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/mem/unix.rs:2164:17 [INFO] [stderr] | [INFO] [stderr] 2164 | let ref mut dir = exp_root.kind.dir_mut(); [INFO] [stderr] | ----^^^^^^^^^^^--------------------------- help: try: `let dir = &mut exp_root.kind.dir_mut();` [INFO] [stderr] | [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: this function has too many arguments (11/7) [INFO] [stderr] --> src/mem/unix.rs:2311:9 [INFO] [stderr] | [INFO] [stderr] 2311 | / fn test_open>(on: i32, [INFO] [stderr] 2312 | | fs: &FS, [INFO] [stderr] 2313 | | read: bool, [INFO] [stderr] 2314 | | write: bool, [INFO] [stderr] ... | [INFO] [stderr] 2353 | | assert!(file.metadata().unwrap().is_file()); [INFO] [stderr] 2354 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 31 [INFO] [stderr] --> src/mem/unix.rs:2450:5 [INFO] [stderr] | [INFO] [stderr] 2450 | / fn remove_dir_all() { [INFO] [stderr] 2451 | | // And now we ensure batch removes work as expected - specifically, an alphabetical remove [INFO] [stderr] 2452 | | // that fails when a subdirectory is not readable. [INFO] [stderr] 2453 | | let fs = FS::with_mode(0o700); [INFO] [stderr] ... | [INFO] [stderr] 2497 | | assert!(errs_eq(fs.new_dirbuilder().create("a").unwrap_err(), EINVAL())); [INFO] [stderr] 2498 | | } [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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/mem/unix.rs:2501:5 [INFO] [stderr] | [INFO] [stderr] 2501 | / fn rename() { [INFO] [stderr] 2502 | | // Rename can fail _a lot_. [INFO] [stderr] 2503 | | let fs = FS::with_mode(0o700); [INFO] [stderr] 2504 | | assert!(fs.new_dirbuilder().mode(0o700).recursive(true).create("a/b/c").is_ok()); [INFO] [stderr] ... | [INFO] [stderr] 2532 | | assert!(fs == exp); [INFO] [stderr] 2533 | | } [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: the function has a cyclomatic complexity of 27 [INFO] [stderr] --> src/mem/unix.rs:2574:5 [INFO] [stderr] | [INFO] [stderr] 2574 | / fn raw_file() { [INFO] [stderr] 2575 | | let mut raw_file = RawFile { [INFO] [stderr] 2576 | | data: Vec::new(), [INFO] [stderr] 2577 | | inode: Inode::new(0, Ftyp::File, 0), [INFO] [stderr] ... | [INFO] [stderr] 2621 | | assert_eq!(raw_file.inode.read().length, 11); [INFO] [stderr] 2622 | | } [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: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/mem/unix.rs:2675:5 [INFO] [stderr] | [INFO] [stderr] 2675 | / fn hard_link() { [INFO] [stderr] 2676 | | let fs = FS::with_mode(0o300); [INFO] [stderr] 2677 | | assert!(fs.new_openopts().mode(0o600).create(true).write(true).open("f").is_ok()); [INFO] [stderr] 2678 | | assert!(fs.symlink("f", "sl").is_ok()); [INFO] [stderr] ... | [INFO] [stderr] 2736 | | } [INFO] [stderr] 2737 | | } [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: the function has a cyclomatic complexity of 72 [INFO] [stderr] --> src/mem/unix.rs:2740:5 [INFO] [stderr] | [INFO] [stderr] 2740 | / fn symlink() { [INFO] [stderr] 2741 | | // We proved, in our first test, that creating symlinks works. Let's test everything [INFO] [stderr] 2742 | | // through symlinks. [INFO] [stderr] 2743 | | let fs = FS::with_mode(0o300); [INFO] [stderr] ... | [INFO] [stderr] 2839 | | // Open is tested in hard_link [INFO] [stderr] 2840 | | } [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: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/path_parts.rs:26:12 [INFO] [stderr] | [INFO] [stderr] 26 | peek1: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_option)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: consider using `Option` instead of `Option>` or a custom enum if you need to distinguish all 3 cases [INFO] [stderr] --> src/path_parts.rs:28:12 [INFO] [stderr] | [INFO] [stderr] 28 | peek2: Option>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_option [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/ptr.rs:23:18 [INFO] [stderr] | [INFO] [stderr] 23 | unsafe { mem::transmute(self.ptr) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.ptr as *mut T` [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] Finished dev [unoptimized + debuginfo] target(s) in 5.33s [INFO] running `"docker" "inspect" "2ba5978819efbd7510c02b57556d03bbd93196e95a713d9496b579bbfce1ef8e"` [INFO] running `"docker" "rm" "-f" "2ba5978819efbd7510c02b57556d03bbd93196e95a713d9496b579bbfce1ef8e"` [INFO] [stdout] 2ba5978819efbd7510c02b57556d03bbd93196e95a713d9496b579bbfce1ef8e