[INFO] updating cached repository tailhook/ciruela [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/tailhook/ciruela [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/tailhook/ciruela" "work/ex/clippy-test-run/sources/stable/gh/tailhook/ciruela"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/tailhook/ciruela'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/tailhook/ciruela" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tailhook/ciruela"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tailhook/ciruela'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 6174614d108466d8c5d2af2382f365ca81968151 [INFO] sha for GitHub repo tailhook/ciruela: 6174614d108466d8c5d2af2382f365ca81968151 [INFO] validating manifest of tailhook/ciruela on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of tailhook/ciruela on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing tailhook/ciruela [INFO] finished frobbing tailhook/ciruela [INFO] frobbed toml for tailhook/ciruela written to work/ex/clippy-test-run/sources/stable/gh/tailhook/ciruela/Cargo.toml [INFO] started frobbing tailhook/ciruela [INFO] finished frobbing tailhook/ciruela [INFO] frobbed toml for tailhook/ciruela written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/tailhook/ciruela/Cargo.toml [INFO] crate tailhook/ciruela has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting tailhook/ciruela against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/tailhook/ciruela:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 5fa5e17bf27084c6c9696b7807108422a2bc23b046451a9d206f8fac314bcc6d [INFO] running `"docker" "start" "-a" "5fa5e17bf27084c6c9696b7807108422a2bc23b046451a9d206f8fac314bcc6d"` [INFO] [stderr] Compiling serde v1.0.64 [INFO] [stderr] Checking arrayref v0.3.4 [INFO] [stderr] Checking netbuf v0.4.1 [INFO] [stderr] Checking sha1 v0.4.0 [INFO] [stderr] Checking rand_core v0.2.0 [INFO] [stderr] Checking atomic v0.3.4 [INFO] [stderr] Checking atomic v0.4.0 [INFO] [stderr] Checking openat v0.1.13 [INFO] [stderr] Checking async-slot v0.1.0 [INFO] [stderr] Checking valuable_futures v0.1.1 [INFO] [stderr] Compiling proc-macro2 v0.4.4 [INFO] [stderr] Checking scan_dir v0.3.3 [INFO] [stderr] Checking pretty_assertions v0.5.1 [INFO] [stderr] Checking abstract-ns v0.4.3 [INFO] [stderr] Checking tempfile v3.0.2 [INFO] [stderr] Checking block-buffer v0.3.3 [INFO] [stderr] Checking crossbeam-epoch v0.4.1 [INFO] [stderr] Checking thread_local v0.3.5 [INFO] [stderr] Checking clap v2.31.2 [INFO] [stderr] Checking ssh-keys v0.1.3 [INFO] [stderr] Checking rand v0.5.0 [INFO] [stderr] Compiling syn v0.13.11 [INFO] [stderr] Checking backtrace-sys v0.1.23 [INFO] [stderr] Checking rust-crypto v0.2.36 [INFO] [stderr] Checking tk-bufstream v0.3.0 [INFO] [stderr] Checking ns-std-threaded v0.3.0 [INFO] [stderr] Checking digest v0.7.2 [INFO] [stderr] Checking regex v1.0.0 [INFO] [stderr] Checking crossbeam-deque v0.3.1 [INFO] [stderr] Checking humannum v0.1.0 [INFO] [stderr] Checking backtrace v0.3.8 [INFO] [stderr] Checking blake2 v0.7.1 [INFO] [stderr] Checking sha2 v0.7.1 [INFO] [stderr] Checking digest-writer v0.3.1 [INFO] [stderr] Checking tokio-threadpool v0.1.3 [INFO] [stderr] Compiling quote v0.6.3 [INFO] [stderr] Checking failure v0.1.1 [INFO] [stderr] Compiling syn v0.14.1 [INFO] [stderr] Checking env_logger v0.5.10 [INFO] [stderr] Checking tokio-fs v0.1.0 [INFO] [stderr] Compiling structopt-derive v0.2.8 [INFO] [stderr] Checking tokio v0.1.6 [INFO] [stderr] Checking dir-signature v0.2.9 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Checking structopt v0.2.8 [INFO] [stderr] Checking ns-router v0.1.6 [INFO] [stderr] Checking tk-http v0.3.9 [INFO] [stderr] Checking tk-pool v0.5.3 [INFO] [stderr] Checking tk-easyloop v0.1.1 [INFO] [stderr] Checking tk-listen v0.1.1 [INFO] [stderr] Checking ns-env-config v0.1.0 [INFO] [stderr] Checking serde_millis v0.1.1 [INFO] [stderr] Checking serde_json v1.0.19 [INFO] [stderr] Checking quire v0.4.0 [INFO] [stderr] Checking serde_bytes v0.10.4 [INFO] [stderr] Checking serde_cbor v0.8.2 [INFO] [stderr] Checking serde-humantime v0.1.1 [INFO] [stderr] Compiling serde_derive v1.0.64 [INFO] [stderr] Checking libcantal v0.3.2 [INFO] [stderr] Checking self-meter v0.6.0 [INFO] [stderr] Checking tk-cantal v0.3.2 [INFO] [stderr] Checking self-meter-http v0.4.1 [INFO] [stderr] Checking ciruela v0.6.12 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/client.rs:175:21 [INFO] [stderr] | [INFO] [stderr] 175 | blocks: blocks, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `blocks` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/client.rs:176:21 [INFO] [stderr] | [INFO] [stderr] 176 | indexes: indexes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `indexes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/client.rs:177:21 [INFO] [stderr] | [INFO] [stderr] 177 | listener: listener, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `listener` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | request: request, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `request` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:340:13 [INFO] [stderr] | [INFO] [stderr] 340 | request_id: request_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `request_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | request_id: request_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `request_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cluster/addr.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cluster/mod.rs:149:36 [INFO] [stderr] | [INFO] [stderr] 149 | replace, upload, weak, old_image: old_image, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `old_image` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/client.rs:175:21 [INFO] [stderr] | [INFO] [stderr] 175 | blocks: blocks, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `blocks` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/client.rs:176:21 [INFO] [stderr] | [INFO] [stderr] 176 | indexes: indexes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `indexes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/client.rs:177:21 [INFO] [stderr] | [INFO] [stderr] 177 | listener: listener, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `listener` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:112:13 [INFO] [stderr] | [INFO] [stderr] 112 | request: request, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `request` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:340:13 [INFO] [stderr] | [INFO] [stderr] 340 | request_id: request_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `request_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:341:13 [INFO] [stderr] | [INFO] [stderr] 341 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/proto/request.rs:353:13 [INFO] [stderr] | [INFO] [stderr] 353 | request_id: request_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `request_id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cluster/addr.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cluster/mod.rs:149:36 [INFO] [stderr] | [INFO] [stderr] 149 | replace, upload, weak, old_image: old_image, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `old_image` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/failure_tracker.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | return since > RETRY_TIME * entry.subsequent; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `since > RETRY_TIME * entry.subsequent` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/failure_tracker.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | return since > SLOW_RETRY_TIME * entry.subsequent; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `since > SLOW_RETRY_TIME * entry.subsequent` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine_id.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | / return Err(io::Error::new(io::ErrorKind::Other, [INFO] [stderr] 26 | | "Wrong length of /etc/machine-id")); [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 25 | Err(io::Error::new(io::ErrorKind::Other, [INFO] [stderr] 26 | "Wrong length of /etc/machine-id")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine_id.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine_id.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/virtual_path.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | return parent == base_dir.0.as_path(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parent == base_dir.0.as_path()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/virtual_path.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | return num >= 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `num >= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/client.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | / return ClientFuture { [INFO] [stderr] 186 | | chan: rx, [INFO] [stderr] 187 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 185 | ClientFuture { [INFO] [stderr] 186 | chan: rx, [INFO] [stderr] 187 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:48:23 [INFO] [stderr] | [INFO] [stderr] 48 | const REQUEST_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:48:33 [INFO] [stderr] | [INFO] [stderr] 48 | const REQUEST_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | const RESPONSE_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:57:34 [INFO] [stderr] | [INFO] [stderr] 57 | const RESPONSE_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:66:28 [INFO] [stderr] | [INFO] [stderr] 66 | const NOTIFICATION_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:66:38 [INFO] [stderr] | [INFO] [stderr] 66 | const NOTIFICATION_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | return RequestFuture { chan: rx }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RequestFuture { chan: rx }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:190:9 [INFO] [stderr] | [INFO] [stderr] 190 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:236:9 [INFO] [stderr] | [INFO] [stderr] 236 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/server.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/signature.rs:28:15 [INFO] [stderr] | [INFO] [stderr] 28 | const TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/signature.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | const TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/signature.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/signature.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | return Ok(Ed25519(res)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Ed25519(res))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | return Hash(val); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Hash(val)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return dig.done(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `dig.done()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | return dig.done(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `dig.done()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return "AppendDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"AppendDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | return "AppendDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"AppendDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | return "AppendDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"AppendDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | return "ReplaceDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"ReplaceDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | return "ReplaceDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"ReplaceDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | return "ReplaceDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"ReplaceDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | return "GetIndex"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndex"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | return "GetIndex"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndex"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return "GetIndex"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndex"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | return "GetIndexAt"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndexAt"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | return "GetIndexAt"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndexAt"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | return "GetIndexAt"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndexAt"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/block_commands.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return "GetBlock"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBlock"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/block_commands.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | return "GetBlock"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBlock"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/block_commands.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return "GetBlock"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBlock"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/p2p_commands.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | return "GetBaseDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBaseDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/p2p_commands.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | return "GetBaseDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBaseDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/p2p_commands.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | return "GetBaseDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBaseDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/time_util.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/time_util.rs:7:53 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/serialize/duration.rs:9:57 [INFO] [stderr] | [INFO] [stderr] 9 | let ms = dur.as_secs()*1000 + (dur.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/serialize/duration.rs:18:54 [INFO] [stderr] | [INFO] [stderr] 18 | Ok(Duration::new(ms / 1000, (ms % 1000) as u32 * 1000000)) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block_id.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block_id.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | return BlockHash(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `BlockHash(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block_id.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/failure_tracker.rs:43:9 [INFO] [stderr] | [INFO] [stderr] 43 | return since > RETRY_TIME * entry.subsequent; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `since > RETRY_TIME * entry.subsequent` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/failure_tracker.rs:50:9 [INFO] [stderr] | [INFO] [stderr] 50 | return since > SLOW_RETRY_TIME * entry.subsequent; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `since > SLOW_RETRY_TIME * entry.subsequent` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/addr.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | return Ok(Async::NotReady); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Async::NotReady)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/addr.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | return Ok(Async::Ready(self.current.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Async::Ready(self.current.clone()))` [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine_id.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | / return Err(io::Error::new(io::ErrorKind::Other, [INFO] [stderr] 26 | | "Wrong length of /etc/machine-id")); [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 25 | Err(io::Error::new(io::ErrorKind::Other, [INFO] [stderr] 26 | "Wrong length of /etc/machine-id")) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine_id.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/machine_id.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/set.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return tx; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `tx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/virtual_path.rs:131:9 [INFO] [stderr] | [INFO] [stderr] 131 | return parent == base_dir.0.as_path(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `parent == base_dir.0.as_path()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/virtual_path.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | return num >= 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `num >= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/client.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | / return ClientFuture { [INFO] [stderr] 186 | | chan: rx, [INFO] [stderr] 187 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 185 | ClientFuture { [INFO] [stderr] 186 | chan: rx, [INFO] [stderr] 187 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | return accepted; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `accepted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:48:23 [INFO] [stderr] | [INFO] [stderr] 48 | const REQUEST_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] | [INFO] [stderr] --> src/cluster/upload.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | / return book.rejected_ips.contains_key(&addr) || [INFO] [stderr] 157 | | book.rejected_no_config.contains(&addr); [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 156 | book.rejected_ips.contains_key(&addr) || [INFO] [stderr] 157 | book.rejected_no_config.contains(&addr) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:48:33 [INFO] [stderr] | [INFO] [stderr] 48 | const REQUEST_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:57:24 [INFO] [stderr] | [INFO] [stderr] 57 | const RESPONSE_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:57:34 [INFO] [stderr] | [INFO] [stderr] 57 | const RESPONSE_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:66:28 [INFO] [stderr] | [INFO] [stderr] 66 | const NOTIFICATION_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/message.rs:66:38 [INFO] [stderr] | [INFO] [stderr] 66 | const NOTIFICATION_TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:259:5 [INFO] [stderr] | [INFO] [stderr] 259 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | return RequestFuture { chan: rx }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `RequestFuture { chan: rx }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/cluster/upload.rs:247:12 [INFO] [stderr] | [INFO] [stderr] 247 | } else if [INFO] [stderr] | ____________^ [INFO] [stderr] 248 | | book.done_ips.is_superset(&book.accepted_ips) && [INFO] [stderr] 249 | | is_superset(&book.done_servers, &book.discovered_servers) [INFO] [stderr] 250 | | { [INFO] [stderr] ... | [INFO] [stderr] 257 | | } [INFO] [stderr] 258 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 247 | } else if book.done_ips.is_superset(&book.accepted_ips) && [INFO] [stderr] 248 | is_superset(&book.done_servers, &book.discovered_servers) && book.done_servers.len() > 0 { [INFO] [stderr] 249 | if book.rejected_ips.len() > 0 || book.aborted_ips.len() > 0 { [INFO] [stderr] 250 | return Some(Err(ErrorKind::Rejected)); [INFO] [stderr] 251 | } else { [INFO] [stderr] 252 | return Some(Ok(UploadOk::new(stats))); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:329:13 [INFO] [stderr] | [INFO] [stderr] 329 | return explicit + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `explicit + 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:331:13 [INFO] [stderr] | [INFO] [stderr] 331 | return explicit; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `explicit` [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] | [INFO] [stderr] --> src/proto/request.rs:190:9 [INFO] [stderr] | [INFO] [stderr] 190 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:206:9 [INFO] [stderr] | [INFO] [stderr] 206 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/request.rs:236:9 [INFO] [stderr] | [INFO] [stderr] 236 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/server.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | return Packet::Binary(buf); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Packet::Binary(buf)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/signature.rs:28:15 [INFO] [stderr] | [INFO] [stderr] 28 | const TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^--------------- help: consider removing `'static`: `&[&'static str]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/proto/signature.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | const TYPES: &'static [&'static str] = &[ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/signature.rs:61:5 [INFO] [stderr] | [INFO] [stderr] 61 | return res; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `res` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/download.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / return Ok(MutableIndex { [INFO] [stderr] 184 | | hash_type: header.get_hash_type(), [INFO] [stderr] 185 | | block_size: header.get_block_size(), [INFO] [stderr] 186 | | header, root, location, [INFO] [stderr] 187 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 183 | Ok(MutableIndex { [INFO] [stderr] 184 | hash_type: header.get_hash_type(), [INFO] [stderr] 185 | block_size: header.get_block_size(), [INFO] [stderr] 186 | header, root, location, [INFO] [stderr] 187 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/download.rs:275:9 [INFO] [stderr] | [INFO] [stderr] 275 | return buf; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `buf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/signature.rs:175:9 [INFO] [stderr] | [INFO] [stderr] 175 | return Ok(Ed25519(res)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Ed25519(res))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | return Hash(val); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Hash(val)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return dig.done(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `dig.done()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | return dig.done(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `dig.done()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/hash.rs:99:13 [INFO] [stderr] | [INFO] [stderr] 99 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/mod.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / return Connection { [INFO] [stderr] 97 | | cluster_name: initial_address, [INFO] [stderr] 98 | | config: config.clone(), [INFO] [stderr] 99 | | chan: tx, [INFO] [stderr] 100 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 96 | Connection { [INFO] [stderr] 97 | cluster_name: initial_address, [INFO] [stderr] 98 | config: config.clone(), [INFO] [stderr] 99 | chan: tx, [INFO] [stderr] 100 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/signature.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / return SignedUpload { [INFO] [stderr] 39 | | path: path.clone(), [INFO] [stderr] 40 | | image_id: image.clone(), [INFO] [stderr] 41 | | timestamp, [INFO] [stderr] 42 | | signatures, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 38 | SignedUpload { [INFO] [stderr] 39 | path: path.clone(), [INFO] [stderr] 40 | image_id: image.clone(), [INFO] [stderr] 41 | timestamp, [INFO] [stderr] 42 | signatures, [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return "AppendDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"AppendDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:98:9 [INFO] [stderr] | [INFO] [stderr] 98 | return "AppendDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"AppendDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | return "AppendDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"AppendDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:108:9 [INFO] [stderr] | [INFO] [stderr] 108 | return "ReplaceDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"ReplaceDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:114:9 [INFO] [stderr] | [INFO] [stderr] 114 | return "ReplaceDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"ReplaceDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/dir_commands.rs:117:9 [INFO] [stderr] | [INFO] [stderr] 117 | return "ReplaceDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"ReplaceDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | return "GetIndex"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndex"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | return "GetIndex"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndex"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:92:9 [INFO] [stderr] | [INFO] [stderr] 92 | return "GetIndex"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndex"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | return "GetIndexAt"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndexAt"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:113:9 [INFO] [stderr] | [INFO] [stderr] 113 | return "GetIndexAt"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndexAt"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/index_commands.rs:116:9 [INFO] [stderr] | [INFO] [stderr] 116 | return "GetIndexAt"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetIndexAt"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/block_commands.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | return "GetBlock"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBlock"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/block_commands.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | return "GetBlock"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBlock"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/block_commands.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return "GetBlock"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBlock"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/p2p_commands.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | return "GetBaseDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBaseDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/p2p_commands.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | return "GetBaseDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBaseDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/proto/p2p_commands.rs:40:9 [INFO] [stderr] | [INFO] [stderr] 40 | return "GetBaseDir"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `"GetBaseDir"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/time_util.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/time_util.rs:7:53 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/serialize/duration.rs:9:57 [INFO] [stderr] | [INFO] [stderr] 9 | let ms = dur.as_secs()*1000 + (dur.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/serialize/duration.rs:18:54 [INFO] [stderr] | [INFO] [stderr] 18 | Ok(Duration::new(ms / 1000, (ms % 1000) as u32 * 1000000)) [INFO] [stderr] | ^^^^^^^ help: consider: `1_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block_id.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block_id.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | return BlockHash(result); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `BlockHash(result)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/block_id.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | return Err(E::invalid_length(value.len(), &self)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err(E::invalid_length(value.len(), &self))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/addr.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | return Ok(Async::NotReady); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Async::NotReady)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/addr.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | return Ok(Async::Ready(self.current.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Async::Ready(self.current.clone()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/set.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | return tx; [INFO] [stderr] | ^^^^^^^^^^ help: remove `return` as shown: `tx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:148:9 [INFO] [stderr] | [INFO] [stderr] 148 | return accepted; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `accepted` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | / return book.rejected_ips.contains_key(&addr) || [INFO] [stderr] 157 | | book.rejected_no_config.contains(&addr); [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 156 | book.rejected_ips.contains_key(&addr) || [INFO] [stderr] 157 | book.rejected_no_config.contains(&addr) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:259:5 [INFO] [stderr] | [INFO] [stderr] 259 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/cluster/upload.rs:247:12 [INFO] [stderr] | [INFO] [stderr] 247 | } else if [INFO] [stderr] | ____________^ [INFO] [stderr] 248 | | book.done_ips.is_superset(&book.accepted_ips) && [INFO] [stderr] 249 | | is_superset(&book.done_servers, &book.discovered_servers) [INFO] [stderr] 250 | | { [INFO] [stderr] ... | [INFO] [stderr] 257 | | } [INFO] [stderr] 258 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 247 | } else if book.done_ips.is_superset(&book.accepted_ips) && [INFO] [stderr] 248 | is_superset(&book.done_servers, &book.discovered_servers) && book.done_servers.len() > 0 { [INFO] [stderr] 249 | if book.rejected_ips.len() > 0 || book.aborted_ips.len() > 0 { [INFO] [stderr] 250 | return Some(Err(ErrorKind::Rejected)); [INFO] [stderr] 251 | } else { [INFO] [stderr] 252 | return Some(Ok(UploadOk::new(stats))); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:329:13 [INFO] [stderr] | [INFO] [stderr] 329 | return explicit + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `explicit + 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/upload.rs:331:13 [INFO] [stderr] | [INFO] [stderr] 331 | return explicit; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `explicit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/download.rs:183:9 [INFO] [stderr] | [INFO] [stderr] 183 | / return Ok(MutableIndex { [INFO] [stderr] 184 | | hash_type: header.get_hash_type(), [INFO] [stderr] 185 | | block_size: header.get_block_size(), [INFO] [stderr] 186 | | header, root, location, [INFO] [stderr] 187 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 183 | Ok(MutableIndex { [INFO] [stderr] 184 | hash_type: header.get_hash_type(), [INFO] [stderr] 185 | block_size: header.get_block_size(), [INFO] [stderr] 186 | header, root, location, [INFO] [stderr] 187 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/download.rs:275:9 [INFO] [stderr] | [INFO] [stderr] 275 | return buf; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `buf` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cluster/mod.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | / return Connection { [INFO] [stderr] 97 | | cluster_name: initial_address, [INFO] [stderr] 98 | | config: config.clone(), [INFO] [stderr] 99 | | chan: tx, [INFO] [stderr] 100 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 96 | Connection { [INFO] [stderr] 97 | cluster_name: initial_address, [INFO] [stderr] 98 | config: config.clone(), [INFO] [stderr] 99 | chan: tx, [INFO] [stderr] 100 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/signature.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / return SignedUpload { [INFO] [stderr] 39 | | path: path.clone(), [INFO] [stderr] 40 | | image_id: image.clone(), [INFO] [stderr] 41 | | timestamp, [INFO] [stderr] 42 | | signatures, [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 38 | SignedUpload { [INFO] [stderr] 39 | path: path.clone(), [INFO] [stderr] 40 | image_id: image.clone(), [INFO] [stderr] 41 | timestamp, [INFO] [stderr] 42 | signatures, [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/id.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let value = value.as_ref(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try this: `value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/id.rs:37:21 [INFO] [stderr] | [INFO] [stderr] 37 | let value = value.as_ref(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try this: `value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut ()`) to a reference type (`&T`) [INFO] [stderr] --> src/proto/request.rs:68:1 [INFO] [stderr] | [INFO] [stderr] 68 | mopafy!(WrapTrait); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut ()`) to a reference type (`&mut T`) [INFO] [stderr] --> src/proto/request.rs:68:1 [INFO] [stderr] | [INFO] [stderr] 68 | mopafy!(WrapTrait); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/proto/signature.rs:220:57 [INFO] [stderr] | [INFO] [stderr] 220 | (&SshEd25519(ref x), &SshEd25519(ref y)) => &x[..] == &y[..], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 220 | (&SshEd25519(ref x), &SshEd25519(ref y)) => x[..] == y[..], [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut ()`) to a reference type (`&T`) [INFO] [stderr] --> src/proto/request.rs:68:1 [INFO] [stderr] | [INFO] [stderr] 68 | mopafy!(WrapTrait); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer type (`*mut ()`) to a reference type (`&mut T`) [INFO] [stderr] --> src/proto/request.rs:68:1 [INFO] [stderr] | [INFO] [stderr] 68 | mopafy!(WrapTrait); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ref [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/proto/signature.rs:220:57 [INFO] [stderr] | [INFO] [stderr] 220 | (&SshEd25519(ref x), &SshEd25519(ref y)) => &x[..] == &y[..], [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 220 | (&SshEd25519(ref x), &SshEd25519(ref y)) => x[..] == y[..], [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/proto/index_commands.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | None => format!(""), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time_util.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(ts.subsec_nanos() / 1000000)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/time_util.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ts.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/serialize/duration.rs:9:35 [INFO] [stderr] | [INFO] [stderr] 9 | let ms = dur.as_secs()*1000 + (dur.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(dur.subsec_nanos() / 1000000)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/serialize/duration.rs:9:35 [INFO] [stderr] | [INFO] [stderr] 9 | let ms = dur.as_secs()*1000 + (dur.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dur.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/proto/index_commands.rs:125:21 [INFO] [stderr] | [INFO] [stderr] 125 | None => format!(""), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `blocks::ThreadedBlockReader` [INFO] [stderr] --> src/blocks.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / pub fn new() -> ThreadedBlockReader { [INFO] [stderr] 132 | | ThreadedBlockReader { [INFO] [stderr] 133 | | pool: CpuPool::new(40), [INFO] [stderr] 134 | | blocks: Arc::new(RwLock::new(HashMap::new())), [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 129 | impl Default for blocks::ThreadedBlockReader { [INFO] [stderr] 130 | fn default() -> Self { [INFO] [stderr] 131 | Self::new() [INFO] [stderr] 132 | } [INFO] [stderr] 133 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/blocks.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | let ref mut cur = io::Cursor::new(&index_data); [INFO] [stderr] | ----^^^^^^^^^^^-------------------------------- help: try: `let cur = &mut io::Cursor::new(&index_data);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/blocks.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | / match entry.expect("just created index is valid") { [INFO] [stderr] 162 | | v1::Entry::File { ref path, ref hashes, size, .. } => { [INFO] [stderr] 163 | | let path = Arc::new(dir.join( [INFO] [stderr] 164 | | path.strip_prefix("/").expect("paths are absolute") [INFO] [stderr] ... | [INFO] [stderr] 179 | | _ => {} [INFO] [stderr] 180 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 161 | if let v1::Entry::File { ref path, ref hashes, size, .. } = entry.expect("just created index is valid") { [INFO] [stderr] 162 | let path = Arc::new(dir.join( [INFO] [stderr] 163 | path.strip_prefix("/").expect("paths are absolute") [INFO] [stderr] 164 | )); [INFO] [stderr] 165 | let mut left = size; [INFO] [stderr] 166 | for (idx, hash) in hashes.iter().enumerate() { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `index::InMemoryIndexes` [INFO] [stderr] --> src/index.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | / pub fn new() -> InMemoryIndexes { [INFO] [stderr] 90 | | InMemoryIndexes { [INFO] [stderr] 91 | | indexes: Arc::new(RwLock::new(HashMap::new())), [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 53 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/addr.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 42 | if self.futures.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.futures.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `cluster::config::Config` [INFO] [stderr] --> src/cluster/config.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Config { [INFO] [stderr] 20 | | Config { [INFO] [stderr] 21 | | initial_connections: 3, [INFO] [stderr] 22 | | port: 24783, [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this boolean expression contains a logic bug [INFO] [stderr] --> src/cluster/set.rs:200:28 [INFO] [stderr] | [INFO] [stderr] 200 | if up.upload.path == img.path && [INFO] [stderr] | ____________________________^ [INFO] [stderr] 201 | | (up.weak || up.upload.path == img.path) [INFO] [stderr] | |___________________________________________________________________^ help: it would look like the following: `up.upload.path == img.path` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::logic_bug)] on by default [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/cluster/set.rs:201:30 [INFO] [stderr] | [INFO] [stderr] 201 | (up.weak || up.upload.path == img.path) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/time_util.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(ts.subsec_nanos() / 1000000)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/time_util.rs:7:32 [INFO] [stderr] | [INFO] [stderr] 7 | return ts.as_secs()*1000 + (ts.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `ts.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/serialize/duration.rs:9:35 [INFO] [stderr] | [INFO] [stderr] 9 | let ms = dur.as_secs()*1000 + (dur.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(dur.subsec_nanos() / 1000000)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/serialize/duration.rs:9:35 [INFO] [stderr] | [INFO] [stderr] 9 | let ms = dur.as_secs()*1000 + (dur.subsec_nanos() / 1000000) as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `dur.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `blocks::ThreadedBlockReader` [INFO] [stderr] --> src/blocks.rs:131:5 [INFO] [stderr] | [INFO] [stderr] 131 | / pub fn new() -> ThreadedBlockReader { [INFO] [stderr] 132 | | ThreadedBlockReader { [INFO] [stderr] 133 | | pool: CpuPool::new(40), [INFO] [stderr] 134 | | blocks: Arc::new(RwLock::new(HashMap::new())), [INFO] [stderr] 135 | | } [INFO] [stderr] 136 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 129 | impl Default for blocks::ThreadedBlockReader { [INFO] [stderr] 130 | fn default() -> Self { [INFO] [stderr] 131 | Self::new() [INFO] [stderr] 132 | } [INFO] [stderr] 133 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:367:12 [INFO] [stderr] | [INFO] [stderr] 367 | if new_addresses.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `new_addresses.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/blocks.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | let ref mut cur = io::Cursor::new(&index_data); [INFO] [stderr] | ----^^^^^^^^^^^-------------------------------- help: try: `let cur = &mut io::Cursor::new(&index_data);` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/blocks.rs:161:13 [INFO] [stderr] | [INFO] [stderr] 161 | / match entry.expect("just created index is valid") { [INFO] [stderr] 162 | | v1::Entry::File { ref path, ref hashes, size, .. } => { [INFO] [stderr] 163 | | let path = Arc::new(dir.join( [INFO] [stderr] 164 | | path.strip_prefix("/").expect("paths are absolute") [INFO] [stderr] ... | [INFO] [stderr] 179 | | _ => {} [INFO] [stderr] 180 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:405:13 [INFO] [stderr] | [INFO] [stderr] 405 | let ref config = self.config; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let config = &self.config;` [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 161 | if let v1::Entry::File { ref path, ref hashes, size, .. } = entry.expect("just created index is valid") { [INFO] [stderr] 162 | let path = Arc::new(dir.join( [INFO] [stderr] 163 | path.strip_prefix("/").expect("paths are absolute") [INFO] [stderr] 164 | )); [INFO] [stderr] 165 | let mut left = size; [INFO] [stderr] 166 | for (idx, hash) in hashes.iter().enumerate() { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:406:13 [INFO] [stderr] | [INFO] [stderr] 406 | let ref mut active = self.active; [INFO] [stderr] | ----^^^^^^^^^^^^^^--------------- help: try: `let active = &mut self.active;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:407:13 [INFO] [stderr] | [INFO] [stderr] 407 | let ref mut failures = self.failures; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^----------------- help: try: `let failures = &mut self.failures;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | let ref mut failed_addrs = self.failed_addrs; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^--------------------- help: try: `let failed_addrs = &mut self.failed_addrs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:409:13 [INFO] [stderr] | [INFO] [stderr] 409 | let ref mut addrs = self.addrs; [INFO] [stderr] | ----^^^^^^^^^^^^^-------------- help: try: `let addrs = &mut self.addrs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cluster/set.rs:469:48 [INFO] [stderr] | [INFO] [stderr] 469 | timestamp: up.upload.timestamp.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `up.upload.timestamp` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cluster/set.rs:477:48 [INFO] [stderr] | [INFO] [stderr] 477 | timestamp: up.upload.timestamp.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `up.upload.timestamp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `index::InMemoryIndexes` [INFO] [stderr] --> src/index.rs:89:5 [INFO] [stderr] | [INFO] [stderr] 89 | / pub fn new() -> InMemoryIndexes { [INFO] [stderr] 90 | | InMemoryIndexes { [INFO] [stderr] 91 | | indexes: Arc::new(RwLock::new(HashMap::new())), [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 53 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:545:17 [INFO] [stderr] | [INFO] [stderr] 545 | let ref stats = up.stats; [INFO] [stderr] | ----^^^^^^^^^------------ help: try: `let stats = &up.stats;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:546:17 [INFO] [stderr] | [INFO] [stderr] 546 | let ref mut candidates = up.candidate_hosts; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^---------------------- help: try: `let candidates = &mut up.candidate_hosts;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:547:17 [INFO] [stderr] | [INFO] [stderr] 547 | let ref mut connections = up.connections; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^------------------ help: try: `let connections = &mut up.connections;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cluster/set.rs:549:17 [INFO] [stderr] | [INFO] [stderr] 549 | / match capsule { [INFO] [stderr] 550 | | &mut RFuture::Append(ref mut fut) => { [INFO] [stderr] 551 | | match fut.poll() { [INFO] [stderr] 552 | | Ok(Async::NotReady) => true, [INFO] [stderr] ... | [INFO] [stderr] 603 | | } [INFO] [stderr] 604 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 549 | match *capsule { [INFO] [stderr] 550 | RFuture::Append(ref mut fut) => { [INFO] [stderr] 551 | match fut.poll() { [INFO] [stderr] 552 | Ok(Async::NotReady) => true, [INFO] [stderr] 553 | Ok(Async::Ready(resp)) => { [INFO] [stderr] 554 | candidates [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/addr.rs:42:12 [INFO] [stderr] | [INFO] [stderr] 42 | if self.futures.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.futures.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:615:12 [INFO] [stderr] | [INFO] [stderr] 615 | if up.futures.len() == 0 && up.stats.total_responses() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `up.futures.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `cluster::config::Config` [INFO] [stderr] --> src/cluster/config.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> Config { [INFO] [stderr] 20 | | Config { [INFO] [stderr] 21 | | initial_connections: 3, [INFO] [stderr] 22 | | port: 24783, [INFO] [stderr] ... | [INFO] [stderr] 27 | | } [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 8 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: this boolean expression contains a logic bug [INFO] [stderr] --> src/cluster/set.rs:200:28 [INFO] [stderr] | [INFO] [stderr] 200 | if up.upload.path == img.path && [INFO] [stderr] | ____________________________^ [INFO] [stderr] 201 | | (up.weak || up.upload.path == img.path) [INFO] [stderr] | |___________________________________________________________________^ help: it would look like the following: `up.upload.path == img.path` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::logic_bug)] on by default [INFO] [stderr] help: this expression can be optimized out by applying boolean operations to the outer expression [INFO] [stderr] --> src/cluster/set.rs:201:30 [INFO] [stderr] | [INFO] [stderr] 201 | (up.weak || up.upload.path == img.path) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#logic_bug [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:777:37 [INFO] [stderr] | [INFO] [stderr] 777 | Async::Ready(()) if self.uploads.len() > 0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.uploads.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:808:35 [INFO] [stderr] | [INFO] [stderr] 808 | if self.chan.is_done() && self.uploads.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.uploads.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/cluster/upload.rs:56:37 [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) fn new(cluster_name: &Vec, path: &VPath, weak: bool) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) fn new(cluster_name: &[Name], path: &VPath, weak: bool) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] help: change `cluster_name.clone()` to [INFO] [stderr] | [INFO] [stderr] 60 | cluster_name: cluster_name.to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:367:12 [INFO] [stderr] | [INFO] [stderr] 367 | if new_addresses.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `new_addresses.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:405:13 [INFO] [stderr] | [INFO] [stderr] 405 | let ref config = self.config; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let config = &self.config;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:406:13 [INFO] [stderr] | [INFO] [stderr] 406 | let ref mut active = self.active; [INFO] [stderr] | ----^^^^^^^^^^^^^^--------------- help: try: `let active = &mut self.active;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:407:13 [INFO] [stderr] | [INFO] [stderr] 407 | let ref mut failures = self.failures; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^----------------- help: try: `let failures = &mut self.failures;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | let ref mut failed_addrs = self.failed_addrs; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^^--------------------- help: try: `let failed_addrs = &mut self.failed_addrs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:409:13 [INFO] [stderr] | [INFO] [stderr] 409 | let ref mut addrs = self.addrs; [INFO] [stderr] | ----^^^^^^^^^^^^^-------------- help: try: `let addrs = &mut self.addrs;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cluster/set.rs:469:48 [INFO] [stderr] | [INFO] [stderr] 469 | timestamp: up.upload.timestamp.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `up.upload.timestamp` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cluster/set.rs:477:48 [INFO] [stderr] | [INFO] [stderr] 477 | timestamp: up.upload.timestamp.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `up.upload.timestamp` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:241:16 [INFO] [stderr] | [INFO] [stderr] 241 | if book.rejected_ips.len() > 0 || book.aborted_ids.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.rejected_ips.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:241:47 [INFO] [stderr] | [INFO] [stderr] 241 | if book.rejected_ips.len() > 0 || book.aborted_ids.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.aborted_ids.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:251:16 [INFO] [stderr] | [INFO] [stderr] 251 | if book.done_servers.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.done_servers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:252:20 [INFO] [stderr] | [INFO] [stderr] 252 | if book.rejected_ips.len() > 0 || book.aborted_ips.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.rejected_ips.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:252:51 [INFO] [stderr] | [INFO] [stderr] 252 | if book.rejected_ips.len() > 0 || book.aborted_ips.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.aborted_ips.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:545:17 [INFO] [stderr] | [INFO] [stderr] 545 | let ref stats = up.stats; [INFO] [stderr] | ----^^^^^^^^^------------ help: try: `let stats = &up.stats;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:546:17 [INFO] [stderr] | [INFO] [stderr] 546 | let ref mut candidates = up.candidate_hosts; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^---------------------- help: try: `let candidates = &mut up.candidate_hosts;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/set.rs:547:17 [INFO] [stderr] | [INFO] [stderr] 547 | let ref mut connections = up.connections; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^^^------------------ help: try: `let connections = &mut up.connections;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/cluster/set.rs:549:17 [INFO] [stderr] | [INFO] [stderr] 549 | / match capsule { [INFO] [stderr] 550 | | &mut RFuture::Append(ref mut fut) => { [INFO] [stderr] 551 | | match fut.poll() { [INFO] [stderr] 552 | | Ok(Async::NotReady) => true, [INFO] [stderr] ... | [INFO] [stderr] 603 | | } [INFO] [stderr] 604 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 549 | match *capsule { [INFO] [stderr] 550 | RFuture::Append(ref mut fut) => { [INFO] [stderr] 551 | match fut.poll() { [INFO] [stderr] 552 | Ok(Async::NotReady) => true, [INFO] [stderr] 553 | Ok(Async::Ready(resp)) => { [INFO] [stderr] 554 | candidates [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:615:12 [INFO] [stderr] | [INFO] [stderr] 615 | if up.futures.len() == 0 && up.stats.total_responses() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `up.futures.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:777:37 [INFO] [stderr] | [INFO] [stderr] 777 | Async::Ready(()) if self.uploads.len() > 0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.uploads.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/set.rs:808:35 [INFO] [stderr] | [INFO] [stderr] 808 | if self.chan.is_done() && self.uploads.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.uploads.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/cluster/upload.rs:56:37 [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) fn new(cluster_name: &Vec, path: &VPath, weak: bool) [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] help: change this to [INFO] [stderr] | [INFO] [stderr] 56 | pub(crate) fn new(cluster_name: &[Name], path: &VPath, weak: bool) [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] help: change `cluster_name.clone()` to [INFO] [stderr] | [INFO] [stderr] 60 | cluster_name: cluster_name.to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/cluster/download.rs:259:19 [INFO] [stderr] | [INFO] [stderr] 259 | ).map_err(|e| E::Read(e))?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove closure as shown: `E::Read` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/cluster/download.rs:310:9 [INFO] [stderr] | [INFO] [stderr] 310 | / match *item { [INFO] [stderr] 311 | | Dir(ref subdir) => { [INFO] [stderr] 312 | | let path = path.join(key); [INFO] [stderr] 313 | | _emit_dir(emitter, &path, subdir)?; [INFO] [stderr] 314 | | }, [INFO] [stderr] 315 | | _ => {} [INFO] [stderr] 316 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 310 | if let Dir(ref subdir) = *item { [INFO] [stderr] 311 | let path = path.join(key); [INFO] [stderr] 312 | _emit_dir(emitter, &path, subdir)?; [INFO] [stderr] 313 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:241:16 [INFO] [stderr] | [INFO] [stderr] 241 | if book.rejected_ips.len() > 0 || book.aborted_ids.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.rejected_ips.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:241:47 [INFO] [stderr] | [INFO] [stderr] 241 | if book.rejected_ips.len() > 0 || book.aborted_ids.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.aborted_ids.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:251:16 [INFO] [stderr] | [INFO] [stderr] 251 | if book.done_servers.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.done_servers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:252:20 [INFO] [stderr] | [INFO] [stderr] 252 | if book.rejected_ips.len() > 0 || book.aborted_ips.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.rejected_ips.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cluster/upload.rs:252:51 [INFO] [stderr] | [INFO] [stderr] 252 | if book.rejected_ips.len() > 0 || book.aborted_ips.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!book.aborted_ips.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/future.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | let ref s = self.stats; [INFO] [stderr] | ----^^^^^-------------- help: try: `let s = &self.stats;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/cluster/future.rs:84:39 [INFO] [stderr] | [INFO] [stderr] 84 | write!(f, " in 0.{:03}s", d.subsec_nanos() / 1_000_000)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/cluster/download.rs:259:19 [INFO] [stderr] | [INFO] [stderr] 259 | ).map_err(|e| E::Read(e))?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove closure as shown: `E::Read` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/cluster/download.rs:310:9 [INFO] [stderr] | [INFO] [stderr] 310 | / match *item { [INFO] [stderr] 311 | | Dir(ref subdir) => { [INFO] [stderr] 312 | | let path = path.join(key); [INFO] [stderr] 313 | | _emit_dir(emitter, &path, subdir)?; [INFO] [stderr] 314 | | }, [INFO] [stderr] 315 | | _ => {} [INFO] [stderr] 316 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 310 | if let Dir(ref subdir) = *item { [INFO] [stderr] 311 | let path = path.join(key); [INFO] [stderr] 312 | _emit_dir(emitter, &path, subdir)?; [INFO] [stderr] 313 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/cluster/future.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | let ref s = self.stats; [INFO] [stderr] | ----^^^^^-------------- help: try: `let s = &self.stats;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/cluster/future.rs:84:39 [INFO] [stderr] | [INFO] [stderr] 84 | write!(f, " in 0.{:03}s", d.subsec_nanos() / 1_000_000)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `ciruela`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `ciruela`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "5fa5e17bf27084c6c9696b7807108422a2bc23b046451a9d206f8fac314bcc6d"` [INFO] running `"docker" "rm" "-f" "5fa5e17bf27084c6c9696b7807108422a2bc23b046451a9d206f8fac314bcc6d"` [INFO] [stdout] 5fa5e17bf27084c6c9696b7807108422a2bc23b046451a9d206f8fac314bcc6d