[INFO] crate www-authenticate 0.3.0 is already in cache [INFO] extracting crate www-authenticate 0.3.0 into work/ex/clippy-test-run/sources/stable/reg/www-authenticate/0.3.0 [INFO] extracting crate www-authenticate 0.3.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/www-authenticate/0.3.0 [INFO] validating manifest of www-authenticate-0.3.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 www-authenticate-0.3.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 www-authenticate-0.3.0 [INFO] finished frobbing www-authenticate-0.3.0 [INFO] frobbed toml for www-authenticate-0.3.0 written to work/ex/clippy-test-run/sources/stable/reg/www-authenticate/0.3.0/Cargo.toml [INFO] started frobbing www-authenticate-0.3.0 [INFO] finished frobbing www-authenticate-0.3.0 [INFO] frobbed toml for www-authenticate-0.3.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/www-authenticate/0.3.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 www-authenticate-0.3.0 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/www-authenticate/0.3.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] ff1d6aa999be6e9b5c54a708eff7e2114f54ff2d8c116a5928e6320934a38d42 [INFO] running `"docker" "start" "-a" "ff1d6aa999be6e9b5c54a708eff7e2114f54ff2d8c116a5928e6320934a38d42"` [INFO] [stderr] Checking hyperx v0.13.2 [INFO] [stderr] Checking www-authenticate v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:435:43 [INFO] [stderr] | [INFO] [stderr] 435 | Some(BasicChallenge { realm: realm }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `realm` [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/lib.rs:608:25 [INFO] [stderr] | [INFO] [stderr] 608 | realm: realm, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `realm` [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/lib.rs:610:25 [INFO] [stderr] | [INFO] [stderr] 610 | nonce: nonce, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nonce` [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/lib.rs:611:25 [INFO] [stderr] | [INFO] [stderr] 611 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/lib.rs:612:25 [INFO] [stderr] | [INFO] [stderr] 612 | stale: stale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stale` [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/lib.rs:613:25 [INFO] [stderr] | [INFO] [stderr] 613 | algorithm: algorithm, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `algorithm` [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/lib.rs:614:25 [INFO] [stderr] | [INFO] [stderr] 614 | qop: qop, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `qop` [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/lib.rs:616:25 [INFO] [stderr] | [INFO] [stderr] 616 | userhash: userhash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `userhash` [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/lib.rs:435:43 [INFO] [stderr] | [INFO] [stderr] 435 | Some(BasicChallenge { realm: realm }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `realm` [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/lib.rs:608:25 [INFO] [stderr] | [INFO] [stderr] 608 | realm: realm, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `realm` [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/lib.rs:610:25 [INFO] [stderr] | [INFO] [stderr] 610 | nonce: nonce, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `nonce` [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/lib.rs:611:25 [INFO] [stderr] | [INFO] [stderr] 611 | opaque: opaque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `opaque` [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/lib.rs:612:25 [INFO] [stderr] | [INFO] [stderr] 612 | stale: stale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `stale` [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/lib.rs:613:25 [INFO] [stderr] | [INFO] [stderr] 613 | algorithm: algorithm, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `algorithm` [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/lib.rs:614:25 [INFO] [stderr] | [INFO] [stderr] 614 | qop: qop, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `qop` [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/lib.rs:616:25 [INFO] [stderr] | [INFO] [stderr] 616 | userhash: userhash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `userhash` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:417:31 [INFO] [stderr] | [INFO] [stderr] 417 | Token68(_) => return None, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:425:33 [INFO] [stderr] | [INFO] [stderr] 425 | () [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:536:31 [INFO] [stderr] | [INFO] [stderr] 536 | Token68(_) => 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/lib.rs:570:25 [INFO] [stderr] | [INFO] [stderr] 570 | return Other(a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Other(a)` [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 unit expression [INFO] [stderr] --> src/lib.rs:594:33 [INFO] [stderr] | [INFO] [stderr] 594 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:901:24 [INFO] [stderr] | [INFO] [stderr] 901 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 902 | | if is_qdtext(self.cur()) { [INFO] [stderr] 903 | | s.push(self.cur()); [INFO] [stderr] 904 | | self.inc(1); [INFO] [stderr] ... | [INFO] [stderr] 907 | | } [INFO] [stderr] 908 | | } [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] 901 | } else if is_qdtext(self.cur()) { [INFO] [stderr] 902 | s.push(self.cur()); [INFO] [stderr] 903 | self.inc(1); [INFO] [stderr] 904 | } else { [INFO] [stderr] 905 | return Err(Error::Header); [INFO] [stderr] 906 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:417:31 [INFO] [stderr] | [INFO] [stderr] 417 | Token68(_) => return None, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/lib.rs:425:33 [INFO] [stderr] | [INFO] [stderr] 425 | () [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: unneeded return statement [INFO] [stderr] --> src/lib.rs:536:31 [INFO] [stderr] | [INFO] [stderr] 536 | Token68(_) => 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/lib.rs:570:25 [INFO] [stderr] | [INFO] [stderr] 570 | return Other(a); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Other(a)` [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 unit expression [INFO] [stderr] --> src/lib.rs:594:33 [INFO] [stderr] | [INFO] [stderr] 594 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/lib.rs:901:24 [INFO] [stderr] | [INFO] [stderr] 901 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 902 | | if is_qdtext(self.cur()) { [INFO] [stderr] 903 | | s.push(self.cur()); [INFO] [stderr] 904 | | self.inc(1); [INFO] [stderr] ... | [INFO] [stderr] 907 | | } [INFO] [stderr] 908 | | } [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] 901 | } else if is_qdtext(self.cur()) { [INFO] [stderr] 902 | s.push(self.cur()); [INFO] [stderr] 903 | self.inc(1); [INFO] [stderr] 904 | } else { [INFO] [stderr] 905 | return Err(Error::Header); [INFO] [stderr] 906 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/lib.rs:139:14 [INFO] [stderr] | [INFO] [stderr] 139 | .or_insert(Vec::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/lib.rs:147:14 [INFO] [stderr] | [INFO] [stderr] 147 | .or_insert(Vec::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/lib.rs:177:46 [INFO] [stderr] | [INFO] [stderr] 177 | let stream = parser::Stream::new(data.as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `data` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/lib.rs:191:22 [INFO] [stderr] | [INFO] [stderr] 191 | .or_insert(Vec::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `raw::ChallengeFields` [INFO] [stderr] --> src/lib.rs:296:9 [INFO] [stderr] | [INFO] [stderr] 296 | / pub fn new() -> Self { [INFO] [stderr] 297 | | ChallengeFields(HashMap::new()) [INFO] [stderr] 298 | | } [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] 293 | #[derive(Default)] [INFO] [stderr] 294 | pub struct ChallengeFields(HashMap, (String, Quote)>); [INFO] [stderr] | [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/lib.rs:422:21 [INFO] [stderr] | [INFO] [stderr] 422 | / match map.remove("charset") { [INFO] [stderr] 423 | | Some(c) => { [INFO] [stderr] 424 | | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 425 | | () [INFO] [stderr] ... | [INFO] [stderr] 430 | | None => (), [INFO] [stderr] 431 | | } [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] 422 | if let Some(c) = map.remove("charset") { [INFO] [stderr] 423 | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 424 | () [INFO] [stderr] 425 | } else { [INFO] [stderr] 426 | return None; [INFO] [stderr] 427 | } [INFO] [stderr] ... [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/lib.rs:591:21 [INFO] [stderr] | [INFO] [stderr] 591 | / match charset { [INFO] [stderr] 592 | | Some(c) => { [INFO] [stderr] 593 | | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 594 | | () [INFO] [stderr] ... | [INFO] [stderr] 599 | | None => (), [INFO] [stderr] 600 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 591 | if let Some(c) = charset { [INFO] [stderr] 592 | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 593 | () [INFO] [stderr] 594 | } else { [INFO] [stderr] 595 | return None; [INFO] [stderr] 596 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `self.realm`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:633:26 [INFO] [stderr] | [INFO] [stderr] 633 | for realm in self.realm { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for realm in self.realm` with `if let Some(realm) = self.realm` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.domain`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:637:27 [INFO] [stderr] | [INFO] [stderr] 637 | for domain in self.domain { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for domain in self.domain` with `if let Some(domain) = self.domain` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.nonce`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:644:26 [INFO] [stderr] | [INFO] [stderr] 644 | for nonce in self.nonce { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for nonce in self.nonce` with `if let Some(nonce) = self.nonce` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.opaque`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:647:27 [INFO] [stderr] | [INFO] [stderr] 647 | for opaque in self.opaque { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for opaque in self.opaque` with `if let Some(opaque) = self.opaque` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.stale`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:650:26 [INFO] [stderr] | [INFO] [stderr] 650 | for stale in self.stale { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for stale in self.stale` with `if let Some(stale) = self.stale` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.algorithm`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:653:30 [INFO] [stderr] | [INFO] [stderr] 653 | for algorithm in self.algorithm { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for algorithm in self.algorithm` with `if let Some(algorithm) = self.algorithm` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.qop`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:656:24 [INFO] [stderr] | [INFO] [stderr] 656 | for qop in self.qop { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for qop in self.qop` with `if let Some(qop) = self.qop` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.userhash`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:663:29 [INFO] [stderr] | [INFO] [stderr] 663 | for userhash in self.userhash { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for userhash in self.userhash` with `if let Some(userhash) = self.userhash` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/lib.rs:830:20 [INFO] [stderr] | [INFO] [stderr] 830 | if b.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.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] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `www-authenticate`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/lib.rs:139:14 [INFO] [stderr] | [INFO] [stderr] 139 | .or_insert(Vec::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/lib.rs:147:14 [INFO] [stderr] | [INFO] [stderr] 147 | .or_insert(Vec::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/lib.rs:177:46 [INFO] [stderr] | [INFO] [stderr] 177 | let stream = parser::Stream::new(data.as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `data` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `or_insert` followed by a function call [INFO] [stderr] --> src/lib.rs:191:22 [INFO] [stderr] | [INFO] [stderr] 191 | .or_insert(Vec::new()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_insert_with(Vec::new)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `raw::ChallengeFields` [INFO] [stderr] --> src/lib.rs:296:9 [INFO] [stderr] | [INFO] [stderr] 296 | / pub fn new() -> Self { [INFO] [stderr] 297 | | ChallengeFields(HashMap::new()) [INFO] [stderr] 298 | | } [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] 293 | #[derive(Default)] [INFO] [stderr] 294 | pub struct ChallengeFields(HashMap, (String, Quote)>); [INFO] [stderr] | [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/lib.rs:422:21 [INFO] [stderr] | [INFO] [stderr] 422 | / match map.remove("charset") { [INFO] [stderr] 423 | | Some(c) => { [INFO] [stderr] 424 | | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 425 | | () [INFO] [stderr] ... | [INFO] [stderr] 430 | | None => (), [INFO] [stderr] 431 | | } [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] 422 | if let Some(c) = map.remove("charset") { [INFO] [stderr] 423 | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 424 | () [INFO] [stderr] 425 | } else { [INFO] [stderr] 426 | return None; [INFO] [stderr] 427 | } [INFO] [stderr] ... [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/lib.rs:591:21 [INFO] [stderr] | [INFO] [stderr] 591 | / match charset { [INFO] [stderr] 592 | | Some(c) => { [INFO] [stderr] 593 | | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 594 | | () [INFO] [stderr] ... | [INFO] [stderr] 599 | | None => (), [INFO] [stderr] 600 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 591 | if let Some(c) = charset { [INFO] [stderr] 592 | if UniCase(&c) == UniCase("UTF-8") { [INFO] [stderr] 593 | () [INFO] [stderr] 594 | } else { [INFO] [stderr] 595 | return None; [INFO] [stderr] 596 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `self.realm`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:633:26 [INFO] [stderr] | [INFO] [stderr] 633 | for realm in self.realm { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for realm in self.realm` with `if let Some(realm) = self.realm` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.domain`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:637:27 [INFO] [stderr] | [INFO] [stderr] 637 | for domain in self.domain { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for domain in self.domain` with `if let Some(domain) = self.domain` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.nonce`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:644:26 [INFO] [stderr] | [INFO] [stderr] 644 | for nonce in self.nonce { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for nonce in self.nonce` with `if let Some(nonce) = self.nonce` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.opaque`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:647:27 [INFO] [stderr] | [INFO] [stderr] 647 | for opaque in self.opaque { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for opaque in self.opaque` with `if let Some(opaque) = self.opaque` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.stale`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:650:26 [INFO] [stderr] | [INFO] [stderr] 650 | for stale in self.stale { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for stale in self.stale` with `if let Some(stale) = self.stale` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.algorithm`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:653:30 [INFO] [stderr] | [INFO] [stderr] 653 | for algorithm in self.algorithm { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for algorithm in self.algorithm` with `if let Some(algorithm) = self.algorithm` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.qop`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:656:24 [INFO] [stderr] | [INFO] [stderr] 656 | for qop in self.qop { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for qop in self.qop` with `if let Some(qop) = self.qop` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] error: for loop over `self.userhash`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/lib.rs:663:29 [INFO] [stderr] | [INFO] [stderr] 663 | for userhash in self.userhash { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for userhash in self.userhash` with `if let Some(userhash) = self.userhash` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/lib.rs:830:20 [INFO] [stderr] | [INFO] [stderr] 830 | if b.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `b.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] error: aborting due to 8 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `www-authenticate`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "ff1d6aa999be6e9b5c54a708eff7e2114f54ff2d8c116a5928e6320934a38d42"` [INFO] running `"docker" "rm" "-f" "ff1d6aa999be6e9b5c54a708eff7e2114f54ff2d8c116a5928e6320934a38d42"` [INFO] [stdout] ff1d6aa999be6e9b5c54a708eff7e2114f54ff2d8c116a5928e6320934a38d42