[INFO] crate bloom-server 1.24.0 is already in cache [INFO] extracting crate bloom-server 1.24.0 into work/ex/clippy-test-run/sources/stable/reg/bloom-server/1.24.0 [INFO] extracting crate bloom-server 1.24.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bloom-server/1.24.0 [INFO] validating manifest of bloom-server-1.24.0 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 bloom-server-1.24.0 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 bloom-server-1.24.0 [INFO] finished frobbing bloom-server-1.24.0 [INFO] frobbed toml for bloom-server-1.24.0 written to work/ex/clippy-test-run/sources/stable/reg/bloom-server/1.24.0/Cargo.toml [INFO] started frobbing bloom-server-1.24.0 [INFO] finished frobbing bloom-server-1.24.0 [INFO] frobbed toml for bloom-server-1.24.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/bloom-server/1.24.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting bloom-server-1.24.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/bloom-server/1.24.0:/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] bf62fd3663a78b12579e812b4956f5e92b498b6cfb24e9db64f0e3a419cb1f26 [INFO] running `"docker" "start" "-a" "bf62fd3663a78b12579e812b4956f5e92b498b6cfb24e9db64f0e3a419cb1f26"` [INFO] [stderr] Checking alloc-no-stdlib v1.3.0 [INFO] [stderr] Checking r2d2_redis v0.7.0 [INFO] [stderr] Checking tokio-proto v0.1.1 [INFO] [stderr] Checking brotli-decompressor v1.3.1 [INFO] [stderr] Checking brotli v2.5.1 [INFO] [stderr] Checking hyper v0.11.27 [INFO] [stderr] Checking bloom-server v1.24.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/cache/store.rs:100:38 [INFO] [stderr] | [INFO] [stderr] 100 | CacheStore { pool: pool } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pool` [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/cache/write.rs:107:53 [INFO] [stderr] | [INFO] [stderr] 107 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/cache/write.rs:108:53 [INFO] [stderr] | [INFO] [stderr] 108 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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/cache/write.rs:120:53 [INFO] [stderr] | [INFO] [stderr] 120 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/cache/write.rs:121:53 [INFO] [stderr] | [INFO] [stderr] 121 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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/cache/write.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/cache/write.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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/cache/store.rs:100:38 [INFO] [stderr] | [INFO] [stderr] 100 | CacheStore { pool: pool } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pool` [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/cache/write.rs:107:53 [INFO] [stderr] | [INFO] [stderr] 107 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/cache/write.rs:108:53 [INFO] [stderr] | [INFO] [stderr] 108 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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/cache/write.rs:120:53 [INFO] [stderr] | [INFO] [stderr] 120 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/cache/write.rs:121:53 [INFO] [stderr] | [INFO] [stderr] 121 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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/cache/write.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | status: status, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `status` [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/cache/write.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | headers: headers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `headers` [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: long literal lacking separators [INFO] [stderr] --> src/config/defaults.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | 256000 [INFO] [stderr] | ^^^^^^ help: consider: `256_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/config/defaults.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | 2592000 [INFO] [stderr] | ^^^^^^^ help: consider: `2_592_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: module has the same name as its containing module [INFO] [stderr] --> src/config/mod.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub mod config; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/control/handle.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | / if line.is_empty() == false { [INFO] [stderr] 117 | | if Self::on_message(&mut shard, &stream, line) == [INFO] [stderr] 118 | | ControlHandleMessageResult::Close [INFO] [stderr] 119 | | { [INFO] [stderr] ... | [INFO] [stderr] 122 | | } [INFO] [stderr] 123 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 116 | if line.is_empty() == false && Self::on_message(&mut shard, &stream, line) == [INFO] [stderr] 117 | ControlHandleMessageResult::Close { [INFO] [stderr] 118 | // Should close? [INFO] [stderr] 119 | break 'handler; [INFO] [stderr] 120 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/control/handle.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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: long literal lacking separators [INFO] [stderr] --> src/config/defaults.rs:86:5 [INFO] [stderr] | [INFO] [stderr] 86 | 256000 [INFO] [stderr] | ^^^^^^ help: consider: `256_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/config/defaults.rs:90:5 [INFO] [stderr] | [INFO] [stderr] 90 | 2592000 [INFO] [stderr] | ^^^^^^^ help: consider: `2_592_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: module has the same name as its containing module [INFO] [stderr] --> src/config/mod.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub mod config; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/control/handle.rs:116:41 [INFO] [stderr] | [INFO] [stderr] 116 | / if line.is_empty() == false { [INFO] [stderr] 117 | | if Self::on_message(&mut shard, &stream, line) == [INFO] [stderr] 118 | | ControlHandleMessageResult::Close [INFO] [stderr] 119 | | { [INFO] [stderr] ... | [INFO] [stderr] 122 | | } [INFO] [stderr] 123 | | } [INFO] [stderr] | |_________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 116 | if line.is_empty() == false && Self::on_message(&mut shard, &stream, line) == [INFO] [stderr] 117 | ControlHandleMessageResult::Close { [INFO] [stderr] 118 | // Should close? [INFO] [stderr] 119 | break 'handler; [INFO] [stderr] 120 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/control/handle.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | return result; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `result` [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: equality checks against true are unnecessary [INFO] [stderr] --> src/header/janitor.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | if Self::is_contextual(&header_view) == true || [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_contextual(&header_view)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/header/janitor.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | Self::is_internal(&header_view) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_internal(&header_view)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/header/response_ignore.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | if raw.eq("1") == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `raw.eq("1")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/proxy/tunnel.rs:117:29 [INFO] [stderr] | [INFO] [stderr] 117 | / match method { [INFO] [stderr] 118 | | &Method::Post | &Method::Patch | &Method::Put => { [INFO] [stderr] 119 | | tunnel_req.set_body(body); [INFO] [stderr] 120 | | } [INFO] [stderr] 121 | | _ => {} [INFO] [stderr] 122 | | } [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] 117 | match *method { [INFO] [stderr] 118 | Method::Post | Method::Patch | Method::Put => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/proxy/serve.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 36 | if req.headers().has::() == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `req.headers().has::()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/proxy/serve.rs:137:37 [INFO] [stderr] | [INFO] [stderr] 137 | / match req_if_none_match { [INFO] [stderr] 138 | | &IfNoneMatch::Any => true, [INFO] [stderr] 139 | | &IfNoneMatch::Items(ref req_etags) => { [INFO] [stderr] 140 | | if let Some(req_etag) = req_etags.first() { [INFO] [stderr] ... | [INFO] [stderr] 148 | | } [INFO] [stderr] 149 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [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] 137 | match *req_if_none_match { [INFO] [stderr] 138 | IfNoneMatch::Any => true, [INFO] [stderr] 139 | IfNoneMatch::Items(ref req_etags) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/proxy/serve.rs:179:31 [INFO] [stderr] | [INFO] [stderr] 179 | let body_fetcher = if do_acquire_body == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!do_acquire_body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/proxy/serve.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | / fn tunnel_over_proxy( [INFO] [stderr] 202 | | shard: u8, [INFO] [stderr] 203 | | ns: String, [INFO] [stderr] 204 | | ns_mask: String, [INFO] [stderr] ... | [INFO] [stderr] 264 | | ) [INFO] [stderr] 265 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (11/7) [INFO] [stderr] --> src/proxy/serve.rs:267:5 [INFO] [stderr] | [INFO] [stderr] 267 | / fn dispatch_cached( [INFO] [stderr] 268 | | shard: u8, [INFO] [stderr] 269 | | ns: String, [INFO] [stderr] 270 | | ns_mask: String, [INFO] [stderr] ... | [INFO] [stderr] 354 | | } [INFO] [stderr] 355 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/proxy/serve.rs:290:20 [INFO] [stderr] | [INFO] [stderr] 290 | if res_body_string.is_empty() == false || is_last_line_empty == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!res_body_string.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/proxy/serve.rs:290:59 [INFO] [stderr] | [INFO] [stderr] 290 | if res_body_string.is_empty() == false || is_last_line_empty == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_last_line_empty` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/proxy/serve.rs:292:46 [INFO] [stderr] | [INFO] [stderr] 292 | res_body_string.push_str(res_line.as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `res_line` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/proxy/serve.rs:304:52 [INFO] [stderr] | [INFO] [stderr] 304 | StatusCode::try_from(code).unwrap_or(StatusCode::Unregistered(code)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| StatusCode::Unregistered(code))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/proxy/serve.rs:359:17 [INFO] [stderr] | [INFO] [stderr] 359 | status: &StatusCode, [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/proxy/serve.rs:395:29 [INFO] [stderr] | [INFO] [stderr] 395 | Box::new(future::ok(match method { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 396 | | &Method::Get | &Method::Post | &Method::Patch | &Method::Put | &Method::Delete => { [INFO] [stderr] 397 | | Response::new() [INFO] [stderr] 398 | | .with_status(status) [INFO] [stderr] ... | [INFO] [stderr] 402 | | _ => Response::new().with_status(status).with_headers(headers), [INFO] [stderr] 403 | | })) [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 395 | Box::new(future::ok(match *method { [INFO] [stderr] 396 | Method::Get | Method::Post | Method::Patch | Method::Put | Method::Delete => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | Self::is_cacheable_method(method) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_method(method)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/check.rs:18:51 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn from_response(method: &Method, status: &StatusCode, headers: &Headers) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | Self::is_cacheable_method(method) == true && Self::is_cacheable_status(status) == true && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_method(method)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:19:54 [INFO] [stderr] | [INFO] [stderr] 19 | Self::is_cacheable_method(method) == true && Self::is_cacheable_status(status) == true && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_status(status)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | Self::is_cacheable_response(headers) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_response(headers)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/check.rs:30:36 [INFO] [stderr] | [INFO] [stderr] 30 | fn is_cacheable_status(status: &StatusCode) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/check.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | headers.has::() == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!headers.has::()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/cache/store.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / pub fn new() -> CacheStore { [INFO] [stderr] 59 | | info!( [INFO] [stderr] 60 | | "binding to store backend at {}:{}", [INFO] [stderr] 61 | | APP_CONF.redis.host, [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/cache/store.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | Err(_) => panic!("could not create redis connection manager"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/cache/store.rs:102:21 [INFO] [stderr] | [INFO] [stderr] 102 | Err(_) => panic!("could not spawn redis pool"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/store.rs:124:48 [INFO] [stderr] | [INFO] [stderr] 124 | if tags_data.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!tags_data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/store.rs:201:40 [INFO] [stderr] | [INFO] [stderr] 201 | if APP_CONF.cache.compress_body == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `APP_CONF.cache.compress_body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cache/store.rs:211:52 [INFO] [stderr] | [INFO] [stderr] 211 | if body_bytes_raw.len() > 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!body_bytes_raw.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/cache/store.rs:212:57 [INFO] [stderr] | [INFO] [stderr] 212 | decompress_bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `decompress_bytes.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: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/store.rs:278:63 [INFO] [stderr] | [INFO] [stderr] 278 | let store_value_bytes_result = if APP_CONF.cache.compress_body == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `APP_CONF.cache.compress_body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/read.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 31 | if APP_CONF.cache.disable_read == false && CacheCheck::from_request(&method) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!APP_CONF.cache.disable_read` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/read.rs:31:52 [INFO] [stderr] | [INFO] [stderr] 31 | if APP_CONF.cache.disable_read == false && CacheCheck::from_request(&method) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `CacheCheck::from_request(&method)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/cache/write.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / pub fn save( [INFO] [stderr] 32 | | key: String, [INFO] [stderr] 33 | | key_mask: String, [INFO] [stderr] 34 | | auth_hash: String, [INFO] [stderr] ... | [INFO] [stderr] 139 | | ) [INFO] [stderr] 140 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/write.rs:49:28 [INFO] [stderr] | [INFO] [stderr] 49 | if APP_CONF.cache.disable_write == false && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!APP_CONF.cache.disable_write` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/write.rs:50:29 [INFO] [stderr] | [INFO] [stderr] 50 | CacheCheck::from_response(&method, &status, &headers) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `CacheCheck::from_response(&method, &status, &headers)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/write.rs:142:39 [INFO] [stderr] | [INFO] [stderr] 142 | fn generate_chain_banner(version: &HttpVersion, status: &StatusCode) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `HttpVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/write.rs:142:61 [INFO] [stderr] | [INFO] [stderr] 142 | fn generate_chain_banner(version: &HttpVersion, status: &StatusCode) -> String { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/write.rs:150:17 [INFO] [stderr] | [INFO] [stderr] 150 | HeaderJanitor::is_contextual(&header_view) == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!HeaderJanitor::is_contextual(&header_view)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/control/command.rs:45:16 [INFO] [stderr] | [INFO] [stderr] 45 | shard: &ControlShard, [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ControlShard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/command.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | if bucket.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!bucket.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/control/command.rs:59:39 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn dispatch_flush_auth(shard: &ControlShard, mut parts: SplitWhitespace) -> ControlResult { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ControlShard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/command.rs:62:12 [INFO] [stderr] | [INFO] [stderr] 62 | if auth.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!auth.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/control/command.rs:92:16 [INFO] [stderr] | [INFO] [stderr] 92 | shard: &ControlShard, [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ControlShard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/control/handle.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | static BUFFER_LINE_SEPARATOR: u8 = '\n' as u8; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/handle.rs:116:44 [INFO] [stderr] | [INFO] [stderr] 116 | if line.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/control/handle.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | let tcp_timeout = if is_established == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_established` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/control/handle.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | / loop { [INFO] [stderr] 182 | | let mut read = [0; HASH_RESULT_SIZE]; [INFO] [stderr] 183 | | [INFO] [stderr] 184 | | match stream.read(&mut read) { [INFO] [stderr] ... | [INFO] [stderr] 221 | | } [INFO] [stderr] 222 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/handle.rs:202:28 [INFO] [stderr] | [INFO] [stderr] 202 | if res_hash.is_empty() == false && res_hash == test_hash { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!res_hash.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/handle.rs:255:12 [INFO] [stderr] | [INFO] [stderr] 255 | if response.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!response.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/control/listen.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / pub fn new() -> ControlListen { [INFO] [stderr] 19 | | ControlListen {} [INFO] [stderr] 20 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/server/listen.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / pub fn new() -> ServerListen { [INFO] [stderr] 25 | | ServerListen {} [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:104:8 [INFO] [stderr] | [INFO] [stderr] 104 | if has_error == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `has_error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `bloom-server`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/header/janitor.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | if Self::is_contextual(&header_view) == true || [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_contextual(&header_view)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/header/janitor.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | Self::is_internal(&header_view) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_internal(&header_view)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/header/response_ignore.rs:20:12 [INFO] [stderr] | [INFO] [stderr] 20 | if raw.eq("1") == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `raw.eq("1")` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/proxy/tunnel.rs:117:29 [INFO] [stderr] | [INFO] [stderr] 117 | / match method { [INFO] [stderr] 118 | | &Method::Post | &Method::Patch | &Method::Put => { [INFO] [stderr] 119 | | tunnel_req.set_body(body); [INFO] [stderr] 120 | | } [INFO] [stderr] 121 | | _ => {} [INFO] [stderr] 122 | | } [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] 117 | match *method { [INFO] [stderr] 118 | Method::Post | Method::Patch | Method::Put => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/proxy/serve.rs:36:12 [INFO] [stderr] | [INFO] [stderr] 36 | if req.headers().has::() == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `req.headers().has::()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/proxy/serve.rs:137:37 [INFO] [stderr] | [INFO] [stderr] 137 | / match req_if_none_match { [INFO] [stderr] 138 | | &IfNoneMatch::Any => true, [INFO] [stderr] 139 | | &IfNoneMatch::Items(ref req_etags) => { [INFO] [stderr] 140 | | if let Some(req_etag) = req_etags.first() { [INFO] [stderr] ... | [INFO] [stderr] 148 | | } [INFO] [stderr] 149 | | } [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [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] 137 | match *req_if_none_match { [INFO] [stderr] 138 | IfNoneMatch::Any => true, [INFO] [stderr] 139 | IfNoneMatch::Items(ref req_etags) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/proxy/serve.rs:179:31 [INFO] [stderr] | [INFO] [stderr] 179 | let body_fetcher = if do_acquire_body == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!do_acquire_body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/proxy/serve.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | / fn tunnel_over_proxy( [INFO] [stderr] 202 | | shard: u8, [INFO] [stderr] 203 | | ns: String, [INFO] [stderr] 204 | | ns_mask: String, [INFO] [stderr] ... | [INFO] [stderr] 264 | | ) [INFO] [stderr] 265 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (11/7) [INFO] [stderr] --> src/proxy/serve.rs:267:5 [INFO] [stderr] | [INFO] [stderr] 267 | / fn dispatch_cached( [INFO] [stderr] 268 | | shard: u8, [INFO] [stderr] 269 | | ns: String, [INFO] [stderr] 270 | | ns_mask: String, [INFO] [stderr] ... | [INFO] [stderr] 354 | | } [INFO] [stderr] 355 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/proxy/serve.rs:290:20 [INFO] [stderr] | [INFO] [stderr] 290 | if res_body_string.is_empty() == false || is_last_line_empty == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!res_body_string.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/proxy/serve.rs:290:59 [INFO] [stderr] | [INFO] [stderr] 290 | if res_body_string.is_empty() == false || is_last_line_empty == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_last_line_empty` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/proxy/serve.rs:292:46 [INFO] [stderr] | [INFO] [stderr] 292 | res_body_string.push_str(res_line.as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try this: `res_line` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/proxy/serve.rs:304:52 [INFO] [stderr] | [INFO] [stderr] 304 | StatusCode::try_from(code).unwrap_or(StatusCode::Unregistered(code)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| StatusCode::Unregistered(code))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/proxy/serve.rs:359:17 [INFO] [stderr] | [INFO] [stderr] 359 | status: &StatusCode, [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/proxy/serve.rs:395:29 [INFO] [stderr] | [INFO] [stderr] 395 | Box::new(future::ok(match method { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 396 | | &Method::Get | &Method::Post | &Method::Patch | &Method::Put | &Method::Delete => { [INFO] [stderr] 397 | | Response::new() [INFO] [stderr] 398 | | .with_status(status) [INFO] [stderr] ... | [INFO] [stderr] 402 | | _ => Response::new().with_status(status).with_headers(headers), [INFO] [stderr] 403 | | })) [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 395 | Box::new(future::ok(match *method { [INFO] [stderr] 396 | Method::Get | Method::Post | Method::Patch | Method::Put | Method::Delete => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | Self::is_cacheable_method(method) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_method(method)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/check.rs:18:51 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn from_response(method: &Method, status: &StatusCode, headers: &Headers) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:19:9 [INFO] [stderr] | [INFO] [stderr] 19 | Self::is_cacheable_method(method) == true && Self::is_cacheable_status(status) == true && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_method(method)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:19:54 [INFO] [stderr] | [INFO] [stderr] 19 | Self::is_cacheable_method(method) == true && Self::is_cacheable_status(status) == true && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_status(status)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/check.rs:20:13 [INFO] [stderr] | [INFO] [stderr] 20 | Self::is_cacheable_response(headers) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `Self::is_cacheable_response(headers)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/check.rs:30:36 [INFO] [stderr] | [INFO] [stderr] 30 | fn is_cacheable_status(status: &StatusCode) -> bool { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/check.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | headers.has::() == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!headers.has::()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/cache/store.rs:58:5 [INFO] [stderr] | [INFO] [stderr] 58 | / pub fn new() -> CacheStore { [INFO] [stderr] 59 | | info!( [INFO] [stderr] 60 | | "binding to store backend at {}:{}", [INFO] [stderr] 61 | | APP_CONF.redis.host, [INFO] [stderr] ... | [INFO] [stderr] 106 | | } [INFO] [stderr] 107 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/cache/store.rs:105:13 [INFO] [stderr] | [INFO] [stderr] 105 | Err(_) => panic!("could not create redis connection manager"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/cache/store.rs:102:21 [INFO] [stderr] | [INFO] [stderr] 102 | Err(_) => panic!("could not spawn redis pool"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/store.rs:124:48 [INFO] [stderr] | [INFO] [stderr] 124 | if tags_data.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!tags_data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/store.rs:201:40 [INFO] [stderr] | [INFO] [stderr] 201 | if APP_CONF.cache.compress_body == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `APP_CONF.cache.compress_body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/cache/store.rs:211:52 [INFO] [stderr] | [INFO] [stderr] 211 | if body_bytes_raw.len() > 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!body_bytes_raw.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/cache/store.rs:212:57 [INFO] [stderr] | [INFO] [stderr] 212 | decompress_bytes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `decompress_bytes.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: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/store.rs:278:63 [INFO] [stderr] | [INFO] [stderr] 278 | let store_value_bytes_result = if APP_CONF.cache.compress_body == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `APP_CONF.cache.compress_body` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/read.rs:31:12 [INFO] [stderr] | [INFO] [stderr] 31 | if APP_CONF.cache.disable_read == false && CacheCheck::from_request(&method) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!APP_CONF.cache.disable_read` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/read.rs:31:52 [INFO] [stderr] | [INFO] [stderr] 31 | if APP_CONF.cache.disable_read == false && CacheCheck::from_request(&method) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `CacheCheck::from_request(&method)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this function has too many arguments (9/7) [INFO] [stderr] --> src/cache/write.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | / pub fn save( [INFO] [stderr] 32 | | key: String, [INFO] [stderr] 33 | | key_mask: String, [INFO] [stderr] 34 | | auth_hash: String, [INFO] [stderr] ... | [INFO] [stderr] 139 | | ) [INFO] [stderr] 140 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/write.rs:49:28 [INFO] [stderr] | [INFO] [stderr] 49 | if APP_CONF.cache.disable_write == false && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!APP_CONF.cache.disable_write` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/cache/write.rs:50:29 [INFO] [stderr] | [INFO] [stderr] 50 | CacheCheck::from_response(&method, &status, &headers) == true [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `CacheCheck::from_response(&method, &status, &headers)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/write.rs:142:39 [INFO] [stderr] | [INFO] [stderr] 142 | fn generate_chain_banner(version: &HttpVersion, status: &StatusCode) -> String { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `HttpVersion` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cache/write.rs:142:61 [INFO] [stderr] | [INFO] [stderr] 142 | fn generate_chain_banner(version: &HttpVersion, status: &StatusCode) -> String { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `StatusCode` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cache/write.rs:150:17 [INFO] [stderr] | [INFO] [stderr] 150 | HeaderJanitor::is_contextual(&header_view) == false [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!HeaderJanitor::is_contextual(&header_view)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/control/command.rs:45:16 [INFO] [stderr] | [INFO] [stderr] 45 | shard: &ControlShard, [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ControlShard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/command.rs:50:12 [INFO] [stderr] | [INFO] [stderr] 50 | if bucket.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!bucket.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/control/command.rs:59:39 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn dispatch_flush_auth(shard: &ControlShard, mut parts: SplitWhitespace) -> ControlResult { [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ControlShard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/command.rs:62:12 [INFO] [stderr] | [INFO] [stderr] 62 | if auth.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!auth.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/control/command.rs:92:16 [INFO] [stderr] | [INFO] [stderr] 92 | shard: &ControlShard, [INFO] [stderr] | ^^^^^^^^^^^^^ help: consider passing by value instead: `ControlShard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/control/handle.rs:48:36 [INFO] [stderr] | [INFO] [stderr] 48 | static BUFFER_LINE_SEPARATOR: u8 = '\n' as u8; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/handle.rs:116:44 [INFO] [stderr] | [INFO] [stderr] 116 | if line.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!line.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/control/handle.rs:146:30 [INFO] [stderr] | [INFO] [stderr] 146 | let tcp_timeout = if is_established == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `is_established` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/control/handle.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | / loop { [INFO] [stderr] 182 | | let mut read = [0; HASH_RESULT_SIZE]; [INFO] [stderr] 183 | | [INFO] [stderr] 184 | | match stream.read(&mut read) { [INFO] [stderr] ... | [INFO] [stderr] 221 | | } [INFO] [stderr] 222 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/handle.rs:202:28 [INFO] [stderr] | [INFO] [stderr] 202 | if res_hash.is_empty() == false && res_hash == test_hash { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!res_hash.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/control/handle.rs:255:12 [INFO] [stderr] | [INFO] [stderr] 255 | if response.is_empty() == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!response.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/control/listen.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / pub fn new() -> ControlListen { [INFO] [stderr] 19 | | ControlListen {} [INFO] [stderr] 20 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/server/listen.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | / pub fn new() -> ServerListen { [INFO] [stderr] 25 | | ServerListen {} [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:104:8 [INFO] [stderr] | [INFO] [stderr] 104 | if has_error == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `has_error` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `bloom-server`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "bf62fd3663a78b12579e812b4956f5e92b498b6cfb24e9db64f0e3a419cb1f26"` [INFO] running `"docker" "rm" "-f" "bf62fd3663a78b12579e812b4956f5e92b498b6cfb24e9db64f0e3a419cb1f26"` [INFO] [stdout] bf62fd3663a78b12579e812b4956f5e92b498b6cfb24e9db64f0e3a419cb1f26