[INFO] cloning repository https://github.com/BenjaminRayner/Rust-Package-Manager [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/BenjaminRayner/Rust-Package-Manager" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenjaminRayner%2FRust-Package-Manager", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenjaminRayner%2FRust-Package-Manager'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bea7d8bd1f904979fde63e9fab8209d7c5ebdebf [INFO] linting BenjaminRayner/Rust-Package-Manager against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBenjaminRayner%2FRust-Package-Manager" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/BenjaminRayner/Rust-Package-Manager [INFO] finished tweaking git repo https://github.com/BenjaminRayner/Rust-Package-Manager [INFO] tweaked toml for git repo https://github.com/BenjaminRayner/Rust-Package-Manager written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/BenjaminRayner/Rust-Package-Manager on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/BenjaminRayner/Rust-Package-Manager already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded fd-lock v3.0.2 [INFO] [stderr] Downloaded cc v1.0.72 [INFO] [stderr] Downloaded fixedbitset v0.1.9 [INFO] [stderr] Downloaded error-code v2.3.0 [INFO] [stderr] Downloaded clipboard-win v4.3.0 [INFO] [stderr] Downloaded str-buf v1.0.5 [INFO] [stderr] Downloaded ordermap v0.3.5 [INFO] [stderr] Downloaded rustyline v9.1.2 [INFO] [stderr] Downloaded serde v1.0.133 [INFO] [stderr] Downloaded curl v0.4.42 [INFO] [stderr] Downloaded petgraph v0.4.13 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.28.0 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.28.0 [INFO] [stderr] Downloaded windows_i686_msvc v0.28.0 [INFO] [stderr] Downloaded windows_i686_gnu v0.28.0 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.28.0 [INFO] [stderr] Downloaded curl-sys v0.4.52+curl-7.81.0 [INFO] [stderr] Downloaded windows-sys v0.28.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6c3cc1ba8b8b947e34e7d106bd4337fda2d8211b1bd2fc15ca2796a61f25e570 [INFO] running `Command { std: "docker" "start" "-a" "6c3cc1ba8b8b947e34e7d106bd4337fda2d8211b1bd2fc15ca2796a61f25e570", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6c3cc1ba8b8b947e34e7d106bd4337fda2d8211b1bd2fc15ca2796a61f25e570", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6c3cc1ba8b8b947e34e7d106bd4337fda2d8211b1bd2fc15ca2796a61f25e570", kill_on_drop: false }` [INFO] [stdout] 6c3cc1ba8b8b947e34e7d106bd4337fda2d8211b1bd2fc15ca2796a61f25e570 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 53306034e664b0c54a42fbfc82af0fb103f042a23e7990d9bfb443a81d44652c [INFO] running `Command { std: "docker" "start" "-a" "53306034e664b0c54a42fbfc82af0fb103f042a23e7990d9bfb443a81d44652c", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling libc v0.2.112 [INFO] [stderr] Compiling cc v1.0.72 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling serde v1.0.133 [INFO] [stderr] Checking smallvec v1.7.0 [INFO] [stderr] Checking regex-automata v0.1.10 [INFO] [stderr] Compiling curl v0.4.42 [INFO] [stderr] Checking ordermap v0.3.5 [INFO] [stderr] Checking fixedbitset v0.1.9 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking unicode-segmentation v1.8.0 [INFO] [stderr] Checking regex-syntax v0.6.25 [INFO] [stderr] Checking ryu v1.0.9 [INFO] [stderr] Checking utf8parse v0.2.0 [INFO] [stderr] Checking itertools v0.10.3 [INFO] [stderr] Checking urlencoding v2.1.0 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Checking petgraph v0.4.13 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking aho-corasick v0.7.18 [INFO] [stderr] Checking csv-core v0.1.10 [INFO] [stderr] Compiling openssl-sys v0.9.72 [INFO] [stderr] Compiling libz-sys v1.1.3 [INFO] [stderr] Compiling curl-sys v0.4.52+curl-7.81.0 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking nix v0.23.1 [INFO] [stderr] Checking socket2 v0.4.2 [INFO] [stderr] Checking fd-lock v3.0.2 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking bstr v0.2.17 [INFO] [stderr] Checking csv v1.1.6 [INFO] [stderr] Checking rustyline v9.1.2 [INFO] [stderr] Checking rpkg v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / return match self { [INFO] [stdout] 17 | | VersionRelation::StrictlyLess => write!(f, "<<"), [INFO] [stdout] 18 | | VersionRelation::LessOrEqual => write!(f, "<="), [INFO] [stdout] 19 | | VersionRelation::Equal => write!(f, "="), [INFO] [stdout] 20 | | VersionRelation::GreaterOrEqual => write!(f, ">="), [INFO] [stdout] 21 | | VersionRelation::StrictlyGreater => write!(f, ">>") [INFO] [stdout] 22 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ match self { [INFO] [stdout] 17 + VersionRelation::StrictlyLess => write!(f, "<<"), [INFO] [stdout] 18 + VersionRelation::LessOrEqual => write!(f, "<="), [INFO] [stdout] 19 + VersionRelation::Equal => write!(f, "="), [INFO] [stdout] 20 + VersionRelation::GreaterOrEqual => write!(f, ">="), [INFO] [stdout] 21 + VersionRelation::StrictlyGreater => write!(f, ">>") [INFO] [stdout] 22 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/debversion.rs:83:1 [INFO] [stdout] | [INFO] [stdout] 83 | / impl PartialOrd for DebianVersionNum { [INFO] [stdout] 84 | | // https://www.debian.org/doc/debian-policy/ch-controlfields.html#version [INFO] [stdout] 85 | | // wow this is painful [INFO] [stdout] 86 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] ... | [INFO] [stdout] 181 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 86 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 87 - fn extract_nonnum(s: &str) -> (&str,&str) { [INFO] [stdout] 88 - let first_digit = s.find(|c:char| c.is_ascii_digit()); [INFO] [stdout] 89 - match first_digit { [INFO] [stdout] 90 - None => (s, ""), [INFO] [stdout] 91 - Some(fd) => { [INFO] [stdout] 92 - let (nonnum, rest) = s.split_at(fd); [INFO] [stdout] 93 - return (nonnum, rest); [INFO] [stdout] 94 - } [INFO] [stdout] 95 - } [INFO] [stdout] 96 - } [INFO] [stdout] 97 - fn extract_num(s: &str) -> (&str,&str) { [INFO] [stdout] 98 - let first_nondigit = s.find(|c:char| !c.is_ascii_digit()); [INFO] [stdout] 99 - match first_nondigit { [INFO] [stdout] 100 - None => (s, ""), [INFO] [stdout] 101 - Some(fd) => { [INFO] [stdout] 102 - let (num, rest) = s.split_at(fd); [INFO] [stdout] 103 - return (num, rest); [INFO] [stdout] 104 - } [INFO] [stdout] 105 - } [INFO] [stdout] 106 - } [INFO] [stdout] 107 - [INFO] [stdout] 108 - fn to_debian_chars(s: &str) -> Vec { [INFO] [stdout] 109 - let mut v = vec![]; [INFO] [stdout] 110 - // all the letters sort earlier than all the non-letters and so that a tilde sorts before anything, even the end of a part [INFO] [stdout] 111 - // . + - ~ [INFO] [stdout] 112 - for c in s.bytes() { [INFO] [stdout] 113 - let cc:i32 = match c { [INFO] [stdout] 114 - 46 /* '.' */ => 256+46, [INFO] [stdout] 115 - 43 /* '+' */ => 256+43, [INFO] [stdout] 116 - 45 /* '-' */ => 256+45, [INFO] [stdout] 117 - 126 /* '~' */ => -1, [INFO] [stdout] 118 - _ => i32::from(c) }; [INFO] [stdout] 119 - v.push(cc); [INFO] [stdout] 120 - } [INFO] [stdout] 121 - v [INFO] [stdout] 122 - } [INFO] [stdout] 123 - [INFO] [stdout] 124 - fn debian_nonnum_cmp(s: &str, o: &str) -> std::cmp::Ordering { [INFO] [stdout] 125 - let (d_s, d_o) = (to_debian_chars(s), to_debian_chars(o)); [INFO] [stdout] 126 - for it in d_s.iter().zip(d_o.iter()) { [INFO] [stdout] 127 - let (c_s, c_o) = it; [INFO] [stdout] 128 - if c_s < c_o { return Less; } [INFO] [stdout] 129 - if c_s > c_o { return Greater; } [INFO] [stdout] 130 - } [INFO] [stdout] 131 - // aa < aaa [INFO] [stdout] 132 - if s.len() < o.len() { return Less; } [INFO] [stdout] 133 - // aa~ < aa [INFO] [stdout] 134 - if s.len() > o.len() && s.ends_with('~') { return Less; } [INFO] [stdout] 135 - // aaa > aa [INFO] [stdout] 136 - if s.len() > o.len() { return Greater; } [INFO] [stdout] 137 - Equal [INFO] [stdout] 138 - } [INFO] [stdout] 139 - [INFO] [stdout] 140 - fn debian_cmp(self_vers: &str, other_vers: &str) -> std::cmp::Ordering { [INFO] [stdout] 141 - let mut sv = self_vers; [INFO] [stdout] 142 - let mut ov = other_vers; [INFO] [stdout] 143 - loop { [INFO] [stdout] 144 - if sv.is_empty() && ov.is_empty() { [INFO] [stdout] 145 - return Equal; [INFO] [stdout] 146 - } [INFO] [stdout] 147 - let (self_nonnum, self_rest) = extract_nonnum(sv); [INFO] [stdout] 148 - let (other_nonnum, other_rest) = extract_nonnum(ov); [INFO] [stdout] 149 - match debian_nonnum_cmp(self_nonnum, other_nonnum) { [INFO] [stdout] 150 - Less => return Less, [INFO] [stdout] 151 - Greater => return Greater, [INFO] [stdout] 152 - _ => () [INFO] [stdout] 153 - } [INFO] [stdout] 154 - [INFO] [stdout] 155 - let (self_num, self_rest1) = extract_num(self_rest); [INFO] [stdout] 156 - let (other_num, other_rest1) = extract_num(other_rest); [INFO] [stdout] 157 - [INFO] [stdout] 158 - let (sn_i, on_i) = ( [INFO] [stdout] 159 - match self_num.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] 160 - match other_num.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] 161 - [INFO] [stdout] 162 - if sn_i != on_i { [INFO] [stdout] 163 - return sn_i.partial_cmp(&on_i).unwrap(); [INFO] [stdout] 164 - } [INFO] [stdout] 165 - sv = self_rest1; ov = other_rest1; [INFO] [stdout] 166 - } [INFO] [stdout] 167 - } [INFO] [stdout] 168 - [INFO] [stdout] 169 - let (epoch, other_epoch) = ( [INFO] [stdout] 170 - match self.epoch.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] 171 - match other.epoch.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] 172 - if epoch != other_epoch { [INFO] [stdout] 173 - return Some(epoch.partial_cmp(&other_epoch).unwrap()); [INFO] [stdout] 174 - } [INFO] [stdout] 175 - let ups = debian_cmp(&self.upstream, &other.upstream); [INFO] [stdout] 176 - if ups != Equal { [INFO] [stdout] 177 - return Some(ups); [INFO] [stdout] 178 - } [INFO] [stdout] 179 - return Some(debian_cmp(&self.debian, &other.debian)); [INFO] [stdout] 180 - } [INFO] [stdout] 86 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | return Some(debian_cmp(&self.debian, &other.debian)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 179 - return Some(debian_cmp(&self.debian, &other.debian)); [INFO] [stdout] 179 + Some(debian_cmp(&self.debian, &other.debian)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | return (nonnum, rest); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return (nonnum, rest); [INFO] [stdout] 93 + (nonnum, rest) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:103:21 [INFO] [stdout] | [INFO] [stdout] 103 | return (num, rest); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 103 - return (num, rest); [INFO] [stdout] 103 + (num, rest) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / return match self { [INFO] [stdout] 17 | | VersionRelation::StrictlyLess => write!(f, "<<"), [INFO] [stdout] 18 | | VersionRelation::LessOrEqual => write!(f, "<="), [INFO] [stdout] 19 | | VersionRelation::Equal => write!(f, "="), [INFO] [stdout] 20 | | VersionRelation::GreaterOrEqual => write!(f, ">="), [INFO] [stdout] 21 | | VersionRelation::StrictlyGreater => write!(f, ">>") [INFO] [stdout] 22 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 16 ~ match self { [INFO] [stdout] 17 + VersionRelation::StrictlyLess => write!(f, "<<"), [INFO] [stdout] 18 + VersionRelation::LessOrEqual => write!(f, "<="), [INFO] [stdout] 19 + VersionRelation::Equal => write!(f, "="), [INFO] [stdout] 20 + VersionRelation::GreaterOrEqual => write!(f, ">="), [INFO] [stdout] 21 + VersionRelation::StrictlyGreater => write!(f, ">>") [INFO] [stdout] 22 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | match self_num.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `self_num.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | match other_num.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `other_num.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | match self.epoch.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `self.epoch.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | match other.epoch.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `other.epoch.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / return match op { [INFO] [stdout] 185 | | VersionRelation::StrictlyLess => first < second, [INFO] [stdout] 186 | | VersionRelation::LessOrEqual => first <= second, [INFO] [stdout] 187 | | VersionRelation::Equal => first == second, [INFO] [stdout] 188 | | VersionRelation::GreaterOrEqual => first >= second, [INFO] [stdout] 189 | | VersionRelation::StrictlyGreater => first > second [INFO] [stdout] 190 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 184 ~ match op { [INFO] [stdout] 185 + VersionRelation::StrictlyLess => first < second, [INFO] [stdout] 186 + VersionRelation::LessOrEqual => first <= second, [INFO] [stdout] 187 + VersionRelation::Equal => first == second, [INFO] [stdout] 188 + VersionRelation::GreaterOrEqual => first >= second, [INFO] [stdout] 189 + VersionRelation::StrictlyGreater => first > second [INFO] [stdout] 190 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/debversion.rs:83:1 [INFO] [stdout] | [INFO] [stdout] 83 | / impl PartialOrd for DebianVersionNum { [INFO] [stdout] 84 | | // https://www.debian.org/doc/debian-policy/ch-controlfields.html#version [INFO] [stdout] 85 | | // wow this is painful [INFO] [stdout] 86 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] ... | [INFO] [stdout] 181 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 86 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 87 - fn extract_nonnum(s: &str) -> (&str,&str) { [INFO] [stdout] 88 - let first_digit = s.find(|c:char| c.is_ascii_digit()); [INFO] [stdout] 89 - match first_digit { [INFO] [stdout] 90 - None => (s, ""), [INFO] [stdout] 91 - Some(fd) => { [INFO] [stdout] 92 - let (nonnum, rest) = s.split_at(fd); [INFO] [stdout] 93 - return (nonnum, rest); [INFO] [stdout] 94 - } [INFO] [stdout] 95 - } [INFO] [stdout] 96 - } [INFO] [stdout] 97 - fn extract_num(s: &str) -> (&str,&str) { [INFO] [stdout] 98 - let first_nondigit = s.find(|c:char| !c.is_ascii_digit()); [INFO] [stdout] 99 - match first_nondigit { [INFO] [stdout] 100 - None => (s, ""), [INFO] [stdout] 101 - Some(fd) => { [INFO] [stdout] 102 - let (num, rest) = s.split_at(fd); [INFO] [stdout] 103 - return (num, rest); [INFO] [stdout] 104 - } [INFO] [stdout] 105 - } [INFO] [stdout] 106 - } [INFO] [stdout] 107 - [INFO] [stdout] 108 - fn to_debian_chars(s: &str) -> Vec { [INFO] [stdout] 109 - let mut v = vec![]; [INFO] [stdout] 110 - // all the letters sort earlier than all the non-letters and so that a tilde sorts before anything, even the end of a part [INFO] [stdout] 111 - // . + - ~ [INFO] [stdout] 112 - for c in s.bytes() { [INFO] [stdout] 113 - let cc:i32 = match c { [INFO] [stdout] 114 - 46 /* '.' */ => 256+46, [INFO] [stdout] 115 - 43 /* '+' */ => 256+43, [INFO] [stdout] 116 - 45 /* '-' */ => 256+45, [INFO] [stdout] 117 - 126 /* '~' */ => -1, [INFO] [stdout] 118 - _ => i32::from(c) }; [INFO] [stdout] 119 - v.push(cc); [INFO] [stdout] 120 - } [INFO] [stdout] 121 - v [INFO] [stdout] 122 - } [INFO] [stdout] 123 - [INFO] [stdout] 124 - fn debian_nonnum_cmp(s: &str, o: &str) -> std::cmp::Ordering { [INFO] [stdout] 125 - let (d_s, d_o) = (to_debian_chars(s), to_debian_chars(o)); [INFO] [stdout] 126 - for it in d_s.iter().zip(d_o.iter()) { [INFO] [stdout] 127 - let (c_s, c_o) = it; [INFO] [stdout] 128 - if c_s < c_o { return Less; } [INFO] [stdout] 129 - if c_s > c_o { return Greater; } [INFO] [stdout] 130 - } [INFO] [stdout] 131 - // aa < aaa [INFO] [stdout] 132 - if s.len() < o.len() { return Less; } [INFO] [stdout] 133 - // aa~ < aa [INFO] [stdout] 134 - if s.len() > o.len() && s.ends_with('~') { return Less; } [INFO] [stdout] 135 - // aaa > aa [INFO] [stdout] 136 - if s.len() > o.len() { return Greater; } [INFO] [stdout] 137 - Equal [INFO] [stdout] 138 - } [INFO] [stdout] 139 - [INFO] [stdout] 140 - fn debian_cmp(self_vers: &str, other_vers: &str) -> std::cmp::Ordering { [INFO] [stdout] 141 - let mut sv = self_vers; [INFO] [stdout] 142 - let mut ov = other_vers; [INFO] [stdout] 143 - loop { [INFO] [stdout] 144 - if sv.is_empty() && ov.is_empty() { [INFO] [stdout] 145 - return Equal; [INFO] [stdout] 146 - } [INFO] [stdout] 147 - let (self_nonnum, self_rest) = extract_nonnum(sv); [INFO] [stdout] 148 - let (other_nonnum, other_rest) = extract_nonnum(ov); [INFO] [stdout] 149 - match debian_nonnum_cmp(self_nonnum, other_nonnum) { [INFO] [stdout] 150 - Less => return Less, [INFO] [stdout] 151 - Greater => return Greater, [INFO] [stdout] 152 - _ => () [INFO] [stdout] 153 - } [INFO] [stdout] 154 - [INFO] [stdout] 155 - let (self_num, self_rest1) = extract_num(self_rest); [INFO] [stdout] 156 - let (other_num, other_rest1) = extract_num(other_rest); [INFO] [stdout] 157 - [INFO] [stdout] 158 - let (sn_i, on_i) = ( [INFO] [stdout] 159 - match self_num.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] 160 - match other_num.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] 161 - [INFO] [stdout] 162 - if sn_i != on_i { [INFO] [stdout] 163 - return sn_i.partial_cmp(&on_i).unwrap(); [INFO] [stdout] 164 - } [INFO] [stdout] 165 - sv = self_rest1; ov = other_rest1; [INFO] [stdout] 166 - } [INFO] [stdout] 167 - } [INFO] [stdout] 168 - [INFO] [stdout] 169 - let (epoch, other_epoch) = ( [INFO] [stdout] 170 - match self.epoch.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] 171 - match other.epoch.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] 172 - if epoch != other_epoch { [INFO] [stdout] 173 - return Some(epoch.partial_cmp(&other_epoch).unwrap()); [INFO] [stdout] 174 - } [INFO] [stdout] 175 - let ups = debian_cmp(&self.upstream, &other.upstream); [INFO] [stdout] 176 - if ups != Equal { [INFO] [stdout] 177 - return Some(ups); [INFO] [stdout] 178 - } [INFO] [stdout] 179 - return Some(debian_cmp(&self.debian, &other.debian)); [INFO] [stdout] 180 - } [INFO] [stdout] 86 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | return Some(debian_cmp(&self.debian, &other.debian)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 179 - return Some(debian_cmp(&self.debian, &other.debian)); [INFO] [stdout] 179 + Some(debian_cmp(&self.debian, &other.debian)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:93:21 [INFO] [stdout] | [INFO] [stdout] 93 | return (nonnum, rest); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 93 - return (nonnum, rest); [INFO] [stdout] 93 + (nonnum, rest) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:103:21 [INFO] [stdout] | [INFO] [stdout] 103 | return (num, rest); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 103 - return (num, rest); [INFO] [stdout] 103 + (num, rest) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:159:21 [INFO] [stdout] | [INFO] [stdout] 159 | match self_num.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `self_num.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::manual_unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | match other_num.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `other_num.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | match self.epoch.parse::() { Err(_) => 0, Ok(e) => e }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `self.epoch.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match can be simplified with `.unwrap_or_default()` [INFO] [stdout] --> src/debversion.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | match other.epoch.parse::() { Err(_) => 0, Ok(e) => e }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: ascribe the type i32 and replace your expression with: `other.epoch.parse::().unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_unwrap_or_default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/debversion.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | / return match op { [INFO] [stdout] 185 | | VersionRelation::StrictlyLess => first < second, [INFO] [stdout] 186 | | VersionRelation::LessOrEqual => first <= second, [INFO] [stdout] 187 | | VersionRelation::Equal => first == second, [INFO] [stdout] 188 | | VersionRelation::GreaterOrEqual => first >= second, [INFO] [stdout] 189 | | VersionRelation::StrictlyGreater => first > second [INFO] [stdout] 190 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 184 ~ match op { [INFO] [stdout] 185 + VersionRelation::StrictlyLess => first < second, [INFO] [stdout] 186 + VersionRelation::LessOrEqual => first <= second, [INFO] [stdout] 187 + VersionRelation::Equal => first == second, [INFO] [stdout] 188 + VersionRelation::GreaterOrEqual => first >= second, [INFO] [stdout] 189 + VersionRelation::StrictlyGreater => first > second [INFO] [stdout] 190 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt_name` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:28:68 [INFO] [stdout] | [INFO] [stdout] 24 | ... if alt_name.is_none() { [INFO] [stdout] | --------------------- help: try: `if let Some() = alt_name` [INFO] [stdout] ... [INFO] [stdout] 28 | ... println!("+ {} satisfied by installed version {}", alt_name.unwrap(), self.get_installed_debver(alt_name.unwrap()).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt_name` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:28:113 [INFO] [stdout] | [INFO] [stdout] 24 | ... if alt_name.is_none() { [INFO] [stdout] | --------------------- help: try: `if let Some() = alt_name` [INFO] [stdout] ... [INFO] [stdout] 28 | ... println!("+ {} satisfied by installed version {}", alt_name.unwrap(), self.get_installed_debver(alt_name.unwrap()).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/deps_available.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | if !alt.rel_version.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `alt.rel_version.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt.rel_version` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:49:37 [INFO] [stdout] | [INFO] [stdout] 47 | if !alt.rel_version.is_none() [INFO] [stdout] | ------------------------- the check is happening here [INFO] [stdout] 48 | { [INFO] [stdout] 49 | let (op, alt_ver) = alt.rel_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt_name` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:28:68 [INFO] [stdout] | [INFO] [stdout] 24 | ... if alt_name.is_none() { [INFO] [stdout] | --------------------- help: try: `if let Some() = alt_name` [INFO] [stdout] ... [INFO] [stdout] 28 | ... println!("+ {} satisfied by installed version {}", alt_name.unwrap(), self.get_installed_debver(alt_name.unwrap()).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/deps_available.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return None; [INFO] [stdout] 59 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt_name` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:28:113 [INFO] [stdout] | [INFO] [stdout] 24 | ... if alt_name.is_none() { [INFO] [stdout] | --------------------- help: try: `if let Some() = alt_name` [INFO] [stdout] ... [INFO] [stdout] 28 | ... println!("+ {} satisfied by installed version {}", alt_name.unwrap(), self.get_installed_debver(alt_name.unwrap()).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/deps_available.rs:78:16 [INFO] [stdout] | [INFO] [stdout] 78 | if !alt.rel_version.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `alt.rel_version.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt.rel_version` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:80:37 [INFO] [stdout] | [INFO] [stdout] 78 | if !alt.rel_version.is_none() [INFO] [stdout] | ------------------------- the check is happening here [INFO] [stdout] 79 | { [INFO] [stdout] 80 | let (op, alt_ver) = alt.rel_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/deps_available.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return result; [INFO] [stdout] 86 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/deps_available.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | if !alt.rel_version.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `alt.rel_version.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt.rel_version` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:49:37 [INFO] [stdout] | [INFO] [stdout] 47 | if !alt.rel_version.is_none() [INFO] [stdout] | ------------------------- the check is happening here [INFO] [stdout] 48 | { [INFO] [stdout] 49 | let (op, alt_ver) = alt.rel_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/deps_available.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 59 - return None; [INFO] [stdout] 59 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/solvers.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return dependency_set; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 - return dependency_set; [INFO] [stdout] 43 + dependency_set [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/deps_available.rs:78:16 [INFO] [stdout] | [INFO] [stdout] 78 | if !alt.rel_version.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `alt.rel_version.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `alt.rel_version` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/deps_available.rs:80:37 [INFO] [stdout] | [INFO] [stdout] 78 | if !alt.rel_version.is_none() [INFO] [stdout] | ------------------------- the check is happening here [INFO] [stdout] 79 | { [INFO] [stdout] 80 | let (op, alt_ver) = alt.rel_version.as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `alt_dep.get(0)` [INFO] [stdout] --> src/packages/solvers.rs:32:35 [INFO] [stdout] | [INFO] [stdout] 32 | let alt_dep_num = alt_dep.get(0).unwrap().package_num; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `alt_dep.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/deps_available.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | return result; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 86 - return result; [INFO] [stdout] 86 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/solvers.rs:43:9 [INFO] [stdout] | [INFO] [stdout] 43 | return dependency_set; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 43 - return dependency_set; [INFO] [stdout] 43 + dependency_set [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/solvers.rs:76:24 [INFO] [stdout] | [INFO] [stdout] 76 | if !self.dep_is_satisfied(alt_dep).is_none() { continue; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.dep_is_satisfied(alt_dep).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/solvers.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return dependencies_to_add; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return dependencies_to_add; [INFO] [stdout] 120 + dependencies_to_add [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `alt_dep.get(0)` [INFO] [stdout] --> src/packages/solvers.rs:70:35 [INFO] [stdout] | [INFO] [stdout] 70 | let alt_dep_num = alt_dep.get(0).unwrap().package_num; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `alt_dep.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:89:114 [INFO] [stdout] | [INFO] [stdout] 89 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^ help: change this to: `alt_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `alt_dep.get(0)` [INFO] [stdout] --> src/packages/solvers.rs:32:35 [INFO] [stdout] | [INFO] [stdout] 32 | let alt_dep_num = alt_dep.get(0).unwrap().package_num; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `alt_dep.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/solvers.rs:76:24 [INFO] [stdout] | [INFO] [stdout] 76 | if !self.dep_is_satisfied(alt_dep).is_none() { continue; } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.dep_is_satisfied(alt_dep).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/solvers.rs:120:9 [INFO] [stdout] | [INFO] [stdout] 120 | return dependencies_to_add; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 120 - return dependencies_to_add; [INFO] [stdout] 120 + dependencies_to_add [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:89:124 [INFO] [stdout] | [INFO] [stdout] 89 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `highest_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `alt_dep.get(0)` [INFO] [stdout] --> src/packages/solvers.rs:70:35 [INFO] [stdout] | [INFO] [stdout] 70 | let alt_dep_num = alt_dep.get(0).unwrap().package_num; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `alt_dep.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:107:114 [INFO] [stdout] | [INFO] [stdout] 107 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^ help: change this to: `alt_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:107:124 [INFO] [stdout] | [INFO] [stdout] 107 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `highest_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:89:114 [INFO] [stdout] | [INFO] [stdout] 89 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^ help: change this to: `alt_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/packages/parsers.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | / for line in lines { [INFO] [stdout] 23 | | if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/packages/parsers.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | / if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 51 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 22 ~ for ip in lines.flatten() { [INFO] [stdout] 23 + // do something with ip [INFO] [stdout] 24 + [INFO] [stdout] 25 + // match the line as key value pair [INFO] [stdout] 26 + match kv_regexp.captures(&ip) [INFO] [stdout] 27 + { [INFO] [stdout] 28 + None => (), [INFO] [stdout] 29 + Some(caps) => [INFO] [stdout] 30 + { [INFO] [stdout] 31 + // parse line into key val [INFO] [stdout] 32 + let (key, value) = (caps.name("key").unwrap().as_str(), caps.name("value").unwrap().as_str()); [INFO] [stdout] 33 + match key [INFO] [stdout] 34 + { [INFO] [stdout] 35 + // if key is package, insert name into hash [INFO] [stdout] 36 + "Package" => [INFO] [stdout] 37 + { [INFO] [stdout] 38 + current_package_num = self.get_package_num_inserting(value); [INFO] [stdout] 39 + } [INFO] [stdout] 40 + // if key is version, map current package to version [INFO] [stdout] 41 + "Version" => [INFO] [stdout] 42 + { [INFO] [stdout] 43 + let debver = value.trim().parse::().unwrap(); [INFO] [stdout] 44 + self.installed_debvers.insert(current_package_num, debver); [INFO] [stdout] 45 + } [INFO] [stdout] 46 + _ => () [INFO] [stdout] 47 + } [INFO] [stdout] 48 + } [INFO] [stdout] 49 + } [INFO] [stdout] 50 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:89:124 [INFO] [stdout] | [INFO] [stdout] 89 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `highest_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:107:114 [INFO] [stdout] | [INFO] [stdout] 107 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^ help: change this to: `alt_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/packages/solvers.rs:107:124 [INFO] [stdout] | [INFO] [stdout] 107 | ... if debversion::cmp_debversion_with_op(&debversion::VersionRelation::StrictlyGreater, &alt_ver, &highest_ver) [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `highest_ver` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/parsers.rs:121:56 [INFO] [stdout] | [INFO] [stdout] 121 | ... if !ver.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `ver.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `ver` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/parsers.rs:124:67 [INFO] [stdout] | [INFO] [stdout] 121 | ... if !ver.is_none() [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 124 | ... let ver = ver.unwrap().as_str(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/packages/parsers.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | / for line in lines { [INFO] [stdout] 66 | | if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 143 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/packages/parsers.rs:66:17 [INFO] [stdout] | [INFO] [stdout] 66 | / if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 142 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 65 ~ for ip in lines.flatten() { [INFO] [stdout] 66 + // do more things with ip [INFO] [stdout] 67 + [INFO] [stdout] 68 + // match the line as key value pair [INFO] [stdout] 69 + match kv_regexp.captures(&ip) [INFO] [stdout] 70 + { [INFO] [stdout] 71 + None => (), [INFO] [stdout] 72 + Some(caps) => [INFO] [stdout] 73 + { [INFO] [stdout] 74 + // parse line into key val [INFO] [stdout] 75 + let (key, value) = (caps.name("key").unwrap().as_str(), caps.name("value").unwrap().as_str()); [INFO] [stdout] 76 + match key [INFO] [stdout] 77 + { [INFO] [stdout] 78 + // if key is package, insert name into hash [INFO] [stdout] 79 + "Package" => [INFO] [stdout] 80 + { [INFO] [stdout] 81 + current_package_num = self.get_package_num_inserting(value); [INFO] [stdout] 82 + } [INFO] [stdout] 83 + // if key is version, map current package to version [INFO] [stdout] 84 + "Version" => [INFO] [stdout] 85 + { [INFO] [stdout] 86 + let debver = value.trim().parse::().unwrap(); [INFO] [stdout] 87 + self.available_debvers.insert(current_package_num, debver); [INFO] [stdout] 88 + } [INFO] [stdout] 89 + // map current package to md5 [INFO] [stdout] 90 + "MD5sum" => [INFO] [stdout] 91 + { [INFO] [stdout] 92 + self.md5sums.insert(current_package_num, value.to_string()); [INFO] [stdout] 93 + } [INFO] [stdout] 94 + // map current package to vector of dependencies [INFO] [stdout] 95 + "Depends" => [INFO] [stdout] 96 + { [INFO] [stdout] 97 + // make dependency list [INFO] [stdout] 98 + let dep_list = value.split(','); [INFO] [stdout] 99 + let mut dep_vec : Vec = Vec::new(); [INFO] [stdout] 100 + for dep in dep_list { [INFO] [stdout] 101 + [INFO] [stdout] 102 + // for each dependency, make alternative list [INFO] [stdout] 103 + let alt_list = dep.split('|'); [INFO] [stdout] 104 + let mut alt_vec : Vec = Vec::new(); [INFO] [stdout] 105 + for alt in alt_list { [INFO] [stdout] 106 + [INFO] [stdout] 107 + // store info for each alternative [INFO] [stdout] 108 + let mut alt_info = RelVersionedPackageNum {package_num: 0, rel_version: None}; [INFO] [stdout] 109 + // match for package name, version, & associated operation [INFO] [stdout] 110 + match pkgver_regexp.captures(alt) [INFO] [stdout] 111 + { [INFO] [stdout] 112 + None => (), [INFO] [stdout] 113 + Some(caps) => [INFO] [stdout] 114 + { [INFO] [stdout] 115 + // parse the alt info and add to struct [INFO] [stdout] 116 + let (pkg, op, ver) = (caps.name("pkg").unwrap().as_str(), caps.name("op"), caps.name("ver")); [INFO] [stdout] 117 + alt_info.package_num = self.get_package_num_inserting(pkg); [INFO] [stdout] 118 + [INFO] [stdout] 119 + // some dependencies dont have version (assumes latest version when installed) [INFO] [stdout] 120 + if !ver.is_none() [INFO] [stdout] 121 + { [INFO] [stdout] 122 + let op = op.unwrap().as_str().parse::().unwrap(); [INFO] [stdout] 123 + let ver = ver.unwrap().as_str(); [INFO] [stdout] 124 + alt_info.rel_version = Some((op, ver.to_string())); [INFO] [stdout] 125 + } [INFO] [stdout] 126 + [INFO] [stdout] 127 + // add alternatives [INFO] [stdout] 128 + alt_vec.push(alt_info); [INFO] [stdout] 129 + } [INFO] [stdout] 130 + } [INFO] [stdout] 131 + } [INFO] [stdout] 132 + // add dependencies [INFO] [stdout] 133 + dep_vec.push(alt_vec); [INFO] [stdout] 134 + } [INFO] [stdout] 135 + self.dependencies.insert(current_package_num, dep_vec); [INFO] [stdout] 136 + } [INFO] [stdout] 137 + _ => () [INFO] [stdout] 138 + } [INFO] [stdout] 139 + } [INFO] [stdout] 140 + } [INFO] [stdout] 141 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/packages/parsers.rs:22:13 [INFO] [stdout] | [INFO] [stdout] 22 | / for line in lines { [INFO] [stdout] 23 | | if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 52 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/packages/parsers.rs:23:17 [INFO] [stdout] | [INFO] [stdout] 23 | / if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 51 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 22 ~ for ip in lines.flatten() { [INFO] [stdout] 23 + // do something with ip [INFO] [stdout] 24 + [INFO] [stdout] 25 + // match the line as key value pair [INFO] [stdout] 26 + match kv_regexp.captures(&ip) [INFO] [stdout] 27 + { [INFO] [stdout] 28 + None => (), [INFO] [stdout] 29 + Some(caps) => [INFO] [stdout] 30 + { [INFO] [stdout] 31 + // parse line into key val [INFO] [stdout] 32 + let (key, value) = (caps.name("key").unwrap().as_str(), caps.name("value").unwrap().as_str()); [INFO] [stdout] 33 + match key [INFO] [stdout] 34 + { [INFO] [stdout] 35 + // if key is package, insert name into hash [INFO] [stdout] 36 + "Package" => [INFO] [stdout] 37 + { [INFO] [stdout] 38 + current_package_num = self.get_package_num_inserting(value); [INFO] [stdout] 39 + } [INFO] [stdout] 40 + // if key is version, map current package to version [INFO] [stdout] 41 + "Version" => [INFO] [stdout] 42 + { [INFO] [stdout] 43 + let debver = value.trim().parse::().unwrap(); [INFO] [stdout] 44 + self.installed_debvers.insert(current_package_num, debver); [INFO] [stdout] 45 + } [INFO] [stdout] 46 + _ => () [INFO] [stdout] 47 + } [INFO] [stdout] 48 + } [INFO] [stdout] 49 + } [INFO] [stdout] 50 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/packages/parsers.rs:121:56 [INFO] [stdout] | [INFO] [stdout] 121 | ... if !ver.is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `ver.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `ver` after checking its variant with `is_none` [INFO] [stdout] --> src/packages/parsers.rs:124:67 [INFO] [stdout] | [INFO] [stdout] 121 | ... if !ver.is_none() [INFO] [stdout] | ------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 124 | ... let ver = ver.unwrap().as_str(); [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Ok` variant of the iterator element is used [INFO] [stdout] --> src/packages/parsers.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | / for line in lines { [INFO] [stdout] 66 | | if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 143 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/packages/parsers.rs:66:17 [INFO] [stdout] | [INFO] [stdout] 66 | / if let Ok(ip) = line { [INFO] [stdout] ... | [INFO] [stdout] 142 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 65 ~ for ip in lines.flatten() { [INFO] [stdout] 66 + // do more things with ip [INFO] [stdout] 67 + [INFO] [stdout] 68 + // match the line as key value pair [INFO] [stdout] 69 + match kv_regexp.captures(&ip) [INFO] [stdout] 70 + { [INFO] [stdout] 71 + None => (), [INFO] [stdout] 72 + Some(caps) => [INFO] [stdout] 73 + { [INFO] [stdout] 74 + // parse line into key val [INFO] [stdout] 75 + let (key, value) = (caps.name("key").unwrap().as_str(), caps.name("value").unwrap().as_str()); [INFO] [stdout] 76 + match key [INFO] [stdout] 77 + { [INFO] [stdout] 78 + // if key is package, insert name into hash [INFO] [stdout] 79 + "Package" => [INFO] [stdout] 80 + { [INFO] [stdout] 81 + current_package_num = self.get_package_num_inserting(value); [INFO] [stdout] 82 + } [INFO] [stdout] 83 + // if key is version, map current package to version [INFO] [stdout] 84 + "Version" => [INFO] [stdout] 85 + { [INFO] [stdout] 86 + let debver = value.trim().parse::().unwrap(); [INFO] [stdout] 87 + self.available_debvers.insert(current_package_num, debver); [INFO] [stdout] 88 + } [INFO] [stdout] 89 + // map current package to md5 [INFO] [stdout] 90 + "MD5sum" => [INFO] [stdout] 91 + { [INFO] [stdout] 92 + self.md5sums.insert(current_package_num, value.to_string()); [INFO] [stdout] 93 + } [INFO] [stdout] 94 + // map current package to vector of dependencies [INFO] [stdout] 95 + "Depends" => [INFO] [stdout] 96 + { [INFO] [stdout] 97 + // make dependency list [INFO] [stdout] 98 + let dep_list = value.split(','); [INFO] [stdout] 99 + let mut dep_vec : Vec = Vec::new(); [INFO] [stdout] 100 + for dep in dep_list { [INFO] [stdout] 101 + [INFO] [stdout] 102 + // for each dependency, make alternative list [INFO] [stdout] 103 + let alt_list = dep.split('|'); [INFO] [stdout] 104 + let mut alt_vec : Vec = Vec::new(); [INFO] [stdout] 105 + for alt in alt_list { [INFO] [stdout] 106 + [INFO] [stdout] 107 + // store info for each alternative [INFO] [stdout] 108 + let mut alt_info = RelVersionedPackageNum {package_num: 0, rel_version: None}; [INFO] [stdout] 109 + // match for package name, version, & associated operation [INFO] [stdout] 110 + match pkgver_regexp.captures(alt) [INFO] [stdout] 111 + { [INFO] [stdout] 112 + None => (), [INFO] [stdout] 113 + Some(caps) => [INFO] [stdout] 114 + { [INFO] [stdout] 115 + // parse the alt info and add to struct [INFO] [stdout] 116 + let (pkg, op, ver) = (caps.name("pkg").unwrap().as_str(), caps.name("op"), caps.name("ver")); [INFO] [stdout] 117 + alt_info.package_num = self.get_package_num_inserting(pkg); [INFO] [stdout] 118 + [INFO] [stdout] 119 + // some dependencies dont have version (assumes latest version when installed) [INFO] [stdout] 120 + if !ver.is_none() [INFO] [stdout] 121 + { [INFO] [stdout] 122 + let op = op.unwrap().as_str().parse::().unwrap(); [INFO] [stdout] 123 + let ver = ver.unwrap().as_str(); [INFO] [stdout] 124 + alt_info.rel_version = Some((op, ver.to_string())); [INFO] [stdout] 125 + } [INFO] [stdout] 126 + [INFO] [stdout] 127 + // add alternatives [INFO] [stdout] 128 + alt_vec.push(alt_info); [INFO] [stdout] 129 + } [INFO] [stdout] 130 + } [INFO] [stdout] 131 + } [INFO] [stdout] 132 + // add dependencies [INFO] [stdout] 133 + dep_vec.push(alt_vec); [INFO] [stdout] 134 + } [INFO] [stdout] 135 + self.dependencies.insert(current_package_num, dep_vec); [INFO] [stdout] 136 + } [INFO] [stdout] 137 + _ => () [INFO] [stdout] 138 + } [INFO] [stdout] 139 + } [INFO] [stdout] 140 + } [INFO] [stdout] 141 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `Box`. Consider using just `String` [INFO] [stdout] --> src/packages/async_fns.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | struct Collector(Box); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `String` is already on the heap, `Box` makes an extra allocation [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_collection [INFO] [stdout] = note: `#[warn(clippy::box_collection)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/packages/async_fns.rs:11:43 [INFO] [stdout] | [INFO] [stdout] 11 | (*self.0).push_str(str::from_utf8(&data.to_vec()).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `Box`. Consider using just `String` [INFO] [stdout] --> src/packages/async_fns.rs:8:18 [INFO] [stdout] | [INFO] [stdout] 8 | struct Collector(Box); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `String` is already on the heap, `Box` makes an extra allocation [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_collection [INFO] [stdout] = note: `#[warn(clippy::box_collection)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_vec` [INFO] [stdout] --> src/packages/async_fns.rs:11:43 [INFO] [stdout] | [INFO] [stdout] 11 | (*self.0).push_str(str::from_utf8(&data.to_vec()).unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: use: `data` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/async_fns.rs:48:72 [INFO] [stdout] | [INFO] [stdout] 48 | None => { println!("Error: package {} not defined.", pkg); return }, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 ~ None => { println!("Error: package {} not defined.", pkg); }, [INFO] [stdout] 49 | Some(v) => { [INFO] [stdout] ... [INFO] [stdout] 52 | } [INFO] [stdout] 53 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Box::new(_)` of default value [INFO] [stdout] --> src/packages/async_fns.rs:62:45 [INFO] [stdout] | [INFO] [stdout] 62 | let mut easy = Easy2::new(Collector(Box::new(String::new()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Box::default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_default [INFO] [stdout] = note: `#[warn(clippy::box_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/async_fns.rs:48:72 [INFO] [stdout] | [INFO] [stdout] 48 | None => { println!("Error: package {} not defined.", pkg); return }, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 48 ~ None => { println!("Error: package {} not defined.", pkg); }, [INFO] [stdout] 49 | Some(v) => { [INFO] [stdout] ... [INFO] [stdout] 52 | } [INFO] [stdout] 53 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `Box::new(_)` of default value [INFO] [stdout] --> src/packages/async_fns.rs:62:45 [INFO] [stdout] | [INFO] [stdout] 62 | let mut easy = Easy2::new(Collector(Box::new(String::new()))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `Box::default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#box_default [INFO] [stdout] = note: `#[warn(clippy::box_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return self.package_num_to_name.get(&package_num).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return self.package_num_to_name.get(&package_num).unwrap(); [INFO] [stdout] 55 + self.package_num_to_name.get(&package_num).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | return self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - return self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] 60 + self.package_name_to_num.get(package_name).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | return pnum; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 - return pnum; [INFO] [stdout] 71 + pnum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | return *self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return *self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] 73 + *self.package_name_to_num.get(package_name).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return self.package_name_to_num.contains_key(package_name); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return self.package_name_to_num.contains_key(package_name); [INFO] [stdout] 78 + self.package_name_to_num.contains_key(package_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return match package_num { [INFO] [stdout] 85 | | None => None, [INFO] [stdout] 86 | | Some(x) => match self.available_debvers.get(x) { [INFO] [stdout] 87 | | None => None, [INFO] [stdout] ... | [INFO] [stdout] 90 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ match package_num { [INFO] [stdout] 85 + None => None, [INFO] [stdout] 86 + Some(x) => match self.available_debvers.get(x) { [INFO] [stdout] 87 + None => None, [INFO] [stdout] 88 + Some(y) => Some(y) [INFO] [stdout] 89 + } [INFO] [stdout] 90 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | return self.package_num_to_name.get(&package_num).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 55 - return self.package_num_to_name.get(&package_num).unwrap(); [INFO] [stdout] 55 + self.package_num_to_name.get(&package_num).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | / return match package_num { [INFO] [stdout] 96 | | None => None, [INFO] [stdout] 97 | | Some(x) => match self.installed_debvers.get(x) { [INFO] [stdout] 98 | | None => None, [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 95 ~ match package_num { [INFO] [stdout] 96 + None => None, [INFO] [stdout] 97 + Some(x) => match self.installed_debvers.get(x) { [INFO] [stdout] 98 + None => None, [INFO] [stdout] 99 + Some(y) => Some(y) [INFO] [stdout] 100 + } [INFO] [stdout] 101 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | return self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 60 - return self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] 60 + self.package_name_to_num.get(package_name).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / return match package_num { [INFO] [stdout] 107 | | None => None, [INFO] [stdout] 108 | | Some(x) => match self.md5sums.get(x) { [INFO] [stdout] 109 | | None => None, [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 ~ match package_num { [INFO] [stdout] 107 + None => None, [INFO] [stdout] 108 + Some(x) => match self.md5sums.get(x) { [INFO] [stdout] 109 + None => None, [INFO] [stdout] 110 + Some(y) => Some(y) [INFO] [stdout] 111 + } [INFO] [stdout] 112 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | return pnum; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 71 - return pnum; [INFO] [stdout] 71 + pnum [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | return *self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return *self.package_name_to_num.get(package_name).unwrap(); [INFO] [stdout] 73 + *self.package_name_to_num.get(package_name).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | return deps.iter().map(|dep| self.dep2str(dep)).format(", ").to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 117 - return deps.iter().map(|dep| self.dep2str(dep)).format(", ").to_string(); [INFO] [stdout] 117 + deps.iter().map(|dep| self.dep2str(dep)).format(", ").to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/packages/mod.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | fn deps2str(&self, deps: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 116 - fn deps2str(&self, deps: &Vec) -> String { [INFO] [stdout] 116 + fn deps2str(&self, deps: &[Dependency]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 78 | return self.package_name_to_num.contains_key(package_name); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return self.package_name_to_num.contains_key(package_name); [INFO] [stdout] 78 + self.package_name_to_num.contains_key(package_name) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | / return dep.iter().map(|d| { [INFO] [stdout] 122 | | let pn = self.get_package_name(d.package_num); [INFO] [stdout] 123 | | match &d.rel_version { [INFO] [stdout] 124 | | None => String::from(pn), [INFO] [stdout] ... | [INFO] [stdout] 127 | | }).format(" | ").to_string(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 ~ dep.iter().map(|d| { [INFO] [stdout] 122 + let pn = self.get_package_name(d.package_num); [INFO] [stdout] 123 + match &d.rel_version { [INFO] [stdout] 124 + None => String::from(pn), [INFO] [stdout] 125 + Some((rel, ver)) => format!("{} ({} {})", pn, rel.to_string(), ver) [INFO] [stdout] 126 + } [INFO] [stdout] 127 ~ }).format(" | ").to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 84 | / return match package_num { [INFO] [stdout] 85 | | None => None, [INFO] [stdout] 86 | | Some(x) => match self.available_debvers.get(x) { [INFO] [stdout] 87 | | None => None, [INFO] [stdout] ... | [INFO] [stdout] 90 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 84 ~ match package_num { [INFO] [stdout] 85 + None => None, [INFO] [stdout] 86 + Some(x) => match self.available_debvers.get(x) { [INFO] [stdout] 87 + None => None, [INFO] [stdout] 88 + Some(y) => Some(y) [INFO] [stdout] 89 + } [INFO] [stdout] 90 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/packages/mod.rs:125:66 [INFO] [stdout] | [INFO] [stdout] 125 | Some((rel, ver)) => format!("{} ({} {})", pn, rel.to_string(), ver) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | / return match package_num { [INFO] [stdout] 96 | | None => None, [INFO] [stdout] 97 | | Some(x) => match self.installed_debvers.get(x) { [INFO] [stdout] 98 | | None => None, [INFO] [stdout] ... | [INFO] [stdout] 101 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 95 ~ match package_num { [INFO] [stdout] 96 + None => None, [INFO] [stdout] 97 + Some(x) => match self.installed_debvers.get(x) { [INFO] [stdout] 98 + None => None, [INFO] [stdout] 99 + Some(y) => Some(y) [INFO] [stdout] 100 + } [INFO] [stdout] 101 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | / return match package_num { [INFO] [stdout] 107 | | None => None, [INFO] [stdout] 108 | | Some(x) => match self.md5sums.get(x) { [INFO] [stdout] 109 | | None => None, [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 106 ~ match package_num { [INFO] [stdout] 107 + None => None, [INFO] [stdout] 108 + Some(x) => match self.md5sums.get(x) { [INFO] [stdout] 109 + None => None, [INFO] [stdout] 110 + Some(y) => Some(y) [INFO] [stdout] 111 + } [INFO] [stdout] 112 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/packages/mod.rs:136:39 [INFO] [stdout] | [INFO] [stdout] 136 | let deps : &Vec = &*self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 136 - let deps : &Vec = &*self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] 136 + let deps : &Vec = self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 136 | let deps : &Vec = &**self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:117:9 [INFO] [stdout] | [INFO] [stdout] 117 | return deps.iter().map(|dep| self.dep2str(dep)).format(", ").to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 117 - return deps.iter().map(|dep| self.dep2str(dep)).format(", ").to_string(); [INFO] [stdout] 117 + deps.iter().map(|dep| self.dep2str(dep)).format(", ").to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/packages/mod.rs:116:30 [INFO] [stdout] | [INFO] [stdout] 116 | fn deps2str(&self, deps: &Vec) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 116 - fn deps2str(&self, deps: &Vec) -> String { [INFO] [stdout] 116 + fn deps2str(&self, deps: &[Dependency]) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/packages/mod.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | / return dep.iter().map(|d| { [INFO] [stdout] 122 | | let pn = self.get_package_name(d.package_num); [INFO] [stdout] 123 | | match &d.rel_version { [INFO] [stdout] 124 | | None => String::from(pn), [INFO] [stdout] ... | [INFO] [stdout] 127 | | }).format(" | ").to_string(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 121 ~ dep.iter().map(|d| { [INFO] [stdout] 122 + let pn = self.get_package_name(d.package_num); [INFO] [stdout] 123 + match &d.rel_version { [INFO] [stdout] 124 + None => String::from(pn), [INFO] [stdout] 125 + Some((rel, ver)) => format!("{} ({} {})", pn, rel.to_string(), ver) [INFO] [stdout] 126 + } [INFO] [stdout] 127 ~ }).format(" | ").to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/packages/mod.rs:125:66 [INFO] [stdout] | [INFO] [stdout] 125 | Some((rel, ver)) => format!("{} ({} {})", pn, rel.to_string(), ver) [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/packages/mod.rs:170:42 [INFO] [stdout] | [INFO] [stdout] 170 | println!("Version: {}", a.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/packages/mod.rs:171:78 [INFO] [stdout] | [INFO] [stdout] 171 | println!("MD5Sum: {}", self.get_md5sum(package_name).unwrap().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/packages/mod.rs:136:39 [INFO] [stdout] | [INFO] [stdout] 136 | let deps : &Vec = &*self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 136 - let deps : &Vec = &*self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] 136 + let deps : &Vec = self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 136 | let deps : &Vec = &**self.dependencies.get(self.get_package_num(package_name)).unwrap(); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/packages/mod.rs:172:55 [INFO] [stdout] | [INFO] [stdout] 172 | println!("Depends: {}", self.deps2str(&*self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 172 - println!("Depends: {}", self.deps2str(&*self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] 172 + println!("Depends: {}", self.deps2str(self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 172 | println!("Depends: {}", self.deps2str(&**self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/packages/mod.rs:177:61 [INFO] [stdout] | [INFO] [stdout] 177 | Some(i) => { println!("Installed-Version: {}", i.to_string()) } [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/packages/mod.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | / match (a, i) { [INFO] [stdout] 180 | | (Some(aa), Some(ii)) => [INFO] [stdout] 181 | | { println!("Newer-Available: {:?}", aa > ii); } [INFO] [stdout] 182 | | _ => () [INFO] [stdout] 183 | | } [INFO] [stdout] | |_________^ help: try: `if let (Some(aa), Some(ii)) = (a, i) { println!("Newer-Available: {:?}", aa > ii); }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/packages/mod.rs:191:13 [INFO] [stdout] | [INFO] [stdout] 191 | / match (self.get_available_debver(pn), self.get_md5sum(pn)) { [INFO] [stdout] 192 | | (Some(v), Some(m)) => { [INFO] [stdout] 193 | | let row = format!("{},{},{}\n",pn,v.to_string(),m); [INFO] [stdout] 194 | | md5s.push_str(&row) [INFO] [stdout] 195 | | } [INFO] [stdout] 196 | | (_, _) => () [INFO] [stdout] 197 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 191 ~ if let (Some(v), Some(m)) = (self.get_available_debver(pn), self.get_md5sum(pn)) { [INFO] [stdout] 192 + let row = format!("{},{},{}\n",pn,v.to_string(),m); [INFO] [stdout] 193 + md5s.push_str(&row) [INFO] [stdout] 194 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/packages/mod.rs:193:56 [INFO] [stdout] | [INFO] [stdout] 193 | let row = format!("{},{},{}\n",pn,v.to_string(),m); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/packages/mod.rs:170:42 [INFO] [stdout] | [INFO] [stdout] 170 | println!("Version: {}", a.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/packages/mod.rs:171:78 [INFO] [stdout] | [INFO] [stdout] 171 | println!("MD5Sum: {}", self.get_md5sum(package_name).unwrap().to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 - return true [INFO] [stdout] 15 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:10:22 [INFO] [stdout] | [INFO] [stdout] 10 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cmd_fragments.get(0).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/packages/mod.rs:172:55 [INFO] [stdout] | [INFO] [stdout] 172 | println!("Depends: {}", self.deps2str(&*self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 172 - println!("Depends: {}", self.deps2str(&*self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] 172 + println!("Depends: {}", self.deps2str(self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 172 | println!("Depends: {}", self.deps2str(&**self.dependencies.get(self.get_package_num(package_name)).unwrap())); [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cmd_fragments.get(0)` [INFO] [stdout] --> src/main.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cmd_fragments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/packages/mod.rs:177:61 [INFO] [stdout] | [INFO] [stdout] 177 | Some(i) => { println!("Installed-Version: {}", i.to_string()) } [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 - return false; [INFO] [stdout] 126 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/packages/mod.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | / match (a, i) { [INFO] [stdout] 180 | | (Some(aa), Some(ii)) => [INFO] [stdout] 181 | | { println!("Newer-Available: {:?}", aa > ii); } [INFO] [stdout] 182 | | _ => () [INFO] [stdout] 183 | | } [INFO] [stdout] | |_________^ help: try: `if let (Some(aa), Some(ii)) = (a, i) { println!("Newer-Available: {:?}", aa > ii); }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cmd_fragments.get(0).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cmd_fragments.get(0)` [INFO] [stdout] --> src/main.rs:21:23 [INFO] [stdout] | [INFO] [stdout] 21 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cmd_fragments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/packages/mod.rs:191:13 [INFO] [stdout] | [INFO] [stdout] 191 | / match (self.get_available_debver(pn), self.get_md5sum(pn)) { [INFO] [stdout] 192 | | (Some(v), Some(m)) => { [INFO] [stdout] 193 | | let row = format!("{},{},{}\n",pn,v.to_string(),m); [INFO] [stdout] 194 | | md5s.push_str(&row) [INFO] [stdout] 195 | | } [INFO] [stdout] 196 | | (_, _) => () [INFO] [stdout] 197 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 191 ~ if let (Some(v), Some(m)) = (self.get_available_debver(pn), self.get_md5sum(pn)) { [INFO] [stdout] 192 + let row = format!("{},{},{}\n",pn,v.to_string(),m); [INFO] [stdout] 193 + md5s.push_str(&row) [INFO] [stdout] 194 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/packages/mod.rs:193:56 [INFO] [stdout] | [INFO] [stdout] 193 | let row = format!("{},{},{}\n",pn,v.to_string(),m); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cmd_fragments.get(0).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cmd_fragments.get(0)` [INFO] [stdout] --> src/main.rs:90:31 [INFO] [stdout] | [INFO] [stdout] 90 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cmd_fragments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | return true [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 15 - return true [INFO] [stdout] 15 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:10:22 [INFO] [stdout] | [INFO] [stdout] 10 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cmd_fragments.get(0).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cmd_fragments.get(0)` [INFO] [stdout] --> src/main.rs:10:23 [INFO] [stdout] | [INFO] [stdout] 10 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cmd_fragments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` branch is empty [INFO] [stdout] --> src/main.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 134 | if rl.load_history("history.txt").is_err() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can remove it: `rl.load_history("history.txt").is_err();` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_ifs [INFO] [stdout] = note: `#[warn(clippy::needless_ifs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:126:5 [INFO] [stdout] | [INFO] [stdout] 126 | return false; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 126 - return false; [INFO] [stdout] 126 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:21:22 [INFO] [stdout] | [INFO] [stdout] 21 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cmd_fragments.get(0).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cmd_fragments.get(0)` [INFO] [stdout] --> src/main.rs:21:23 [INFO] [stdout] | [INFO] [stdout] 21 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cmd_fragments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:90:30 [INFO] [stdout] | [INFO] [stdout] 90 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `cmd_fragments.get(0).unwrap()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `cmd_fragments.get(0)` [INFO] [stdout] --> src/main.rs:90:31 [INFO] [stdout] | [INFO] [stdout] 90 | let cmd : &str = &cmd_fragments.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `cmd_fragments.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` branch is empty [INFO] [stdout] --> src/main.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 134 | if rl.load_history("history.txt").is_err() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can remove it: `rl.load_history("history.txt").is_err();` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_ifs [INFO] [stdout] = note: `#[warn(clippy::needless_ifs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.41s [INFO] running `Command { std: "docker" "inspect" "53306034e664b0c54a42fbfc82af0fb103f042a23e7990d9bfb443a81d44652c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "53306034e664b0c54a42fbfc82af0fb103f042a23e7990d9bfb443a81d44652c", kill_on_drop: false }` [INFO] [stdout] 53306034e664b0c54a42fbfc82af0fb103f042a23e7990d9bfb443a81d44652c