[INFO] updating cached repository bparli/bpfs [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/bparli/bpfs [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/bparli/bpfs" "work/ex/clippy-test-run/sources/stable/gh/bparli/bpfs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/bparli/bpfs'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/bparli/bpfs" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bparli/bpfs"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bparli/bpfs'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ff61d085d314b70386e380c5213c2f57c078862c [INFO] sha for GitHub repo bparli/bpfs: ff61d085d314b70386e380c5213c2f57c078862c [INFO] validating manifest of bparli/bpfs 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 bparli/bpfs 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 bparli/bpfs [INFO] finished frobbing bparli/bpfs [INFO] frobbed toml for bparli/bpfs written to work/ex/clippy-test-run/sources/stable/gh/bparli/bpfs/Cargo.toml [INFO] started frobbing bparli/bpfs [INFO] finished frobbing bparli/bpfs [INFO] frobbed toml for bparli/bpfs written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/bparli/bpfs/Cargo.toml [INFO] crate bparli/bpfs 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 bparli/bpfs against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/bparli/bpfs:/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] 09e8ab59eaa496677c5a89389b7ebfeed315377c01d76265532fd249a74e5a32 [INFO] running `"docker" "start" "-a" "09e8ab59eaa496677c5a89389b7ebfeed315377c01d76265532fd249a74e5a32"` [INFO] [stderr] Compiling fuse v0.3.1 [INFO] [stderr] Checking memchr v2.1.0 [INFO] [stderr] Checking aho-corasick v0.6.8 [INFO] [stderr] Checking regex v1.0.5 [INFO] [stderr] Checking env_logger v0.5.13 [INFO] [stderr] Checking bpfs v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | Inode{name: name, children: BTreeMap::new(), parent: parent} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/lib.rs:52:54 [INFO] [stderr] | [INFO] [stderr] 52 | Inode{name: name, children: BTreeMap::new(), parent: parent} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [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/lib.rs:91:25 [INFO] [stderr] | [INFO] [stderr] 91 | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `files` [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/lib.rs:91:39 [INFO] [stderr] | [INFO] [stderr] 91 | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `attrs` [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/lib.rs:91:53 [INFO] [stderr] | [INFO] [stderr] 91 | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `inodes` [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/lib.rs:52:15 [INFO] [stderr] | [INFO] [stderr] 52 | Inode{name: name, children: BTreeMap::new(), parent: parent} [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/lib.rs:52:54 [INFO] [stderr] | [INFO] [stderr] 52 | Inode{name: name, children: BTreeMap::new(), parent: parent} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `parent` [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/lib.rs:91:25 [INFO] [stderr] | [INFO] [stderr] 91 | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `files` [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/lib.rs:91:39 [INFO] [stderr] | [INFO] [stderr] 91 | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `attrs` [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/lib.rs:91:53 [INFO] [stderr] | [INFO] [stderr] 91 | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `inodes` [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: you should consider deriving a `Default` implementation for `MemFile` [INFO] [stderr] --> src/lib.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new() -> MemFile { [INFO] [stderr] 24 | | MemFile{bytes: Vec::new()} [INFO] [stderr] 25 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `MemFilesystem` [INFO] [stderr] --> src/lib.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / pub fn new() -> MemFilesystem { [INFO] [stderr] 66 | | let files = BTreeMap::new(); [INFO] [stderr] 67 | | [INFO] [stderr] 68 | | let root = Inode::new("/".to_string(), 1 as u64); [INFO] [stderr] ... | [INFO] [stderr] 91 | | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] 92 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 57 | #[derive(Default)] [INFO] [stderr] | [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/lib.rs:118:17 [INFO] [stderr] | [INFO] [stderr] 118 | / match uid { [INFO] [stderr] 119 | | Some(new_uid) => { [INFO] [stderr] 120 | | debug!("setattr(ino={}, uid={}, new_uid={})", ino, fp.uid, new_uid); [INFO] [stderr] 121 | | fp.uid = new_uid; [INFO] [stderr] 122 | | } [INFO] [stderr] 123 | | None => {} [INFO] [stderr] 124 | | } [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] 118 | if let Some(new_uid) = uid { [INFO] [stderr] 119 | debug!("setattr(ino={}, uid={}, new_uid={})", ino, fp.uid, new_uid); [INFO] [stderr] 120 | fp.uid = new_uid; [INFO] [stderr] 121 | } [INFO] [stderr] | [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/lib.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | / match gid { [INFO] [stderr] 126 | | Some(new_gid) => { [INFO] [stderr] 127 | | debug!("setattr(ino={}, gid={}, new_gid={})", ino, fp.gid, new_gid); [INFO] [stderr] 128 | | fp.gid = new_gid; [INFO] [stderr] 129 | | } [INFO] [stderr] 130 | | None => {} [INFO] [stderr] 131 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 125 | if let Some(new_gid) = gid { [INFO] [stderr] 126 | debug!("setattr(ino={}, gid={}, new_gid={})", ino, fp.gid, new_gid); [INFO] [stderr] 127 | fp.gid = new_gid; [INFO] [stderr] 128 | } [INFO] [stderr] | [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/lib.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | / match atime { [INFO] [stderr] 133 | | Some(new_atime) => fp.atime = new_atime, [INFO] [stderr] 134 | | None => {} [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(new_atime) = atime { fp.atime = new_atime }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:136:17 [INFO] [stderr] | [INFO] [stderr] 136 | / match mtime { [INFO] [stderr] 137 | | Some(new_mtime) => fp.mtime = new_mtime, [INFO] [stderr] 138 | | None => {} [INFO] [stderr] 139 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(new_mtime) = mtime { fp.mtime = new_mtime }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | / match crtime { [INFO] [stderr] 141 | | Some(new_crtime) => fp.crtime = new_crtime, [INFO] [stderr] 142 | | None => {} [INFO] [stderr] 143 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(new_crtime) = crtime { fp.crtime = new_crtime }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | / match size { [INFO] [stderr] 145 | | Some(new_size) => { [INFO] [stderr] 146 | | if let Some(memfile) = self.files.get_mut(&ino) { [INFO] [stderr] 147 | | debug!("setattr(ino={}, size={}, new_size={})", ino, fp.size, new_size); [INFO] [stderr] ... | [INFO] [stderr] 156 | | None => {} [INFO] [stderr] 157 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 144 | if let Some(new_size) = size { [INFO] [stderr] 145 | if let Some(memfile) = self.files.get_mut(&ino) { [INFO] [stderr] 146 | debug!("setattr(ino={}, size={}, new_size={})", ino, fp.size, new_size); [INFO] [stderr] 147 | memfile.truncate(new_size); [INFO] [stderr] 148 | fp.size = new_size; [INFO] [stderr] 149 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:174:36 [INFO] [stderr] | [INFO] [stderr] 174 | let child_attrs = &self.attrs.get(child_ino).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.attrs[child_ino]` [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: length comparison to zero [INFO] [stderr] --> src/lib.rs:179:16 [INFO] [stderr] | [INFO] [stderr] 179 | if entries.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!entries.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:332:41 [INFO] [stderr] | [INFO] [stderr] 332 | reply.created(&TTL, self.attrs.get(&ino).unwrap(), 0, 0 ,0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.attrs[&ino]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `MemFile` [INFO] [stderr] --> src/lib.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | / pub fn new() -> MemFile { [INFO] [stderr] 24 | | MemFile{bytes: Vec::new()} [INFO] [stderr] 25 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `MemFilesystem` [INFO] [stderr] --> src/lib.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | / pub fn new() -> MemFilesystem { [INFO] [stderr] 66 | | let files = BTreeMap::new(); [INFO] [stderr] 67 | | [INFO] [stderr] 68 | | let root = Inode::new("/".to_string(), 1 as u64); [INFO] [stderr] ... | [INFO] [stderr] 91 | | MemFilesystem { files: files, attrs: attrs, inodes: inodes, next_inode: 2 } [INFO] [stderr] 92 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 57 | #[derive(Default)] [INFO] [stderr] | [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/lib.rs:118:17 [INFO] [stderr] | [INFO] [stderr] 118 | / match uid { [INFO] [stderr] 119 | | Some(new_uid) => { [INFO] [stderr] 120 | | debug!("setattr(ino={}, uid={}, new_uid={})", ino, fp.uid, new_uid); [INFO] [stderr] 121 | | fp.uid = new_uid; [INFO] [stderr] 122 | | } [INFO] [stderr] 123 | | None => {} [INFO] [stderr] 124 | | } [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] 118 | if let Some(new_uid) = uid { [INFO] [stderr] 119 | debug!("setattr(ino={}, uid={}, new_uid={})", ino, fp.uid, new_uid); [INFO] [stderr] 120 | fp.uid = new_uid; [INFO] [stderr] 121 | } [INFO] [stderr] | [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/lib.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | / match gid { [INFO] [stderr] 126 | | Some(new_gid) => { [INFO] [stderr] 127 | | debug!("setattr(ino={}, gid={}, new_gid={})", ino, fp.gid, new_gid); [INFO] [stderr] 128 | | fp.gid = new_gid; [INFO] [stderr] 129 | | } [INFO] [stderr] 130 | | None => {} [INFO] [stderr] 131 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 125 | if let Some(new_gid) = gid { [INFO] [stderr] 126 | debug!("setattr(ino={}, gid={}, new_gid={})", ino, fp.gid, new_gid); [INFO] [stderr] 127 | fp.gid = new_gid; [INFO] [stderr] 128 | } [INFO] [stderr] | [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/lib.rs:132:17 [INFO] [stderr] | [INFO] [stderr] 132 | / match atime { [INFO] [stderr] 133 | | Some(new_atime) => fp.atime = new_atime, [INFO] [stderr] 134 | | None => {} [INFO] [stderr] 135 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(new_atime) = atime { fp.atime = new_atime }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:136:17 [INFO] [stderr] | [INFO] [stderr] 136 | / match mtime { [INFO] [stderr] 137 | | Some(new_mtime) => fp.mtime = new_mtime, [INFO] [stderr] 138 | | None => {} [INFO] [stderr] 139 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(new_mtime) = mtime { fp.mtime = new_mtime }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:140:17 [INFO] [stderr] | [INFO] [stderr] 140 | / match crtime { [INFO] [stderr] 141 | | Some(new_crtime) => fp.crtime = new_crtime, [INFO] [stderr] 142 | | None => {} [INFO] [stderr] 143 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(new_crtime) = crtime { fp.crtime = new_crtime }` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | / match size { [INFO] [stderr] 145 | | Some(new_size) => { [INFO] [stderr] 146 | | if let Some(memfile) = self.files.get_mut(&ino) { [INFO] [stderr] 147 | | debug!("setattr(ino={}, size={}, new_size={})", ino, fp.size, new_size); [INFO] [stderr] ... | [INFO] [stderr] 156 | | None => {} [INFO] [stderr] 157 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 144 | if let Some(new_size) = size { [INFO] [stderr] 145 | if let Some(memfile) = self.files.get_mut(&ino) { [INFO] [stderr] 146 | debug!("setattr(ino={}, size={}, new_size={})", ino, fp.size, new_size); [INFO] [stderr] 147 | memfile.truncate(new_size); [INFO] [stderr] 148 | fp.size = new_size; [INFO] [stderr] 149 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:174:36 [INFO] [stderr] | [INFO] [stderr] 174 | let child_attrs = &self.attrs.get(child_ino).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.attrs[child_ino]` [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: length comparison to zero [INFO] [stderr] --> src/lib.rs:179:16 [INFO] [stderr] | [INFO] [stderr] 179 | if entries.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!entries.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:332:41 [INFO] [stderr] | [INFO] [stderr] 332 | reply.created(&TTL, self.attrs.get(&ino).unwrap(), 0, 0 ,0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.attrs[&ino]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:458:21 [INFO] [stderr] | [INFO] [stderr] 458 | assert_eq!(*test_inode.children.get("dummy-child").unwrap(), 888); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&test_inode.children["dummy-child"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:466:20 [INFO] [stderr] | [INFO] [stderr] 466 | assert_eq!(testfs.attrs.get(&1).unwrap().ino, 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&testfs.attrs[&1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:467:20 [INFO] [stderr] | [INFO] [stderr] 467 | assert_eq!(testfs.attrs.get(&1).unwrap().kind, FileType::Directory); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&testfs.attrs[&1]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a BTreeMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/lib.rs:469:20 [INFO] [stderr] | [INFO] [stderr] 469 | assert_eq!(testfs.inodes.get(&1).unwrap().name, "/".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&testfs.inodes[&1]` [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] Finished dev [unoptimized + debuginfo] target(s) in 12.41s [INFO] running `"docker" "inspect" "09e8ab59eaa496677c5a89389b7ebfeed315377c01d76265532fd249a74e5a32"` [INFO] running `"docker" "rm" "-f" "09e8ab59eaa496677c5a89389b7ebfeed315377c01d76265532fd249a74e5a32"` [INFO] [stdout] 09e8ab59eaa496677c5a89389b7ebfeed315377c01d76265532fd249a74e5a32