[INFO] crate bulk 0.4.9 is already in cache [INFO] extracting crate bulk 0.4.9 into work/ex/clippy-test-run/sources/stable/reg/bulk/0.4.9 [INFO] extracting crate bulk 0.4.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bulk/0.4.9 [INFO] validating manifest of bulk-0.4.9 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 bulk-0.4.9 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 bulk-0.4.9 [INFO] finished frobbing bulk-0.4.9 [INFO] frobbed toml for bulk-0.4.9 written to work/ex/clippy-test-run/sources/stable/reg/bulk/0.4.9/Cargo.toml [INFO] started frobbing bulk-0.4.9 [INFO] finished frobbing bulk-0.4.9 [INFO] frobbed toml for bulk-0.4.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bulk/0.4.9/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 bulk-0.4.9 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/bulk/0.4.9:/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] 5411fdc0b98787536600b41030fc78d49fd26a73a0959dff18bd61f0519927a0 [INFO] running `"docker" "start" "-a" "5411fdc0b98787536600b41030fc78d49fd26a73a0959dff18bd61f0519927a0"` [INFO] [stderr] Checking scan_dir v0.3.3 [INFO] [stderr] Checking sha2 v0.1.2 [INFO] [stderr] Checking quire v0.1.8 [INFO] [stderr] Checking bulk v0.4.9 (/opt/crater/workdir) [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/deb_ext.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | write!(self, "{}: {}\n", key, _control_multiline(value)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/repo/debian.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | codename: codename, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `codename` [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/repo/debian.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | architectures: architectures, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `architectures` [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/repo/debian.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | components: components, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `components` [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/repo/debian.rs:215:21 [INFO] [stderr] | [INFO] [stderr] 215 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/repo/debian.rs:216:21 [INFO] [stderr] | [INFO] [stderr] 216 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/repo/debian.rs:217:21 [INFO] [stderr] | [INFO] [stderr] 217 | architecture: architecture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `architecture` [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/repo/debian.rs:279:21 [INFO] [stderr] | [INFO] [stderr] 279 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/deb_ext.rs:6:9 [INFO] [stderr] | [INFO] [stderr] 6 | write!(self, "{}: {}\n", key, _control_multiline(value)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/repo/debian.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | codename: codename, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `codename` [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/repo/debian.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | architectures: architectures, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `architectures` [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/repo/debian.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | components: components, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `components` [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/repo/debian.rs:215:21 [INFO] [stderr] | [INFO] [stderr] 215 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/repo/debian.rs:216:21 [INFO] [stderr] | [INFO] [stderr] 216 | version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [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/repo/debian.rs:217:21 [INFO] [stderr] | [INFO] [stderr] 217 | architecture: architecture, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `architecture` [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/repo/debian.rs:279:21 [INFO] [stderr] | [INFO] [stderr] 279 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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: unneeded return statement [INFO] [stderr] --> src/deb_ext.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | return val; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/hash_file.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | return Ok(sha256.result_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(sha256.result_str())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/version.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | return Components(self.0.as_ref(), ch); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Components(self.0.as_ref(), ch)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/metadata.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | return io::Error::new(io::ErrorKind::Other, text); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `io::Error::new(io::ErrorKind::Other, text)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/metadata.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return Err(error("No metadata found")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(error("No metadata found"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/ar.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | return io::Error::new(io::ErrorKind::Other, text); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `io::Error::new(io::ErrorKind::Other, text)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/ar.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | return self._read_file(name.as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self._read_file(name.as_ref())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/deb.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | return io::Error::new(io::ErrorKind::Other, text); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `io::Error::new(io::ErrorKind::Other, text)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/deb.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | return Ok(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:5:28 [INFO] [stderr] | [INFO] [stderr] 5 | pub const SIZE_AUTO: u64 = 9999999999; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `9_999_999_999` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:59:24 [INFO] [stderr] | [INFO] [stderr] 59 | assert!(uid <= 999999); [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:60:24 [INFO] [stderr] | [INFO] [stderr] 60 | assert!(gid <= 999999); [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:61:25 [INFO] [stderr] | [INFO] [stderr] 61 | assert!(mode <= 99999999); [INFO] [stderr] | ^^^^^^^^ help: consider: `99_999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:62:25 [INFO] [stderr] | [INFO] [stderr] 62 | assert!(size <= 9999999999); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `9_999_999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/mod.rs:34:47 [INFO] [stderr] | [INFO] [stderr] 34 | try!(ar.add("debian-binary", mtime, 0, 0, 0o100644, 4) [INFO] [stderr] | ^^^^^^^^ help: consider: `0o100_644` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/mod.rs:39:26 [INFO] [stderr] | [INFO] [stderr] 39 | mtime, 0, 0, 0o100644, SIZE_AUTO)); [INFO] [stderr] | ^^^^^^^^ help: consider: `0o100_644` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/mod.rs:49:26 [INFO] [stderr] | [INFO] [stderr] 49 | mtime, 0, 0, 0o100644, SIZE_AUTO)); [INFO] [stderr] | ^^^^^^^^ help: consider: `0o100_644` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/scanner.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/scanner.rs:102:25 [INFO] [stderr] | [INFO] [stderr] 102 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/bump.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | return bump_version(ver, Bump::Component(cmp as u8)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `bump_version(ver, Bump::Component(cmp as u8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | return Err("Version not found".into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("Version not found".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/ver/mod.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 109 | | if let Some((long, short)) = git_vers { [INFO] [stderr] 110 | | if long != ver && short != ver { [INFO] [stderr] 111 | | result = false; [INFO] [stderr] ... | [INFO] [stderr] 122 | | } [INFO] [stderr] 123 | | } [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] 108 | } else if let Some((long, short)) = git_vers { [INFO] [stderr] 109 | if long != ver && short != ver { [INFO] [stderr] 110 | result = false; [INFO] [stderr] 111 | writeln!(&mut stderr(), [INFO] [stderr] 112 | "{}:{}: version conflict {} != {}", [INFO] [stderr] 113 | filename.display(), lineno, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/mod.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/ver/mod.rs:238:32 [INFO] [stderr] | [INFO] [stderr] 238 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 239 | | if citer.scanner().partial.is_none() { [INFO] [stderr] 240 | | // TODO(tailhook) we skip checking partial [INFO] [stderr] 241 | | // version is it's not the first one [INFO] [stderr] ... | [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [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] 238 | } else if citer.scanner().partial.is_none() { [INFO] [stderr] 239 | // TODO(tailhook) we skip checking partial [INFO] [stderr] 240 | // version is it's not the first one [INFO] [stderr] 241 | // We may fix it, but probably it's not a big [INFO] [stderr] 242 | // deal [INFO] [stderr] 243 | prev = Some(ver.to_string()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/deb_ext.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | return val; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `val` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/hash_file.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | return Ok(sha256.result_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(sha256.result_str())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/version.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | return Components(self.0.as_ref(), ch); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Components(self.0.as_ref(), ch)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/metadata.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | return io::Error::new(io::ErrorKind::Other, text); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `io::Error::new(io::ErrorKind::Other, text)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/metadata.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | return Err(error("No metadata found")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(error("No metadata found"))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/ar.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | return io::Error::new(io::ErrorKind::Other, text); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `io::Error::new(io::ErrorKind::Other, text)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/ar.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | return self._read_file(name.as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self._read_file(name.as_ref())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/deb.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | return io::Error::new(io::ErrorKind::Other, text); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `io::Error::new(io::ErrorKind::Other, text)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/repo/deb.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | return Ok(res); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(res)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:5:28 [INFO] [stderr] | [INFO] [stderr] 5 | pub const SIZE_AUTO: u64 = 9999999999; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `9_999_999_999` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:59:24 [INFO] [stderr] | [INFO] [stderr] 59 | assert!(uid <= 999999); [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:60:24 [INFO] [stderr] | [INFO] [stderr] 60 | assert!(gid <= 999999); [INFO] [stderr] | ^^^^^^ help: consider: `999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:61:25 [INFO] [stderr] | [INFO] [stderr] 61 | assert!(mode <= 99999999); [INFO] [stderr] | ^^^^^^^^ help: consider: `99_999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/ar.rs:62:25 [INFO] [stderr] | [INFO] [stderr] 62 | assert!(size <= 9999999999); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `9_999_999_999` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/mod.rs:34:47 [INFO] [stderr] | [INFO] [stderr] 34 | try!(ar.add("debian-binary", mtime, 0, 0, 0o100644, 4) [INFO] [stderr] | ^^^^^^^^ help: consider: `0o100_644` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/mod.rs:39:26 [INFO] [stderr] | [INFO] [stderr] 39 | mtime, 0, 0, 0o100644, SIZE_AUTO)); [INFO] [stderr] | ^^^^^^^^ help: consider: `0o100_644` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/pack/mod.rs:49:26 [INFO] [stderr] | [INFO] [stderr] 49 | mtime, 0, 0, 0o100644, SIZE_AUTO)); [INFO] [stderr] | ^^^^^^^^ help: consider: `0o100_644` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/scanner.rs:97:25 [INFO] [stderr] | [INFO] [stderr] 97 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/scanner.rs:102:25 [INFO] [stderr] | [INFO] [stderr] 102 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/bump.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | return bump_version(ver, Bump::Component(cmp as u8)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `bump_version(ver, Bump::Component(cmp as u8))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/mod.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | return Err("Version not found".into()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err("Version not found".into())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/ver/mod.rs:108:32 [INFO] [stderr] | [INFO] [stderr] 108 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 109 | | if let Some((long, short)) = git_vers { [INFO] [stderr] 110 | | if long != ver && short != ver { [INFO] [stderr] 111 | | result = false; [INFO] [stderr] ... | [INFO] [stderr] 122 | | } [INFO] [stderr] 123 | | } [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] 108 | } else if let Some((long, short)) = git_vers { [INFO] [stderr] 109 | if long != ver && short != ver { [INFO] [stderr] 110 | result = false; [INFO] [stderr] 111 | writeln!(&mut stderr(), [INFO] [stderr] 112 | "{}:{}: version conflict {} != {}", [INFO] [stderr] 113 | filename.display(), lineno, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/ver/mod.rs:165:5 [INFO] [stderr] | [INFO] [stderr] 165 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/ver/mod.rs:238:32 [INFO] [stderr] | [INFO] [stderr] 238 | } else { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 239 | | if citer.scanner().partial.is_none() { [INFO] [stderr] 240 | | // TODO(tailhook) we skip checking partial [INFO] [stderr] 241 | | // version is it's not the first one [INFO] [stderr] ... | [INFO] [stderr] 245 | | } [INFO] [stderr] 246 | | } [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] 238 | } else if citer.scanner().partial.is_none() { [INFO] [stderr] 239 | // TODO(tailhook) we skip checking partial [INFO] [stderr] 240 | // version is it's not the first one [INFO] [stderr] 241 | // We may fix it, but probably it's not a big [INFO] [stderr] 242 | // deal [INFO] [stderr] 243 | prev = Some(ver.to_string()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/version.rs:48:26 [INFO] [stderr] | [INFO] [stderr] 48 | if s.starts_with("v") { [INFO] [stderr] | ^^^ help: try using a char instead: `'v'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/version.rs:84:22 [INFO] [stderr] | [INFO] [stderr] 84 | .unwrap_or(self.0.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.0.len())` [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/version.rs:86:54 [INFO] [stderr] | [INFO] [stderr] 86 | return Some(val.parse().map(Numeric).unwrap_or(String(val))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| String(val))` [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/version.rs:93:22 [INFO] [stderr] | [INFO] [stderr] 93 | .unwrap_or(self.0.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.0.len())` [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: single-character string constant used as pattern [INFO] [stderr] --> src/version.rs:137:34 [INFO] [stderr] | [INFO] [stderr] 137 | || x.starts_with("g") [INFO] [stderr] | ^^^ help: try using a char instead: `'g'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bulk_version.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | format!("Value of bulk-version must be scalar"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Value of bulk-version must be scalar".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/re.rs:12:16 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn compile<'x, S: AsRef>(x: S) -> Result, Error> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/repo/metadata.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | .ok_or(error("No package name in deb package meta"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| error("No package name in deb package meta"))` [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 `ok_or` followed by a function call [INFO] [stderr] --> src/repo/metadata.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | .ok_or(error("No architecture in deb package meta"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| error("No architecture in deb package meta"))` [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 `ok_or` followed by a function call [INFO] [stderr] --> src/repo/metadata.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | .ok_or(error("No version in deb package meta"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| error("No version in deb package meta"))` [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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/repo/ar.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | try!(stream.read(&mut sig)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/repo/ar.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn read_file<'x, P: AsRef>(&mut self, name: P) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/repo/ar.rs:31:19 [INFO] [stderr] | [INFO] [stderr] 31 | fn _read_file<'x>(&mut self, name: &Path) -> io::Result> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] error: any number modulo 1 will be 0 [INFO] [stderr] --> src/repo/ar.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | self.1 = size % 1 == 1; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::modulo_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#modulo_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/deb.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if line.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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: length comparison to zero [INFO] [stderr] --> src/repo/deb.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | if current_hash.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_hash.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/deb.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | if current_hash.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_hash.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repo/debian.rs:157:20 [INFO] [stderr] | [INFO] [stderr] 157 | .split("\n"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/debian.rs:375:12 [INFO] [stderr] | [INFO] [stderr] 375 | if self.suites.len() == 0 && self.components.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.suites.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/debian.rs:375:38 [INFO] [stderr] | [INFO] [stderr] 375 | if self.suites.len() == 0 && self.components.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.components.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/repo/debian.rs:401:17 [INFO] [stderr] | [INFO] [stderr] 401 | let ref mut buf = BufWriter::new(try!(File::create(&tmp))); [INFO] [stderr] | ----^^^^^^^^^^^-------------------------------------------- help: try: `let buf = &mut BufWriter::new(try!(File::create(&tmp)));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/repo/mod.rs:18:39 [INFO] [stderr] | [INFO] [stderr] 18 | fn _repo_add(config: &Path, packages: &Vec, dir: &Path, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/mod.rs:45:12 [INFO] [stderr] | [INFO] [stderr] 45 | if matching.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!matching.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/pack/ar.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | self.archive.0.write(b"\n").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pack/tar.rs:23:24 [INFO] [stderr] | [INFO] [stderr] 23 | head.set_mtime(mtime as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(mtime)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pack/tar.rs:43:24 [INFO] [stderr] | [INFO] [stderr] 43 | head.set_mtime(mtime as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(mtime)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/pack/mod.rs:26:65 [INFO] [stderr] | [INFO] [stderr] 26 | fn write_deb(dest: &Path, dir: &Path, meta: &Metadata, version: &String) [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/pack/mod.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let ref meta = try!(cfg.metadata [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 81 | let meta = &(match $ expr { [INFO] [stderr] 82 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 83 | :: Err ( err ) => { [INFO] [stderr] 84 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 85 | $ crate :: convert :: From :: from ( err ) ) } }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/pack/mod.rs:82:10 [INFO] [stderr] | [INFO] [stderr] 82 | .ok_or(format!("No package metadata is in the config"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("No package metadata is in the config"))` [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: useless use of `format!` [INFO] [stderr] --> src/pack/mod.rs:82:16 [INFO] [stderr] | [INFO] [stderr] 82 | .ok_or(format!("No package metadata is in the config"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No package metadata is in the config".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/commit.rs:42:20 [INFO] [stderr] | [INFO] [stderr] 42 | return Err(format!("all files with version number must be unchanged \ [INFO] [stderr] | ____________________^ [INFO] [stderr] 43 | | before bumping version").into()); [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 42 | return Err("all files with version number must be unchanged \ [INFO] [stderr] 43 | before bumping version".to_string().into()); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/commit.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | Err(format!("no editor found").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"no editor found".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ver/commit.rs:169:10 [INFO] [stderr] | [INFO] [stderr] 169 | .ok_or(format!("can't resolve head"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("can't resolve head"))` [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: useless use of `format!` [INFO] [stderr] --> src/ver/commit.rs:169:16 [INFO] [stderr] | [INFO] [stderr] 169 | .ok_or(format!("can't resolve head"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"can't resolve head".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/ver/commit.rs:212:34 [INFO] [stderr] | [INFO] [stderr] 212 | if !line.starts_with("#") { [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ver/mod.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | / match iter.line(lineno, &line) { [INFO] [stderr] 46 | | Some((start, end)) => { [INFO] [stderr] 47 | | return Ok(Version(line[start..end].to_string())); [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | None => {} [INFO] [stderr] 50 | | } [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] 45 | if let Some((start, end)) = iter.line(lineno, &line) { [INFO] [stderr] 46 | return Ok(Version(line[start..end].to_string())); [INFO] [stderr] 47 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/ver/mod.rs:67:38 [INFO] [stderr] | [INFO] [stderr] 67 | (x, &x[..x.find("-").unwrap_or(x.len())]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| x.len())` [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: single-character string constant used as pattern [INFO] [stderr] --> src/ver/mod.rs:67:33 [INFO] [stderr] | [INFO] [stderr] 67 | (x, &x[..x.find("-").unwrap_or(x.len())]) [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ver/mod.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | / match iter.line(lineno, &line) { [INFO] [stderr] 90 | | Some((start, end)) => { [INFO] [stderr] 91 | | let ver = &line[start..end]; [INFO] [stderr] 92 | | println!("{}:{}: (v{}) {}", [INFO] [stderr] ... | [INFO] [stderr] 125 | | None => {} [INFO] [stderr] 126 | | } [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] 89 | if let Some((start, end)) = iter.line(lineno, &line) { [INFO] [stderr] 90 | let ver = &line[start..end]; [INFO] [stderr] 91 | println!("{}:{}: (v{}) {}", [INFO] [stderr] 92 | filename.display(), lineno, ver, [INFO] [stderr] 93 | line.trim_right()); [INFO] [stderr] 94 | if let Some(ref pver) = prev { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/mod.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | Err(format!("No version found").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No version found".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/mod.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | Err(format!("No version found").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No version found".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `bulk`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/version.rs:48:26 [INFO] [stderr] | [INFO] [stderr] 48 | if s.starts_with("v") { [INFO] [stderr] | ^^^ help: try using a char instead: `'v'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/version.rs:84:22 [INFO] [stderr] | [INFO] [stderr] 84 | .unwrap_or(self.0.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.0.len())` [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/version.rs:86:54 [INFO] [stderr] | [INFO] [stderr] 86 | return Some(val.parse().map(Numeric).unwrap_or(String(val))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| String(val))` [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/version.rs:93:22 [INFO] [stderr] | [INFO] [stderr] 93 | .unwrap_or(self.0.len()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.0.len())` [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: single-character string constant used as pattern [INFO] [stderr] --> src/version.rs:137:34 [INFO] [stderr] | [INFO] [stderr] 137 | || x.starts_with("g") [INFO] [stderr] | ^^^ help: try using a char instead: `'g'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/bulk_version.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | format!("Value of bulk-version must be scalar"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"Value of bulk-version must be scalar".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/re.rs:12:16 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn compile<'x, S: AsRef>(x: S) -> Result, Error> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/repo/metadata.rs:50:22 [INFO] [stderr] | [INFO] [stderr] 50 | .ok_or(error("No package name in deb package meta"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| error("No package name in deb package meta"))` [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 `ok_or` followed by a function call [INFO] [stderr] --> src/repo/metadata.rs:52:22 [INFO] [stderr] | [INFO] [stderr] 52 | .ok_or(error("No architecture in deb package meta"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| error("No architecture in deb package meta"))` [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 `ok_or` followed by a function call [INFO] [stderr] --> src/repo/metadata.rs:54:22 [INFO] [stderr] | [INFO] [stderr] 54 | .ok_or(error("No version in deb package meta"))), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| error("No version in deb package meta"))` [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] error: handle read amount returned or use `Read::read_exact` instead [INFO] [stderr] --> src/repo/ar.rs:17:9 [INFO] [stderr] | [INFO] [stderr] 17 | try!(stream.read(&mut sig)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/repo/ar.rs:26:22 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn read_file<'x, P: AsRef>(&mut self, name: P) [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/repo/ar.rs:31:19 [INFO] [stderr] | [INFO] [stderr] 31 | fn _read_file<'x>(&mut self, name: &Path) -> io::Result> { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] error: any number modulo 1 will be 0 [INFO] [stderr] --> src/repo/ar.rs:60:18 [INFO] [stderr] | [INFO] [stderr] 60 | self.1 = size % 1 == 1; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::modulo_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#modulo_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/deb.rs:22:12 [INFO] [stderr] | [INFO] [stderr] 22 | if line.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `line.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: length comparison to zero [INFO] [stderr] --> src/repo/deb.rs:26:16 [INFO] [stderr] | [INFO] [stderr] 26 | if current_hash.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_hash.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/deb.rs:54:8 [INFO] [stderr] | [INFO] [stderr] 54 | if current_hash.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!current_hash.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repo/debian.rs:157:20 [INFO] [stderr] | [INFO] [stderr] 157 | .split("\n"); [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/debian.rs:375:12 [INFO] [stderr] | [INFO] [stderr] 375 | if self.suites.len() == 0 && self.components.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.suites.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/debian.rs:375:38 [INFO] [stderr] | [INFO] [stderr] 375 | if self.suites.len() == 0 && self.components.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.components.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/repo/debian.rs:401:17 [INFO] [stderr] | [INFO] [stderr] 401 | let ref mut buf = BufWriter::new(try!(File::create(&tmp))); [INFO] [stderr] | ----^^^^^^^^^^^-------------------------------------------- help: try: `let buf = &mut BufWriter::new(try!(File::create(&tmp)));` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/repo/mod.rs:18:39 [INFO] [stderr] | [INFO] [stderr] 18 | fn _repo_add(config: &Path, packages: &Vec, dir: &Path, [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/repo/mod.rs:45:12 [INFO] [stderr] | [INFO] [stderr] 45 | if matching.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!matching.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/pack/ar.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | self.archive.0.write(b"\n").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pack/tar.rs:23:24 [INFO] [stderr] | [INFO] [stderr] 23 | head.set_mtime(mtime as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(mtime)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/pack/tar.rs:43:24 [INFO] [stderr] | [INFO] [stderr] 43 | head.set_mtime(mtime as u64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(mtime)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/pack/mod.rs:26:65 [INFO] [stderr] | [INFO] [stderr] 26 | fn write_deb(dest: &Path, dir: &Path, meta: &Metadata, version: &String) [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/pack/mod.rs:81:9 [INFO] [stderr] | [INFO] [stderr] 81 | let ref meta = try!(cfg.metadata [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 81 | let meta = &(match $ expr { [INFO] [stderr] 82 | $ crate :: result :: Result :: Ok ( val ) => val , $ crate :: result :: Result [INFO] [stderr] 83 | :: Err ( err ) => { [INFO] [stderr] 84 | return $ crate :: result :: Result :: Err ( [INFO] [stderr] 85 | $ crate :: convert :: From :: from ( err ) ) } }); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/pack/mod.rs:82:10 [INFO] [stderr] | [INFO] [stderr] 82 | .ok_or(format!("No package metadata is in the config"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("No package metadata is in the config"))` [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: useless use of `format!` [INFO] [stderr] --> src/pack/mod.rs:82:16 [INFO] [stderr] | [INFO] [stderr] 82 | .ok_or(format!("No package metadata is in the config"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No package metadata is in the config".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/commit.rs:42:20 [INFO] [stderr] | [INFO] [stderr] 42 | return Err(format!("all files with version number must be unchanged \ [INFO] [stderr] | ____________________^ [INFO] [stderr] 43 | | before bumping version").into()); [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 42 | return Err("all files with version number must be unchanged \ [INFO] [stderr] 43 | before bumping version".to_string().into()); [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/commit.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | Err(format!("no editor found").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"no editor found".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/ver/commit.rs:169:10 [INFO] [stderr] | [INFO] [stderr] 169 | .ok_or(format!("can't resolve head"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| format!("can't resolve head"))` [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: useless use of `format!` [INFO] [stderr] --> src/ver/commit.rs:169:16 [INFO] [stderr] | [INFO] [stderr] 169 | .ok_or(format!("can't resolve head"))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"can't resolve head".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/ver/commit.rs:212:34 [INFO] [stderr] | [INFO] [stderr] 212 | if !line.starts_with("#") { [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ver/mod.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | / match iter.line(lineno, &line) { [INFO] [stderr] 46 | | Some((start, end)) => { [INFO] [stderr] 47 | | return Ok(Version(line[start..end].to_string())); [INFO] [stderr] 48 | | } [INFO] [stderr] 49 | | None => {} [INFO] [stderr] 50 | | } [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] 45 | if let Some((start, end)) = iter.line(lineno, &line) { [INFO] [stderr] 46 | return Ok(Version(line[start..end].to_string())); [INFO] [stderr] 47 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/ver/mod.rs:67:38 [INFO] [stderr] | [INFO] [stderr] 67 | (x, &x[..x.find("-").unwrap_or(x.len())]) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| x.len())` [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: single-character string constant used as pattern [INFO] [stderr] --> src/ver/mod.rs:67:33 [INFO] [stderr] | [INFO] [stderr] 67 | (x, &x[..x.find("-").unwrap_or(x.len())]) [INFO] [stderr] | ^^^ help: try using a char instead: `'-'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ver/mod.rs:89:17 [INFO] [stderr] | [INFO] [stderr] 89 | / match iter.line(lineno, &line) { [INFO] [stderr] 90 | | Some((start, end)) => { [INFO] [stderr] 91 | | let ver = &line[start..end]; [INFO] [stderr] 92 | | println!("{}:{}: (v{}) {}", [INFO] [stderr] ... | [INFO] [stderr] 125 | | None => {} [INFO] [stderr] 126 | | } [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] 89 | if let Some((start, end)) = iter.line(lineno, &line) { [INFO] [stderr] 90 | let ver = &line[start..end]; [INFO] [stderr] 91 | println!("{}:{}: (v{}) {}", [INFO] [stderr] 92 | filename.display(), lineno, ver, [INFO] [stderr] 93 | line.trim_right()); [INFO] [stderr] 94 | if let Some(ref pver) = prev { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/mod.rs:132:13 [INFO] [stderr] | [INFO] [stderr] 132 | Err(format!("No version found").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No version found".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/ver/mod.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | Err(format!("No version found").into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No version found".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `bulk`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5411fdc0b98787536600b41030fc78d49fd26a73a0959dff18bd61f0519927a0"` [INFO] running `"docker" "rm" "-f" "5411fdc0b98787536600b41030fc78d49fd26a73a0959dff18bd61f0519927a0"` [INFO] [stdout] 5411fdc0b98787536600b41030fc78d49fd26a73a0959dff18bd61f0519927a0