[INFO] crate tk-http 0.3.9 is already in cache [INFO] extracting crate tk-http 0.3.9 into work/ex/clippy-test-run/sources/stable/reg/tk-http/0.3.9 [INFO] extracting crate tk-http 0.3.9 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tk-http/0.3.9 [INFO] validating manifest of tk-http-0.3.9 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of tk-http-0.3.9 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing tk-http-0.3.9 [INFO] finished frobbing tk-http-0.3.9 [INFO] frobbed toml for tk-http-0.3.9 written to work/ex/clippy-test-run/sources/stable/reg/tk-http/0.3.9/Cargo.toml [INFO] started frobbing tk-http-0.3.9 [INFO] finished frobbing tk-http-0.3.9 [INFO] frobbed toml for tk-http-0.3.9 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tk-http/0.3.9/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting tk-http-0.3.9 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/tk-http/0.3.9:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 1bcaf77eb9b6c92421977374aaebe13db38a7e0a804a81f0d626112821e26fb0 [INFO] running `"docker" "start" "-a" "1bcaf77eb9b6c92421977374aaebe13db38a7e0a804a81f0d626112821e26fb0"` [INFO] [stderr] Checking netbuf v0.4.1 [INFO] [stderr] Compiling ring v0.13.5 [INFO] [stderr] Checking tk-sendfile v0.4.0 [INFO] [stderr] Checking tk-listen v0.1.1 [INFO] [stderr] Checking tk-bufstream v0.3.0 [INFO] [stderr] Checking tk-http v0.3.9 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server/proto.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | dispatcher: dispatcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatcher` [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/server/proto.rs:173:37 [INFO] [stderr] | [INFO] [stderr] 173 | codec: codec }), [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `codec` [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/server/encoder.rs:359:9 [INFO] [stderr] | [INFO] [stderr] 359 | io: io, [INFO] [stderr] | ^^^^^^ help: replace it with: `io` [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/server/headers.rs:297:9 [INFO] [stderr] | [INFO] [stderr] 297 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/server/headers.rs:298:9 [INFO] [stderr] | [INFO] [stderr] 298 | expect_continue: expect_continue, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expect_continue` [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/server/headers.rs:299:9 [INFO] [stderr] | [INFO] [stderr] 299 | connection: connection, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [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/server/headers.rs:300:9 [INFO] [stderr] | [INFO] [stderr] 300 | host: host, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `host` [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/server/headers.rs:301:9 [INFO] [stderr] | [INFO] [stderr] 301 | target: target, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `target` [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/server/headers.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 303 | conflicting_host: conflicting_host, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `conflicting_host` [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/server/websocket.rs:100:9 [INFO] [stderr] | [INFO] [stderr] 100 | protocols: protocols, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `protocols` [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/server/websocket.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | extensions: extensions, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `extensions` [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/server/buffered.rs:208:13 [INFO] [stderr] | [INFO] [stderr] 208 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/server/buffered.rs:210:13 [INFO] [stderr] | [INFO] [stderr] 210 | service: service, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `service` [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/server/buffered.rs:235:13 [INFO] [stderr] | [INFO] [stderr] 235 | addr: addr, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `addr` [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/client/encoder.rs:233:9 [INFO] [stderr] | [INFO] [stderr] 233 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/client/encoder.rs:234:9 [INFO] [stderr] | [INFO] [stderr] 234 | close_signal: close_signal, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `close_signal` [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/client/parser.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/client/parser.rs:174:13 [INFO] [stderr] | [INFO] [stderr] 174 | reason: reason, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reason` [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/client/parser.rs:175:13 [INFO] [stderr] | [INFO] [stderr] 175 | 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/client/parser.rs:202:13 [INFO] [stderr] | [INFO] [stderr] 202 | codec: codec, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `codec` [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/client/parser.rs:205:17 [INFO] [stderr] | [INFO] [stderr] 205 | request_state: request_state, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `request_state` [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/client/parser.rs:206:17 [INFO] [stderr] | [INFO] [stderr] 206 | close_signal: close_signal, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `close_signal` [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/client/proto.rs:333:29 [INFO] [stderr] | [INFO] [stderr] 333 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/client/buffered.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | 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/client/buffered.rs:96:17 [INFO] [stderr] | [INFO] [stderr] 96 | url: url, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `url` [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/websocket/dispatcher.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | dispatcher: dispatcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatcher` [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/websocket/dispatcher.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | dispatcher: dispatcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `dispatcher` [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/websocket/client.rs:226:13 [INFO] [stderr] | [INFO] [stderr] 226 | authorizer: authorizer, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `authorizer` [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/websocket/client.rs:261:17 [INFO] [stderr] | [INFO] [stderr] 261 | code: code, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `code` [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/websocket/client.rs:262:17 [INFO] [stderr] | [INFO] [stderr] 262 | reason: reason, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `reason` [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/websocket/client.rs:263:17 [INFO] [stderr] | [INFO] [stderr] 263 | 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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/base_serializer.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | / write!(buf, "{} {} {}\r\n", [INFO] [stderr] 126 | | version, code, reason).unwrap(); [INFO] [stderr] | |__________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/base_serializer.rs:135:35 [INFO] [stderr] | [INFO] [stderr] 135 | *self = Headers { body: body, close: close }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/base_serializer.rs:135:47 [INFO] [stderr] | [INFO] [stderr] 135 | *self = Headers { body: body, close: close }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `close` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/base_serializer.rs:160:17 [INFO] [stderr] | [INFO] [stderr] 160 | / write!(buf, "{} {} {}\r\n", [INFO] [stderr] 161 | | method, path, version).unwrap(); [INFO] [stderr] | |__________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/base_serializer.rs:187:46 [INFO] [stderr] | [INFO] [stderr] 187 | *self = FinalResponseStart { version: version, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `version` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/base_serializer.rs:188:45 [INFO] [stderr] | [INFO] [stderr] 188 | body: body, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `body` [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/base_serializer.rs:189:45 [INFO] [stderr] | [INFO] [stderr] 189 | close: close } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `close` [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/base_serializer.rs:329:41 [INFO] [stderr] | [INFO] [stderr] 329 | close: close, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `close` [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/base_serializer.rs:361:47 [INFO] [stderr] | [INFO] [stderr] 361 | close: close }; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `close` [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/base_serializer.rs:417:37 [INFO] [stderr] | [INFO] [stderr] 417 | *self = FixedBody { is_head: is_head, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `is_head` [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/base_serializer.rs:418:38 [INFO] [stderr] | [INFO] [stderr] 418 | content_length: content_length }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `content_length` [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/base_serializer.rs:422:39 [INFO] [stderr] | [INFO] [stderr] 422 | *self = ChunkedBody { is_head: is_head }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `is_head` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/base_serializer.rs:470:17 [INFO] [stderr] | [INFO] [stderr] 470 | write!(buf, "{:x}\r\n", data.len()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/base_serializer.rs:562:13 [INFO] [stderr] | [INFO] [stderr] 562 | close: close, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `close` [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/base_serializer.rs:575:13 [INFO] [stderr] | [INFO] [stderr] 575 | close: close, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `close` [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] Checking sct v0.3.0 [INFO] [stderr] Checking webpki v0.18.1 [INFO] [stderr] Checking rustls v0.12.0 [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/proto.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | / return Proto { [INFO] [stderr] 92 | | proto: PureProto::new(conn, cfg, dispatcher), [INFO] [stderr] 93 | | handle: handle.clone(), [INFO] [stderr] 94 | | timeout: Timeout::new(cfg.first_byte_timeout, handle) [INFO] [stderr] 95 | | .expect("can always add a timeout"), [INFO] [stderr] 96 | | } [INFO] [stderr] | |_________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 91 | Proto { [INFO] [stderr] 92 | proto: PureProto::new(conn, cfg, dispatcher), [INFO] [stderr] 93 | handle: handle.clone(), [INFO] [stderr] 94 | timeout: Timeout::new(cfg.first_byte_timeout, handle) [INFO] [stderr] 95 | .expect("can always add a timeout"), [INFO] [stderr] 96 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/proto.rs:341:9 [INFO] [stderr] | [INFO] [stderr] 341 | return Some(self.read_deadline); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(self.read_deadline)` [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/server/request_target.rs:74:5 [INFO] [stderr] | [INFO] [stderr] 74 | 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/server/headers.rs:287:16 [INFO] [stderr] | [INFO] [stderr] 287 | } else if header.name.eq_ignore_ascii_case("Expect") { [INFO] [stderr] | ________________^ [INFO] [stderr] 288 | | if headers::is_continue(header.value) { [INFO] [stderr] 289 | | expect_continue = true; [INFO] [stderr] 290 | | } [INFO] [stderr] 291 | | } [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] 287 | } else if header.name.eq_ignore_ascii_case("Expect") && headers::is_continue(header.value) { [INFO] [stderr] 288 | expect_continue = true; [INFO] [stderr] 289 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/server/headers.rs:375:9 [INFO] [stderr] | [INFO] [stderr] 375 | 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/server/websocket.rs:29:5 [INFO] [stderr] | [INFO] [stderr] 29 | return x; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `x` [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: module has the same name as its containing module [INFO] [stderr] --> src/client/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | mod client; [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: unneeded return statement [INFO] [stderr] --> src/client/head.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | 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/client/proto.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return Ok(progress); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(progress)` [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/client/proto.rs:259:29 [INFO] [stderr] | [INFO] [stderr] 259 | / return max(time, rtime) + [INFO] [stderr] 260 | | self.config.keep_alive_timeout; [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] 259 | max(time, rtime) + [INFO] [stderr] 260 | self.config.keep_alive_timeout [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/client/proto.rs:263:29 [INFO] [stderr] | [INFO] [stderr] 263 | return time + self.config.max_request_timeout; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `time + self.config.max_request_timeout` [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/client/proto.rs:269:21 [INFO] [stderr] | [INFO] [stderr] 269 | return req.queued_at + self.config.max_request_timeout; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `req.queued_at + self.config.max_request_timeout` [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/client/proto.rs:273:17 [INFO] [stderr] | [INFO] [stderr] 273 | return time + self.config.max_request_timeout; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `time + self.config.max_request_timeout` [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/client/proto.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | return Ok(r); [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(r)` [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/client/proto.rs:367:13 [INFO] [stderr] | [INFO] [stderr] 367 | return Ok(Async::Ready(())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Async::Ready(()))` [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/client/proto.rs:369:13 [INFO] [stderr] | [INFO] [stderr] 369 | 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/websocket/dispatcher.rs:396:9 [INFO] [stderr] | [INFO] [stderr] 396 | 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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/websocket/keys.rs:9:18 [INFO] [stderr] | [INFO] [stderr] 9 | pub const GUID: &'static str = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'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: unneeded return statement [INFO] [stderr] --> src/websocket/keys.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | return Key(key); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Key(key)` [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/websocket/keys.rs:49:23 [INFO] [stderr] | [INFO] [stderr] 49 | const CHARS: &'static[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&[u8]` [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/websocket/keys.rs:82:23 [INFO] [stderr] | [INFO] [stderr] 82 | const CHARS: &'static[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZ\ [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&[u8]` [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/websocket/zero_copy.rs:126:9 [INFO] [stderr] | [INFO] [stderr] 126 | return Ok(Some((frame, start + size))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some((frame, start + size)))` [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/websocket/client.rs:269:9 [INFO] [stderr] | [INFO] [stderr] 269 | return Ok(Some(res)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(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/headers.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/headers.rs:65:5 [INFO] [stderr] | [INFO] [stderr] 65 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/headers.rs:97:5 [INFO] [stderr] | [INFO] [stderr] 97 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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/base_serializer.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | return value.iter().any(|&x| x == b'\r' || x == b'\n') [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `value.iter().any(|&x| x == b'\r' || x == b'\n')` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/chunked.rs:46:20 [INFO] [stderr] | [INFO] [stderr] 46 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 47 | | if *buffered + *pending + 2 <= buf.len() { [INFO] [stderr] 48 | | *buffered += *pending; [INFO] [stderr] 49 | | *pending = 0; [INFO] [stderr] ... | [INFO] [stderr] 55 | | } [INFO] [stderr] 56 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 46 | } else if *buffered + *pending + 2 <= buf.len() { [INFO] [stderr] 47 | *buffered += *pending; [INFO] [stderr] 48 | *pending = 0; [INFO] [stderr] 49 | // TODO(tailhook) optimize this [INFO] [stderr] 50 | buf.remove_range(*buffered..*buffered+2); [INFO] [stderr] 51 | } else { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/server/headers.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/server/websocket.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/client/encoder.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/client/head.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/client/parser.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/websocket/client.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/headers.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::ascii::AsciiExt': use inherent methods instead [INFO] [stderr] --> src/base_serializer.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::ascii::AsciiExt; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `server::Config` [INFO] [stderr] --> src/server/config.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / pub fn new() -> Config { [INFO] [stderr] 9 | | Config { [INFO] [stderr] 10 | | inflight_request_limit: 2, [INFO] [stderr] 11 | | inflight_request_prealloc: 0, [INFO] [stderr] ... | [INFO] [stderr] 19 | | } [INFO] [stderr] 20 | | } [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] 28 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/proto.rs:148:42 [INFO] [stderr] | [INFO] [stderr] 148 | KeepAlive | Connected if inbuf.in_buf.len() > 0 => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!inbuf.in_buf.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/server/proto.rs:337:12 [INFO] [stderr] | [INFO] [stderr] 337 | if self.waiting.len() > 0 { // if there are requests processing now [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.waiting.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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/server/request_target.rs:34:27 [INFO] [stderr] | [INFO] [stderr] 34 | fn authority_end_char(&x: &u8) -> bool { [INFO] [stderr] | ^^^ help: consider passing by value instead: `u8` [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: length comparison to zero [INFO] [stderr] --> src/server/request_target.rs:41:8 [INFO] [stderr] | [INFO] [stderr] 41 | if s.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `s.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/request_target.rs:44:22 [INFO] [stderr] | [INFO] [stderr] 44 | if s.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/websocket.rs:22:11 [INFO] [stderr] | [INFO] [stderr] 22 | while x.len() > 0 && matches!(x[0], b'\r' | b'\n' | b' ' | b'\t') { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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/server/websocket.rs:25:11 [INFO] [stderr] | [INFO] [stderr] 25 | while x.len() > 0 && matches!(x[x.len()-1], b'\r' | b'\n' | b' ' | b'\t') [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/websocket.rs:67:43 [INFO] [stderr] | [INFO] [stderr] 67 | protocols.extend(tokens.split(",") [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/websocket.rs:69:29 [INFO] [stderr] | [INFO] [stderr] 69 | .filter(|x| x.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/server/websocket.rs:74:44 [INFO] [stderr] | [INFO] [stderr] 74 | extensions.extend(tokens.split(",") [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/server/websocket.rs:76:29 [INFO] [stderr] | [INFO] [stderr] 76 | .filter(|x| x.len() > 0) [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!x.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: methods called `new` usually return `Self` [INFO] [stderr] --> src/server/buffered.rs:177:5 [INFO] [stderr] | [INFO] [stderr] 177 | / fn new(&self) -> R { [INFO] [stderr] 178 | | (self)() [INFO] [stderr] 179 | | } [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: you should consider deriving a `Default` implementation for `client::Config` [INFO] [stderr] --> src/client/config.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / pub fn new() -> Config { [INFO] [stderr] 9 | | Config { [INFO] [stderr] 10 | | inflight_request_limit: 1, [INFO] [stderr] 11 | | inflight_request_prealloc: 1, [INFO] [stderr] ... | [INFO] [stderr] 15 | | } [INFO] [stderr] 16 | | } [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] 28 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client/proto.rs:105:21 [INFO] [stderr] | [INFO] [stderr] 105 | self.waiting.len() == 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.waiting.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 seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/client/proto.rs:161:29 [INFO] [stderr] | [INFO] [stderr] 161 | / match self.writing { [INFO] [stderr] 162 | | OutState::Idle(_, ref mut time) => { [INFO] [stderr] 163 | | *time = Instant::now(); [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | _ => {} [INFO] [stderr] 166 | | } [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 OutState::Idle(_, ref mut time) = self.writing { [INFO] [stderr] 162 | *time = Instant::now(); [INFO] [stderr] 163 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client/proto.rs:256:20 [INFO] [stderr] | [INFO] [stderr] 256 | if self.waiting.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.waiting.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: called `.get().unwrap()` on a VecDeque. Using `[]` is more clear and more concise [INFO] [stderr] --> src/client/proto.rs:268:31 [INFO] [stderr] | [INFO] [stderr] 268 | let req = self.waiting.get(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.waiting[0]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client/proto.rs:286:12 [INFO] [stderr] | [INFO] [stderr] 286 | if self.waiting.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.waiting.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: called `.get().unwrap()` on a VecDeque. Using `[]` is more clear and more concise [INFO] [stderr] --> src/client/proto.rs:292:24 [INFO] [stderr] | [INFO] [stderr] 292 | let last = self.waiting.get(0).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.waiting[0]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/client/proto.rs:308:21 [INFO] [stderr] | [INFO] [stderr] 308 | self.waiting.len() == 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.waiting.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/client/proto.rs:363:12 [INFO] [stderr] | [INFO] [stderr] 363 | if self.waiting.len() == 0 && [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.waiting.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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/client/buffered.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | self.url.host_str().map(|x| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 61 | || e.add_header("Host", x).unwrap(); [INFO] [stderr] 62 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(x) = self.url.host_str() { e.add_header("Host", x).unwrap(); }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `websocket::Config` [INFO] [stderr] --> src/websocket/config.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | / pub fn new() -> Config { [INFO] [stderr] 9 | | Config { [INFO] [stderr] 10 | | ping_interval: Duration::new(10, 0), [INFO] [stderr] 11 | | message_timeout: Duration::new(30, 0), [INFO] [stderr] ... | [INFO] [stderr] 14 | | } [INFO] [stderr] 15 | | } [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] 27 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/websocket/dispatcher.rs:258:19 [INFO] [stderr] | [INFO] [stderr] 258 | while self.input.in_buf.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.input.in_buf.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: this loop could be written as a `while let` loop [INFO] [stderr] --> src/websocket/dispatcher.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | / loop { [INFO] [stderr] 352 | | match self.timeout.poll().map_err(|_| ErrorEnum::Timeout)? { [INFO] [stderr] 353 | | Async::Ready(()) => { [INFO] [stderr] 354 | | let deadline = min( [INFO] [stderr] ... | [INFO] [stderr] 391 | | } [INFO] [stderr] 392 | | } [INFO] [stderr] | |_________^ help: try: `while let Async::Ready(()) = self.timeout.poll().map_err(|_| ErrorEnum::Timeout)? { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `websocket::keys::Key` [INFO] [stderr] --> src/websocket/keys.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / pub fn new() -> Key { [INFO] [stderr] 26 | | let mut key = [0u8; 16]; [INFO] [stderr] 27 | | thread_rng().fill_bytes(&mut key); [INFO] [stderr] 28 | | return Key(key); [INFO] [stderr] 29 | | } [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] 21 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i*3` [INFO] [stderr] --> src/websocket/keys.rs:54:30 [INFO] [stderr] | [INFO] [stderr] 54 | let n = ((self.0[i*3+0] as usize) << 16) | [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i*4` [INFO] [stderr] --> src/websocket/keys.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | buf[i*4+0] = CHARS[(n >> 18) & 63]; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `n` [INFO] [stderr] --> src/websocket/keys.rs:60:32 [INFO] [stderr] | [INFO] [stderr] 60 | buf[i*4+3] = CHARS[(n >> 0) & 63]; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i*3` [INFO] [stderr] --> src/websocket/keys.rs:87:30 [INFO] [stderr] | [INFO] [stderr] 87 | let n = ((self.0[i*3+0] as usize) << 16) | [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `i*4` [INFO] [stderr] --> src/websocket/keys.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | buf[i*4+0] = CHARS[(n >> 18) & 63]; [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `n` [INFO] [stderr] --> src/websocket/keys.rs:93:32 [INFO] [stderr] | [INFO] [stderr] 93 | buf[i*4+3] = CHARS[(n >> 0) & 63]; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/websocket/zero_copy.rs:60:5 [INFO] [stderr] | [INFO] [stderr] 60 | / pub fn parse<'x>(buf: &'x mut Buf, limit: usize, masked: bool) [INFO] [stderr] 61 | | -> Result, usize)>, ErrorEnum> [INFO] [stderr] 62 | | { [INFO] [stderr] 63 | | use self::Frame::*; [INFO] [stderr] ... | [INFO] [stderr] 126 | | return Ok(Some((frame, start + size))); [INFO] [stderr] 127 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u64 may become silently lossy if types change [INFO] [stderr] --> src/websocket/zero_copy.rs:74:22 [INFO] [stderr] | [INFO] [stderr] 74 | (BigEndian::read_u16(&buf[2..4]) as u64, 4) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(BigEndian::read_u16(&buf[2..4]))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/websocket/zero_copy.rs:82:26 [INFO] [stderr] | [INFO] [stderr] 82 | size => (size as u64, 2), [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(size)` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/websocket/client.rs:232:13 [INFO] [stderr] | [INFO] [stderr] 232 | let ref mut buf = self.input.as_mut() [INFO] [stderr] | ^^^^^^^^^^^ [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] help: try [INFO] [stderr] | [INFO] [stderr] 232 | let buf = &mut self.input.as_mut() [INFO] [stderr] 233 | .expect("buffer still exists") [INFO] [stderr] 234 | .in_buf; [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/enums/status.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn code(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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/enums/status.rs:116:19 [INFO] [stderr] | [INFO] [stderr] 116 | pub fn reason(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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/enums/status.rs:172:30 [INFO] [stderr] | [INFO] [stderr] 172 | pub fn response_has_body(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/base_serializer.rs:430:9 [INFO] [stderr] | [INFO] [stderr] 430 | buf.write(b"\r\n").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/base_serializer.rs:465:21 [INFO] [stderr] | [INFO] [stderr] 465 | buf.write(data).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/base_serializer.rs:469:55 [INFO] [stderr] | [INFO] [stderr] 469 | ChunkedBody { is_head } => if !is_head && data.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/base_serializer.rs:471:17 [INFO] [stderr] | [INFO] [stderr] 471 | buf.write(data).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/base_serializer.rs:472:17 [INFO] [stderr] | [INFO] [stderr] 472 | buf.write(b"\r\n").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/base_serializer.rs:512:17 [INFO] [stderr] | [INFO] [stderr] 512 | buf.write(b"0\r\n\r\n").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `tk-http`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "1bcaf77eb9b6c92421977374aaebe13db38a7e0a804a81f0d626112821e26fb0"` [INFO] running `"docker" "rm" "-f" "1bcaf77eb9b6c92421977374aaebe13db38a7e0a804a81f0d626112821e26fb0"` [INFO] [stdout] 1bcaf77eb9b6c92421977374aaebe13db38a7e0a804a81f0d626112821e26fb0