[INFO] crate rhododendron 0.4.0 is already in cache [INFO] extracting crate rhododendron 0.4.0 into work/ex/clippy-test-run/sources/stable/reg/rhododendron/0.4.0 [INFO] extracting crate rhododendron 0.4.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rhododendron/0.4.0 [INFO] validating manifest of rhododendron-0.4.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 rhododendron-0.4.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 rhododendron-0.4.0 [INFO] finished frobbing rhododendron-0.4.0 [INFO] frobbed toml for rhododendron-0.4.0 written to work/ex/clippy-test-run/sources/stable/reg/rhododendron/0.4.0/Cargo.toml [INFO] started frobbing rhododendron-0.4.0 [INFO] finished frobbing rhododendron-0.4.0 [INFO] frobbed toml for rhododendron-0.4.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rhododendron/0.4.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 rhododendron-0.4.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/rhododendron/0.4.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] 42eba3b83a2d2545b6e98972e60e7fb160c3ab714eb9b37d436dc153df328e42 [INFO] running `"docker" "start" "-a" "42eba3b83a2d2545b6e98972e60e7fb160c3ab714eb9b37d436dc153df328e42"` [INFO] [stderr] Checking parity-codec v2.2.0 [INFO] [stderr] Compiling parity-codec-derive v2.2.0 [INFO] [stderr] Checking rhododendron v0.4.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/accumulator.rs:374:5 [INFO] [stderr] | [INFO] [stderr] 374 | signatures: signatures, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `signatures` [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/accumulator.rs:429:5 [INFO] [stderr] | [INFO] [stderr] 429 | signatures: signatures, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `signatures` [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:950:3 [INFO] [stderr] | [INFO] [stderr] 950 | strategy: strategy, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `strategy` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/accumulator.rs:210:3 [INFO] [stderr] | [INFO] [stderr] 210 | self.round_number.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.round_number` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/accumulator.rs:296:19 [INFO] [stderr] | [INFO] [stderr] 296 | Some(ref p) if &p.digest != &proposal.digest => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 296 | Some(ref p) if p.digest != proposal.digest => { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:400:23 [INFO] [stderr] | [INFO] [stderr] 400 | future_accumulators: BTreeMap>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:499:6 [INFO] [stderr] | [INFO] [stderr] 499 | -> Poll, C::Error> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:528:6 [INFO] [stderr] | [INFO] [stderr] 528 | -> Poll, C::Error> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:535:17 [INFO] [stderr] | [INFO] [stderr] 535 | let advance = match self.current_accumulator.state() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 536 | | &State::Advanced(ref p_just) => { [INFO] [stderr] 537 | | // lock to any witnessed prepare justification. [INFO] [stderr] 538 | | if let Some(p_just) = p_just.as_ref() { [INFO] [stderr] ... | [INFO] [stderr] 568 | | _ => None, [INFO] [stderr] 569 | | }; [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] 535 | let advance = match *self.current_accumulator.state() { [INFO] [stderr] 536 | State::Advanced(ref p_just) => { [INFO] [stderr] 537 | // lock to any witnessed prepare justification. [INFO] [stderr] 538 | if let Some(p_just) = p_just.as_ref() { [INFO] [stderr] 539 | self.locked = Some(Locked { justification: p_just.clone() }); [INFO] [stderr] 540 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:587:4 [INFO] [stderr] | [INFO] [stderr] 587 | if let &State::Begin = self.current_accumulator.state() { [INFO] [stderr] | _____________^ [INFO] [stderr] 588 | | let round_number = self.current_round(); [INFO] [stderr] 589 | | let primary = context.round_proposer(round_number); [INFO] [stderr] 590 | | propose = self.local_id == primary; [INFO] [stderr] 591 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 587 | if let State::Begin = *self.current_accumulator.state() { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:658:3 [INFO] [stderr] | [INFO] [stderr] 658 | if let &State::Proposed(ref candidate) = self.current_accumulator.state() { [INFO] [stderr] | _________^ [INFO] [stderr] 659 | | let digest = context.candidate_digest(candidate); [INFO] [stderr] 660 | | [INFO] [stderr] 661 | | // vote to prepare only if we believe the candidate to be valid and [INFO] [stderr] ... | [INFO] [stderr] 689 | | } [INFO] [stderr] 690 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 658 | if let State::Proposed(ref candidate) = *self.current_accumulator.state() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:722:3 [INFO] [stderr] | [INFO] [stderr] 722 | if let &State::Prepared(ref p_just) = self.current_accumulator.state() { [INFO] [stderr] | _________^ [INFO] [stderr] 723 | | // we are now locked to this prepare justification. [INFO] [stderr] 724 | | // refuse to lock if the thing is bad. [INFO] [stderr] 725 | | self.earliest_lock_round = self.current_accumulator.round_number(); [INFO] [stderr] ... | [INFO] [stderr] 730 | | } [INFO] [stderr] 731 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 722 | if let State::Prepared(ref p_just) = *self.current_accumulator.state() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/accumulator.rs:374:5 [INFO] [stderr] | [INFO] [stderr] 374 | signatures: signatures, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `signatures` [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/accumulator.rs:429:5 [INFO] [stderr] | [INFO] [stderr] 429 | signatures: signatures, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `signatures` [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:950:3 [INFO] [stderr] | [INFO] [stderr] 950 | strategy: strategy, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `strategy` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/accumulator.rs:210:3 [INFO] [stderr] | [INFO] [stderr] 210 | self.round_number.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.round_number` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/accumulator.rs:296:19 [INFO] [stderr] | [INFO] [stderr] 296 | Some(ref p) if &p.digest != &proposal.digest => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 296 | Some(ref p) if p.digest != proposal.digest => { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/tests.rs:41:6 [INFO] [stderr] | [INFO] [stderr] 41 | -> (Self, Vec>, Vec>) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/tests.rs:140:16 [INFO] [stderr] | [INFO] [stderr] 140 | let mut p = self.proposal.lock().unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/tests.rs:243:15 [INFO] [stderr] | [INFO] [stderr] 243 | proposal: Mutex::new(i), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/tests.rs:300:15 [INFO] [stderr] | [INFO] [stderr] 300 | proposal: Mutex::new(proposal), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/tests.rs:350:15 [INFO] [stderr] | [INFO] [stderr] 350 | proposal: Mutex::new(i), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/tests.rs:407:15 [INFO] [stderr] | [INFO] [stderr] 407 | proposal: Mutex::new(i), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/tests.rs:487:15 [INFO] [stderr] | [INFO] [stderr] 487 | proposal: Mutex::new(i), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/tests.rs:533:11 [INFO] [stderr] | [INFO] [stderr] 533 | assert!(&result.justification.digest != &locked_digest); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 533 | assert!(result.justification.digest != locked_digest); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicUsize instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/tests.rs:556:15 [INFO] [stderr] | [INFO] [stderr] 556 | proposal: Mutex::new(i), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:400:23 [INFO] [stderr] | [INFO] [stderr] 400 | future_accumulators: BTreeMap>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:499:6 [INFO] [stderr] | [INFO] [stderr] 499 | -> Poll, C::Error> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:528:6 [INFO] [stderr] | [INFO] [stderr] 528 | -> Poll, C::Error> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:535:17 [INFO] [stderr] | [INFO] [stderr] 535 | let advance = match self.current_accumulator.state() { [INFO] [stderr] | _______________________^ [INFO] [stderr] 536 | | &State::Advanced(ref p_just) => { [INFO] [stderr] 537 | | // lock to any witnessed prepare justification. [INFO] [stderr] 538 | | if let Some(p_just) = p_just.as_ref() { [INFO] [stderr] ... | [INFO] [stderr] 568 | | _ => None, [INFO] [stderr] 569 | | }; [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] 535 | let advance = match *self.current_accumulator.state() { [INFO] [stderr] 536 | State::Advanced(ref p_just) => { [INFO] [stderr] 537 | // lock to any witnessed prepare justification. [INFO] [stderr] 538 | if let Some(p_just) = p_just.as_ref() { [INFO] [stderr] 539 | self.locked = Some(Locked { justification: p_just.clone() }); [INFO] [stderr] 540 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:587:4 [INFO] [stderr] | [INFO] [stderr] 587 | if let &State::Begin = self.current_accumulator.state() { [INFO] [stderr] | _____________^ [INFO] [stderr] 588 | | let round_number = self.current_round(); [INFO] [stderr] 589 | | let primary = context.round_proposer(round_number); [INFO] [stderr] 590 | | propose = self.local_id == primary; [INFO] [stderr] 591 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 587 | if let State::Begin = *self.current_accumulator.state() { [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:658:3 [INFO] [stderr] | [INFO] [stderr] 658 | if let &State::Proposed(ref candidate) = self.current_accumulator.state() { [INFO] [stderr] | _________^ [INFO] [stderr] 659 | | let digest = context.candidate_digest(candidate); [INFO] [stderr] 660 | | [INFO] [stderr] 661 | | // vote to prepare only if we believe the candidate to be valid and [INFO] [stderr] ... | [INFO] [stderr] 689 | | } [INFO] [stderr] 690 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 658 | if let State::Proposed(ref candidate) = *self.current_accumulator.state() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:722:3 [INFO] [stderr] | [INFO] [stderr] 722 | if let &State::Prepared(ref p_just) = self.current_accumulator.state() { [INFO] [stderr] | _________^ [INFO] [stderr] 723 | | // we are now locked to this prepare justification. [INFO] [stderr] 724 | | // refuse to lock if the thing is bad. [INFO] [stderr] 725 | | self.earliest_lock_round = self.current_accumulator.round_number(); [INFO] [stderr] ... | [INFO] [stderr] 730 | | } [INFO] [stderr] 731 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 722 | if let State::Prepared(ref p_just) = *self.current_accumulator.state() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.14s [INFO] running `"docker" "inspect" "42eba3b83a2d2545b6e98972e60e7fb160c3ab714eb9b37d436dc153df328e42"` [INFO] running `"docker" "rm" "-f" "42eba3b83a2d2545b6e98972e60e7fb160c3ab714eb9b37d436dc153df328e42"` [INFO] [stdout] 42eba3b83a2d2545b6e98972e60e7fb160c3ab714eb9b37d436dc153df328e42