[INFO] crate rustls 0.14.0 is already in cache [INFO] extracting crate rustls 0.14.0 into work/ex/clippy-test-run/sources/stable/reg/rustls/0.14.0 [INFO] extracting crate rustls 0.14.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rustls/0.14.0 [INFO] validating manifest of rustls-0.14.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 rustls-0.14.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 rustls-0.14.0 [INFO] removed 0 missing examples [INFO] finished frobbing rustls-0.14.0 [INFO] frobbed toml for rustls-0.14.0 written to work/ex/clippy-test-run/sources/stable/reg/rustls/0.14.0/Cargo.toml [INFO] started frobbing rustls-0.14.0 [INFO] removed 0 missing examples [INFO] finished frobbing rustls-0.14.0 [INFO] frobbed toml for rustls-0.14.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rustls/0.14.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 rustls-0.14.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rustls/0.14.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] f98ee160e5fba3afd62054fec9fbd1c41cf73a9d3783890d8d59cbe972c617c0 [INFO] running `"docker" "start" "-a" "f98ee160e5fba3afd62054fec9fbd1c41cf73a9d3783890d8d59cbe972c617c0"` [INFO] [stderr] Compiling ring v0.13.5 [INFO] [stderr] Checking vecio v0.1.0 [INFO] [stderr] Checking webpki v0.18.1 [INFO] [stderr] Checking sct v0.4.0 [INFO] [stderr] Checking ct-logs v0.4.0 [INFO] [stderr] Checking rustls v0.14.0 (/opt/crater/workdir) [INFO] [stderr] Checking webpki-roots v0.15.0 [INFO] [stderr] warning: lint name `needless_pass_by_value` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:199:45 [INFO] [stderr] | [INFO] [stderr] 199 | #![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::needless_pass_by_value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: lint name `ptr_arg` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:202:45 [INFO] [stderr] | [INFO] [stderr] 202 | #![cfg_attr(feature = "cargo-clippy", allow(ptr_arg))] [INFO] [stderr] | ^^^^^^^ help: change it to: `clippy::ptr_arg` [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bs_debug.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | write!(fmt, "\\n")?; [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/keylog.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | write!(self.buf, "\n")?; [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: lint name `needless_pass_by_value` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:199:45 [INFO] [stderr] | [INFO] [stderr] 199 | #![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::needless_pass_by_value` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: lint name `ptr_arg` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:202:45 [INFO] [stderr] | [INFO] [stderr] 202 | #![cfg_attr(feature = "cargo-clippy", allow(ptr_arg))] [INFO] [stderr] | ^^^^^^^ help: change it to: `clippy::ptr_arg` [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/bs_debug.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | write!(fmt, "\\n")?; [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: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/keylog.rs:101:9 [INFO] [stderr] | [INFO] [stderr] 101 | write!(self.buf, "\n")?; [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: lint name `needless_pass_by_value` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:199:45 [INFO] [stderr] | [INFO] [stderr] 199 | #![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::needless_pass_by_value` [INFO] [stderr] [INFO] [stderr] warning: lint name `needless_pass_by_value` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/lib.rs:199:45 [INFO] [stderr] | [INFO] [stderr] 199 | #![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::needless_pass_by_value` [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/msgs/deframer.rs:131:27 [INFO] [stderr] | [INFO] [stderr] 131 | const FIRST_MESSAGE: &'static [u8] = include_bytes!("../testdata/deframer-test.1.bin"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/msgs/deframer.rs:132:28 [INFO] [stderr] | [INFO] [stderr] 132 | const SECOND_MESSAGE: &'static [u8] = include_bytes!("../testdata/deframer-test.2.bin"); [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: this is a decimal constant [INFO] [stderr] --> src/msgs/handshake_test.rs:114:17 [INFO] [stderr] | [INFO] [stderr] 114 | 1, 0, 02, 0x6c, 0x6f [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::zero_prefixed_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 114 | 1, 0, 2, 0x6c, 0x6f [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 114 | 1, 0, 0o2, 0x6c, 0x6f [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: this is a decimal constant [INFO] [stderr] --> src/msgs/handshake_test.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | 1, 0, 02, 0x6c, 0x6f [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stderr] help: if you mean to use a decimal constant, remove the `0` to remove confusion [INFO] [stderr] | [INFO] [stderr] 131 | 1, 0, 2, 0x6c, 0x6f [INFO] [stderr] | ^ [INFO] [stderr] help: if you mean to use an octal constant, use `0o` [INFO] [stderr] | [INFO] [stderr] 131 | 1, 0, 0o2, 0x6c, 0x6f [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/msgs/handshake_test.rs:206:46 [INFO] [stderr] | [INFO] [stderr] 206 | assert_eq!(psk_id.obfuscated_ticket_age, 0x11223344); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1122_3344` [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/msgs/handshake_test.rs:214:46 [INFO] [stderr] | [INFO] [stderr] 214 | assert_eq!(psk_id.obfuscated_ticket_age, 0x11223344); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1122_3344` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/msgs/handshake_test.rs:235:58 [INFO] [stderr] | [INFO] [stderr] 235 | assert_eq!(psko.identities[0].obfuscated_ticket_age, 0x11223344); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1122_3344` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/msgs/handshake_test.rs:371:81 [INFO] [stderr] | [INFO] [stderr] 371 | PresharedKeyOffer::new(PresharedKeyIdentity::new(vec![3, 4, 5], 123456), [INFO] [stderr] | ^^^^^^ help: consider: `123_456` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/verifybench.rs:41:52 [INFO] [stderr] | [INFO] [stderr] 41 | Ok(webpki::Time::from_seconds_since_unix_epoch(1500000000)) [INFO] [stderr] | ^^^^^^^^^^ help: consider: `1_500_000_000` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `msgs::handshake::CertificatePayloadTLS13` [INFO] [stderr] --> src/msgs/handshake.rs:1486:5 [INFO] [stderr] | [INFO] [stderr] 1486 | / pub fn new() -> CertificatePayloadTLS13 { [INFO] [stderr] 1487 | | CertificatePayloadTLS13 { [INFO] [stderr] 1488 | | context: PayloadU8::empty(), [INFO] [stderr] 1489 | | list: Vec::new(), [INFO] [stderr] 1490 | | } [INFO] [stderr] 1491 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1485 | impl Default for msgs::handshake::CertificatePayloadTLS13 { [INFO] [stderr] 1486 | fn default() -> Self { [INFO] [stderr] 1487 | Self::new() [INFO] [stderr] 1488 | } [INFO] [stderr] 1489 | } [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/msgs/handshake.rs:1641:29 [INFO] [stderr] | [INFO] [stderr] 1641 | pub fn new(named_group: &NamedGroup, pubkey: &[u8]) -> ServerECDHParams { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `NamedGroup` [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 should consider deriving a `Default` implementation for `msgs::deframer::MessageDeframer` [INFO] [stderr] --> src/msgs/deframer.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / pub fn new() -> MessageDeframer { [INFO] [stderr] 35 | | MessageDeframer { [INFO] [stderr] 36 | | frames: VecDeque::new(), [INFO] [stderr] 37 | | desynced: false, [INFO] [stderr] 38 | | buf: Vec::with_capacity(MAX_MESSAGE), [INFO] [stderr] 39 | | } [INFO] [stderr] 40 | | } [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] 19 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `msgs::hsjoiner::HandshakeJoiner` [INFO] [stderr] --> src/msgs/hsjoiner.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / pub fn new() -> HandshakeJoiner { [INFO] [stderr] 26 | | HandshakeJoiner { [INFO] [stderr] 27 | | frames: VecDeque::new(), [INFO] [stderr] 28 | | buf: Vec::new(), [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | } [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] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: slow zero-filling initialization [INFO] [stderr] --> src/rand.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 19 | let mut v = Vec::with_capacity(len); [INFO] [stderr] | ----------------------- help: consider replace allocation with: `vec![0; len]` [INFO] [stderr] 20 | v.resize(len, 0u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::slow_vector_initialization)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/key_schedule.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | fn to_bytes(&self) -> &'static [u8] { [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/session.rs:796:36 [INFO] [stderr] | [INFO] [stderr] 796 | kur: &KeyUpdateRequest, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `KeyUpdateRequest` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/verify.rs:168:5 [INFO] [stderr] | [INFO] [stderr] 168 | / pub fn new(roots: RootCertStore) -> Arc { [INFO] [stderr] 169 | | Arc::new(AllowAnyAuthenticatedClient { roots }) [INFO] [stderr] 170 | | } [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/verify.rs:208:5 [INFO] [stderr] | [INFO] [stderr] 208 | / pub fn new(roots: RootCertStore) -> Arc { [INFO] [stderr] 209 | | Arc::new(AllowAnyAnonymousOrAuthenticatedClient { [INFO] [stderr] 210 | | inner: AllowAnyAuthenticatedClient { roots } [INFO] [stderr] 211 | | }) [INFO] [stderr] 212 | | } [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/verify.rs:235:5 [INFO] [stderr] | [INFO] [stderr] 235 | pub fn new() -> Arc { Arc::new(NoClientAuth) } [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/suites.rs:406:36 [INFO] [stderr] | [INFO] [stderr] 406 | sigalg: &SignatureAlgorithm) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `SignatureAlgorithm` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/ticketer.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | / pub fn new() -> Arc { [INFO] [stderr] 202 | | Arc::new(TicketSwitcher::new(6 * 60 * 60, generate_inner)) [INFO] [stderr] 203 | | } [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/server/hs.rs:688:30 [INFO] [stderr] | [INFO] [stderr] 688 | group: &NamedGroup, [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `NamedGroup` [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: you should consider deriving a `Default` implementation for `server::handy::ResolvesServerCertUsingSNI` [INFO] [stderr] --> src/server/handy.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | / pub fn new() -> ResolvesServerCertUsingSNI { [INFO] [stderr] 156 | | ResolvesServerCertUsingSNI { by_name: collections::HashMap::new() } [INFO] [stderr] 157 | | } [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] 149 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server/mod.rs:393:9 [INFO] [stderr] | [INFO] [stderr] 393 | / if self.client_cert_chain.is_none() { [INFO] [stderr] 394 | | return None; [INFO] [stderr] 395 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.client_cert_chain?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/client/hs.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / fn emit_client_hello_for_retry(sess: &mut ClientSessionImpl, [INFO] [stderr] 233 | | mut handshake: HandshakeDetails, [INFO] [stderr] 234 | | mut hello: ClientHelloDetails, [INFO] [stderr] 235 | | retryreq: Option<&HelloRetryRequest>) -> NextState { [INFO] [stderr] ... | [INFO] [stderr] 466 | | } [INFO] [stderr] 467 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `client::ClientConfig` [INFO] [stderr] --> src/client/mod.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | / pub fn new() -> ClientConfig { [INFO] [stderr] 143 | | ClientConfig { [INFO] [stderr] 144 | | ciphersuites: ALL_CIPHERSUITES.to_vec(), [INFO] [stderr] 145 | | root_store: anchors::RootCertStore::empty(), [INFO] [stderr] ... | [INFO] [stderr] 157 | | } [INFO] [stderr] 158 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 136 | impl Default for client::ClientConfig { [INFO] [stderr] 137 | fn default() -> Self { [INFO] [stderr] 138 | Self::new() [INFO] [stderr] 139 | } [INFO] [stderr] 140 | } [INFO] [stderr] | [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/client/mod.rs:612:5 [INFO] [stderr] | [INFO] [stderr] 612 | / pub fn early_data<'a>(&'a mut self) -> Option> { [INFO] [stderr] 613 | | if self.imp.early_data.is_enabled() { [INFO] [stderr] 614 | | Some(WriteEarlyData::new(&mut self.imp)) [INFO] [stderr] 615 | | } else { [INFO] [stderr] 616 | | None [INFO] [stderr] 617 | | } [INFO] [stderr] 618 | | } [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: you should consider adding a `Default` implementation for `keylog::KeyLogFile` [INFO] [stderr] --> src/keylog.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | / pub fn new() -> Self { [INFO] [stderr] 120 | | KeyLogFile(Mutex::new(KeyLogFileInner::new())) [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 116 | impl Default for keylog::KeyLogFile { [INFO] [stderr] 117 | fn default() -> Self { [INFO] [stderr] 118 | Self::new() [INFO] [stderr] 119 | } [INFO] [stderr] 120 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/sign.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / fn new(key: Arc, scheme: SignatureScheme) -> Box { [INFO] [stderr] 213 | | let encoding: &signature::RSAEncoding = match scheme { [INFO] [stderr] 214 | | SignatureScheme::RSA_PKCS1_SHA256 => &signature::RSA_PKCS1_SHA256, [INFO] [stderr] 215 | | SignatureScheme::RSA_PKCS1_SHA384 => &signature::RSA_PKCS1_SHA384, [INFO] [stderr] ... | [INFO] [stderr] 223 | | Box::new(RSASigner { key, scheme, encoding }) [INFO] [stderr] 224 | | } [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: redundant field names in struct initialization [INFO] [stderr] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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: you should consider adding a `Default` implementation for `msgs::handshake::CertificatePayloadTLS13` [INFO] [stderr] --> src/msgs/handshake.rs:1486:5 [INFO] [stderr] | [INFO] [stderr] 1486 | / pub fn new() -> CertificatePayloadTLS13 { [INFO] [stderr] 1487 | | CertificatePayloadTLS13 { [INFO] [stderr] 1488 | | context: PayloadU8::empty(), [INFO] [stderr] 1489 | | list: Vec::new(), [INFO] [stderr] 1490 | | } [INFO] [stderr] 1491 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1485 | impl Default for msgs::handshake::CertificatePayloadTLS13 { [INFO] [stderr] 1486 | fn default() -> Self { [INFO] [stderr] 1487 | Self::new() [INFO] [stderr] 1488 | } [INFO] [stderr] 1489 | } [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/msgs/handshake.rs:1641:29 [INFO] [stderr] | [INFO] [stderr] 1641 | pub fn new(named_group: &NamedGroup, pubkey: &[u8]) -> ServerECDHParams { [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `NamedGroup` [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 should consider deriving a `Default` implementation for `msgs::deframer::MessageDeframer` [INFO] [stderr] --> src/msgs/deframer.rs:34:5 [INFO] [stderr] | [INFO] [stderr] 34 | / pub fn new() -> MessageDeframer { [INFO] [stderr] 35 | | MessageDeframer { [INFO] [stderr] 36 | | frames: VecDeque::new(), [INFO] [stderr] 37 | | desynced: false, [INFO] [stderr] 38 | | buf: Vec::with_capacity(MAX_MESSAGE), [INFO] [stderr] 39 | | } [INFO] [stderr] 40 | | } [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] 19 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/msgs/deframer.rs:172:49 [INFO] [stderr] | [INFO] [stderr] 172 | assert_len(1, input_bytes(d, &bytes[i..i + 1])); [INFO] [stderr] | ^^^^^^^^ help: use: `i..=i` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/msgs/fragmenter.rs:76:20 [INFO] [stderr] | [INFO] [stderr] 76 | typ: &ContentType, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider passing by value instead: `ContentType` [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/msgs/fragmenter.rs:77:24 [INFO] [stderr] | [INFO] [stderr] 77 | version: &ProtocolVersion, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider passing by value instead: `ProtocolVersion` [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: you should consider deriving a `Default` implementation for `msgs::hsjoiner::HandshakeJoiner` [INFO] [stderr] --> src/msgs/hsjoiner.rs:25:5 [INFO] [stderr] | [INFO] [stderr] 25 | / pub fn new() -> HandshakeJoiner { [INFO] [stderr] 26 | | HandshakeJoiner { [INFO] [stderr] 27 | | frames: VecDeque::new(), [INFO] [stderr] 28 | | buf: Vec::new(), [INFO] [stderr] 29 | | } [INFO] [stderr] 30 | | } [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] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/internal/bench.rs:59:25 [INFO] [stderr] | [INFO] [stderr] 59 | let mut buf = [0u8; 262144]; [INFO] [stderr] | ^^^^^^ help: consider: `262_144` [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: unneeded unit expression [INFO] [stderr] --> examples/internal/bench.rs:334:13 [INFO] [stderr] | [INFO] [stderr] 334 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/internal/bench.rs:377:36 [INFO] [stderr] | [INFO] [stderr] 377 | .unwrap_or(1048576); [INFO] [stderr] | ^^^^^^^ help: consider: `1_048_576` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/msgs/handshake_test.rs:828:9 [INFO] [stderr] | [INFO] [stderr] 828 | for ref hm in hms.iter() { [INFO] [stderr] | ^^^^^^ ---------- help: try: `let hm = &hms.iter();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/msgs/handshake_test.rs:915:9 [INFO] [stderr] | [INFO] [stderr] 915 | for ref hm in hms.iter() { [INFO] [stderr] | ^^^^^^ ---------- help: try: `let hm = &hms.iter();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/msgs/enums_test.rs:16:6 [INFO] [stderr] | [INFO] [stderr] 16 | (enc[0] as u16 >> 8) | (enc[1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `u16::from(enc[0])` [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 u16 may become silently lossy if types change [INFO] [stderr] --> src/msgs/enums_test.rs:16:28 [INFO] [stderr] | [INFO] [stderr] 16 | (enc[0] as u16 >> 8) | (enc[1] as u16) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `u16::from(enc[1])` [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: redundant field names in struct initialization [INFO] [stderr] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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: an inclusive range would be more readable [INFO] [stderr] --> src/msgs/enums_test.rs:23:16 [INFO] [stderr] | [INFO] [stderr] 23 | for val in first_v..last_v + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `first_v..=last_v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/msgs/enums_test.rs:37:16 [INFO] [stderr] | [INFO] [stderr] 37 | for val in first_v..last_v + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: use: `first_v..=last_v` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/msgs/mod.rs:45:21 [INFO] [stderr] | [INFO] [stderr] 45 | assert!(out.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!out.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: slow zero-filling initialization [INFO] [stderr] --> src/rand.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 19 | let mut v = Vec::with_capacity(len); [INFO] [stderr] | ----------------------- help: consider replace allocation with: `vec![0; len]` [INFO] [stderr] 20 | v.resize(len, 0u8); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::slow_vector_initialization)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#slow_vector_initialization [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/key_schedule.rs:22:17 [INFO] [stderr] | [INFO] [stderr] 22 | fn to_bytes(&self) -> &'static [u8] { [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: identical conversion [INFO] [stderr] --> examples/internal/bench.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | f64::from(dur) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider removing `f64::from()`: `dur` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> examples/internal/bench.rs:74:26 [INFO] [stderr] | [INFO] [stderr] 74 | read_time += f64::from(duration_nanos(end.duration_since(start))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `f64::from()`: `duration_nanos(end.duration_since(start))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> examples/internal/bench.rs:110:14 [INFO] [stderr] | [INFO] [stderr] 110 | fn label(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> examples/internal/bench.rs:135:17 [INFO] [stderr] | [INFO] [stderr] 135 | fn path_for(&self, part: &str) -> String { [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] --> examples/internal/bench.rs:142:18 [INFO] [stderr] | [INFO] [stderr] 142 | fn get_chain(&self) -> Vec { [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] --> examples/internal/bench.rs:148:16 [INFO] [stderr] | [INFO] [stderr] 148 | fn get_key(&self) -> rustls::PrivateKey { [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] --> examples/internal/bench.rs:155:25 [INFO] [stderr] | [INFO] [stderr] 155 | fn get_client_chain(&self) -> Vec { [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] --> examples/internal/bench.rs:161:23 [INFO] [stderr] | [INFO] [stderr] 161 | fn get_client_key(&self) -> rustls::PrivateKey { [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/session.rs:796:36 [INFO] [stderr] | [INFO] [stderr] 796 | kur: &KeyUpdateRequest, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `KeyUpdateRequest` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/verify.rs:168:5 [INFO] [stderr] | [INFO] [stderr] 168 | / pub fn new(roots: RootCertStore) -> Arc { [INFO] [stderr] 169 | | Arc::new(AllowAnyAuthenticatedClient { roots }) [INFO] [stderr] 170 | | } [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/verify.rs:208:5 [INFO] [stderr] | [INFO] [stderr] 208 | / pub fn new(roots: RootCertStore) -> Arc { [INFO] [stderr] 209 | | Arc::new(AllowAnyAnonymousOrAuthenticatedClient { [INFO] [stderr] 210 | | inner: AllowAnyAuthenticatedClient { roots } [INFO] [stderr] 211 | | }) [INFO] [stderr] 212 | | } [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/verify.rs:235:5 [INFO] [stderr] | [INFO] [stderr] 235 | pub fn new() -> Arc { Arc::new(NoClientAuth) } [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/verifybench.rs:19:35 [INFO] [stderr] | [INFO] [stderr] 19 | ((d.as_secs() as f64) * 1e9 + (d.subsec_nanos() as f64)) as u64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(d.subsec_nanos())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/suites.rs:406:36 [INFO] [stderr] | [INFO] [stderr] 406 | sigalg: &SignatureAlgorithm) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider passing by value instead: `SignatureAlgorithm` [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: methods called `new` usually return `Self` [INFO] [stderr] --> src/ticketer.rs:201:5 [INFO] [stderr] | [INFO] [stderr] 201 | / pub fn new() -> Arc { [INFO] [stderr] 202 | | Arc::new(TicketSwitcher::new(6 * 60 * 60, generate_inner)) [INFO] [stderr] 203 | | } [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/server/hs.rs:688:30 [INFO] [stderr] | [INFO] [stderr] 688 | group: &NamedGroup, [INFO] [stderr] | ^^^^^^^^^^^ help: consider passing by value instead: `NamedGroup` [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: redundant field names in struct initialization [INFO] [stderr] --> tests/common/mod.rs:618:13 [INFO] [stderr] | [INFO] [stderr] 618 | port: port, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `port` [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] --> tests/api.rs:605:13 [INFO] [stderr] | [INFO] [stderr] 605 | expect_queries: expect_queries [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `expect_queries` [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: you should consider deriving a `Default` implementation for `server::handy::ResolvesServerCertUsingSNI` [INFO] [stderr] --> src/server/handy.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | / pub fn new() -> ResolvesServerCertUsingSNI { [INFO] [stderr] 156 | | ResolvesServerCertUsingSNI { by_name: collections::HashMap::new() } [INFO] [stderr] 157 | | } [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] 149 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/server/mod.rs:393:9 [INFO] [stderr] | [INFO] [stderr] 393 | / if self.client_cert_chain.is_none() { [INFO] [stderr] 394 | | return None; [INFO] [stderr] 395 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `self.client_cert_chain?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/client/hs.rs:232:1 [INFO] [stderr] | [INFO] [stderr] 232 | / fn emit_client_hello_for_retry(sess: &mut ClientSessionImpl, [INFO] [stderr] 233 | | mut handshake: HandshakeDetails, [INFO] [stderr] 234 | | mut hello: ClientHelloDetails, [INFO] [stderr] 235 | | retryreq: Option<&HelloRetryRequest>) -> NextState { [INFO] [stderr] ... | [INFO] [stderr] 466 | | } [INFO] [stderr] 467 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/tlsclient.rs:280:15 [INFO] [stderr] | [INFO] [stderr] 280 | const USAGE: &'static str = " [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: you should consider adding a `Default` implementation for `client::ClientConfig` [INFO] [stderr] --> src/client/mod.rs:142:5 [INFO] [stderr] | [INFO] [stderr] 142 | / pub fn new() -> ClientConfig { [INFO] [stderr] 143 | | ClientConfig { [INFO] [stderr] 144 | | ciphersuites: ALL_CIPHERSUITES.to_vec(), [INFO] [stderr] 145 | | root_store: anchors::RootCertStore::empty(), [INFO] [stderr] ... | [INFO] [stderr] 157 | | } [INFO] [stderr] 158 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 136 | impl Default for client::ClientConfig { [INFO] [stderr] 137 | fn default() -> Self { [INFO] [stderr] 138 | Self::new() [INFO] [stderr] 139 | } [INFO] [stderr] 140 | } [INFO] [stderr] | [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/client/mod.rs:612:5 [INFO] [stderr] | [INFO] [stderr] 612 | / pub fn early_data<'a>(&'a mut self) -> Option> { [INFO] [stderr] 613 | | if self.imp.early_data.is_enabled() { [INFO] [stderr] 614 | | Some(WriteEarlyData::new(&mut self.imp)) [INFO] [stderr] 615 | | } else { [INFO] [stderr] 616 | | None [INFO] [stderr] 617 | | } [INFO] [stderr] 618 | | } [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: you should consider adding a `Default` implementation for `keylog::KeyLogFile` [INFO] [stderr] --> src/keylog.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | / pub fn new() -> Self { [INFO] [stderr] 120 | | KeyLogFile(Mutex::new(KeyLogFileInner::new())) [INFO] [stderr] 121 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 116 | impl Default for keylog::KeyLogFile { [INFO] [stderr] 117 | fn default() -> Self { [INFO] [stderr] 118 | Self::new() [INFO] [stderr] 119 | } [INFO] [stderr] 120 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/sign.rs:212:5 [INFO] [stderr] | [INFO] [stderr] 212 | / fn new(key: Arc, scheme: SignatureScheme) -> Box { [INFO] [stderr] 213 | | let encoding: &signature::RSAEncoding = match scheme { [INFO] [stderr] 214 | | SignatureScheme::RSA_PKCS1_SHA256 => &signature::RSA_PKCS1_SHA256, [INFO] [stderr] 215 | | SignatureScheme::RSA_PKCS1_SHA384 => &signature::RSA_PKCS1_SHA384, [INFO] [stderr] ... | [INFO] [stderr] 223 | | Box::new(RSASigner { key, scheme, encoding }) [INFO] [stderr] 224 | | } [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] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> examples/simpleclient.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | / tls.write(concat!("GET / HTTP/1.1\r\n", [INFO] [stderr] 21 | | "Host: google.com\r\n", [INFO] [stderr] 22 | | "Connection: close\r\n", [INFO] [stderr] 23 | | "Accept-Encoding: identity\r\n", [INFO] [stderr] 24 | | "\r\n") [INFO] [stderr] 25 | | .as_bytes()) [INFO] [stderr] 26 | | .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: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustls`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> tests/api.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | let mut buf = [0u8; 262144]; [INFO] [stderr] | ^^^^^^ help: consider: `262_144` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> examples/tlsserver.rs:367:15 [INFO] [stderr] | [INFO] [stderr] 367 | const USAGE: &'static str = [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> tests/api.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | fn path_for(&self, part: &str) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> tests/api.rs:66:18 [INFO] [stderr] | [INFO] [stderr] 66 | fn get_chain(&self) -> Vec { [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] --> tests/api.rs:72:16 [INFO] [stderr] | [INFO] [stderr] 72 | fn get_key(&self) -> PrivateKey { [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] --> tests/api.rs:79:25 [INFO] [stderr] | [INFO] [stderr] 79 | fn get_client_chain(&self) -> Vec { [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] --> tests/api.rs:85:23 [INFO] [stderr] | [INFO] [stderr] 85 | fn get_client_key(&self) -> PrivateKey { [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: redundant closure found [INFO] [stderr] --> tests/api.rs:199:22 [INFO] [stderr] | [INFO] [stderr] 199 | .map_err(|err| TLSErrorFromPeer::Server(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `TLSErrorFromPeer::Server` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> tests/api.rs:202:22 [INFO] [stderr] | [INFO] [stderr] 202 | .map_err(|err| TLSErrorFromPeer::Client(err))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `TLSErrorFromPeer::Client` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> examples/tlsserver.rs:516:5 [INFO] [stderr] | [INFO] [stderr] 516 | / if let &Some(ref name) = filename { [INFO] [stderr] 517 | | fs::File::open(name) [INFO] [stderr] 518 | | .expect("cannot open ocsp file") [INFO] [stderr] 519 | | .read_to_end(&mut ret) [INFO] [stderr] 520 | | .unwrap(); [INFO] [stderr] 521 | | } [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] 516 | if let Some(ref name) = *filename { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> tests/api.rs:518:12 [INFO] [stderr] | [INFO] [stderr] 518 | if sigschemes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `sigschemes.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] --> tests/api.rs:624:12 [INFO] [stderr] | [INFO] [stderr] 624 | if acceptable_issuers.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `acceptable_issuers.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] --> tests/api.rs:628:12 [INFO] [stderr] | [INFO] [stderr] 628 | if sigschemes.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `sigschemes.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: statement with no effect [INFO] [stderr] --> tests/api.rs:696:5 [INFO] [stderr] | [INFO] [stderr] 696 | &server as &Send; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::no_effect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> tests/api.rs:697:5 [INFO] [stderr] | [INFO] [stderr] 697 | &server as &Sync; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> tests/api.rs:703:5 [INFO] [stderr] | [INFO] [stderr] 703 | &client as &Send; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] warning: statement with no effect [INFO] [stderr] --> tests/api.rs:704:5 [INFO] [stderr] | [INFO] [stderr] 704 | &client as &Sync; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#no_effect [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> tests/api.rs:887:9 [INFO] [stderr] | [INFO] [stderr] 887 | client.write(b"01234567890123456789").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] --> tests/api.rs:888:9 [INFO] [stderr] | [INFO] [stderr] 888 | client.write(b"01234567890123456789").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] --> tests/api.rs:906:9 [INFO] [stderr] | [INFO] [stderr] 906 | server.write(b"01234567890123456789").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] --> tests/api.rs:946:9 [INFO] [stderr] | [INFO] [stderr] 946 | server.write(b"01234567890123456789").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] --> tests/api.rs:947:9 [INFO] [stderr] | [INFO] [stderr] 947 | server.write(b"01234567890123456789").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] --> tests/api.rs:965:9 [INFO] [stderr] | [INFO] [stderr] 965 | client.write(b"01234567890123456789").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] --> tests/api.rs:1009:9 [INFO] [stderr] | [INFO] [stderr] 1009 | server.write(b"world").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] --> tests/api.rs:1024:9 [INFO] [stderr] | [INFO] [stderr] 1024 | server.write(b"world").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] --> tests/api.rs:1067:9 [INFO] [stderr] | [INFO] [stderr] 1067 | client.write(b"world").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] --> tests/api.rs:1082:9 [INFO] [stderr] | [INFO] [stderr] 1082 | client.write(b"world").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] --> tests/api.rs:1127:5 [INFO] [stderr] | [INFO] [stderr] 1127 | client.write(b"hello").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] --> tests/api.rs:1144:5 [INFO] [stderr] | [INFO] [stderr] 1144 | client.write(b"hello").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] --> tests/api.rs:1203:5 [INFO] [stderr] | [INFO] [stderr] 1203 | client.write(b"world").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] --> tests/api.rs:1221:5 [INFO] [stderr] | [INFO] [stderr] 1221 | client.write(b"world").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] --> tests/api.rs:1642:5 [INFO] [stderr] | [INFO] [stderr] 1642 | server.write(b"01234567890123456789").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] --> tests/api.rs:1643:5 [INFO] [stderr] | [INFO] [stderr] 1643 | server.write(b"01234567890123456789").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] --> tests/api.rs:1658:5 [INFO] [stderr] | [INFO] [stderr] 1658 | client.write(b"01234567890123456789").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] --> tests/api.rs:1659:5 [INFO] [stderr] | [INFO] [stderr] 1659 | client.write(b"01234567890123456789").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] --> tests/api.rs:1673:5 [INFO] [stderr] | [INFO] [stderr] 1673 | server.write(b"01234567890123456789").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] --> tests/api.rs:1674:5 [INFO] [stderr] | [INFO] [stderr] 1674 | server.write(b"0123456789").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] --> tests/api.rs:1706:5 [INFO] [stderr] | [INFO] [stderr] 1706 | client.write(b"01234567890123456789").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] --> tests/api.rs:1707:5 [INFO] [stderr] | [INFO] [stderr] 1707 | client.write(b"0123456789").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] --> tests/api.rs:1740:5 [INFO] [stderr] | [INFO] [stderr] 1740 | server.write(b"01234567890123456789").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] --> examples/simple_0rtt_client.rs:29:9 [INFO] [stderr] | [INFO] [stderr] 29 | / early_data.write(request.as_bytes()) [INFO] [stderr] 30 | | .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: aborting due to 23 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustls`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustls`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f98ee160e5fba3afd62054fec9fbd1c41cf73a9d3783890d8d59cbe972c617c0"` [INFO] running `"docker" "rm" "-f" "f98ee160e5fba3afd62054fec9fbd1c41cf73a9d3783890d8d59cbe972c617c0"` [INFO] [stdout] f98ee160e5fba3afd62054fec9fbd1c41cf73a9d3783890d8d59cbe972c617c0