[INFO] crate sodium-rust 1.0.1 is already in cache [INFO] extracting crate sodium-rust 1.0.1 into work/ex/clippy-test-run/sources/stable/reg/sodium-rust/1.0.1 [INFO] extracting crate sodium-rust 1.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/sodium-rust/1.0.1 [INFO] validating manifest of sodium-rust-1.0.1 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 sodium-rust-1.0.1 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 sodium-rust-1.0.1 [INFO] finished frobbing sodium-rust-1.0.1 [INFO] frobbed toml for sodium-rust-1.0.1 written to work/ex/clippy-test-run/sources/stable/reg/sodium-rust/1.0.1/Cargo.toml [INFO] started frobbing sodium-rust-1.0.1 [INFO] finished frobbing sodium-rust-1.0.1 [INFO] frobbed toml for sodium-rust-1.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/sodium-rust/1.0.1/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 sodium-rust-1.0.1 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/sodium-rust/1.0.1:/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 -Dclippy::into_iter_on_array" "-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] f7d521d379fb146169d237943182b6a2c25c5db180d23e9a02fb9a2d78a33c72 [INFO] running `"docker" "start" "-a" "f7d521d379fb146169d237943182b6a2c25c5db180d23e9a02fb9a2d78a33c72"` [INFO] [stderr] Checking sodium-rust v1.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:386:40 [INFO] [stderr] | [INFO] [stderr] 386 | let &(ref a, ref b, ref c, ref d) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:396:40 [INFO] [stderr] | [INFO] [stderr] 396 | let &(ref a, ref b, ref c, ref d, ref e) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:396:47 [INFO] [stderr] | [INFO] [stderr] 396 | let &(ref a, ref b, ref c, ref d, ref e) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:407:40 [INFO] [stderr] | [INFO] [stderr] 407 | let &(ref a, ref b, ref c, ref d, ref e, ref f2) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:407:47 [INFO] [stderr] | [INFO] [stderr] 407 | let &(ref a, ref b, ref c, ref d, ref e, ref f2) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:561:71 [INFO] [stderr] | [INFO] [stderr] 561 | let &mut (ref mut a, ref mut b, ref mut c, ref mut d, ref mut e) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:572:71 [INFO] [stderr] | [INFO] [stderr] 572 | let &mut (ref mut a, ref mut b, ref mut c, ref mut d, ref mut e, ref mut f) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:572:82 [INFO] [stderr] | [INFO] [stderr] 572 | let &mut (ref mut a, ref mut b, ref mut c, ref mut d, ref mut e, ref mut f) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sodium/impl_/gc.rs:839:13 [INFO] [stderr] | [INFO] [stderr] 839 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/sodium/impl_/gc.rs:841:17 [INFO] [stderr] | [INFO] [stderr] 841 | desc_op: desc_op, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `desc_op` [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/sodium/impl_/lambda.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | deps: deps [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `deps` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:130:49 [INFO] [stderr] | [INFO] [stderr] 130 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:139:49 [INFO] [stderr] | [INFO] [stderr] 139 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:139:56 [INFO] [stderr] | [INFO] [stderr] 139 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:201:49 [INFO] [stderr] | [INFO] [stderr] 201 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:210:49 [INFO] [stderr] | [INFO] [stderr] 210 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:210:56 [INFO] [stderr] | [INFO] [stderr] 210 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | coalescer_op: coalescer_op [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coalescer_op` [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/tests/stream_test.rs:531:21 [INFO] [stderr] | [INFO] [stderr] 531 | a: a, [INFO] [stderr] | ^^^^ help: replace it with: `a` [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/tests/stream_test.rs:532:21 [INFO] [stderr] | [INFO] [stderr] 532 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/tests/stream_test.rs:533:21 [INFO] [stderr] | [INFO] [stderr] 533 | sw: sw [INFO] [stderr] | ^^^^^^ help: replace it with: `sw` [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/tests/stream_test.rs:598:21 [INFO] [stderr] | [INFO] [stderr] 598 | a: a, [INFO] [stderr] | ^^^^ help: replace it with: `a` [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/tests/stream_test.rs:599:21 [INFO] [stderr] | [INFO] [stderr] 599 | b: b, [INFO] [stderr] | ^^^^ help: replace it with: `b` [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/tests/stream_test.rs:600:21 [INFO] [stderr] | [INFO] [stderr] 600 | sw: sw [INFO] [stderr] | ^^^^^^ help: replace it with: `sw` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:386:40 [INFO] [stderr] | [INFO] [stderr] 386 | let &(ref a, ref b, ref c, ref d) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:396:40 [INFO] [stderr] | [INFO] [stderr] 396 | let &(ref a, ref b, ref c, ref d, ref e) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:396:47 [INFO] [stderr] | [INFO] [stderr] 396 | let &(ref a, ref b, ref c, ref d, ref e) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:407:40 [INFO] [stderr] | [INFO] [stderr] 407 | let &(ref a, ref b, ref c, ref d, ref e, ref f2) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:407:47 [INFO] [stderr] | [INFO] [stderr] 407 | let &(ref a, ref b, ref c, ref d, ref e, ref f2) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:561:71 [INFO] [stderr] | [INFO] [stderr] 561 | let &mut (ref mut a, ref mut b, ref mut c, ref mut d, ref mut e) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:572:71 [INFO] [stderr] | [INFO] [stderr] 572 | let &mut (ref mut a, ref mut b, ref mut c, ref mut d, ref mut e, ref mut f) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/gc.rs:572:82 [INFO] [stderr] | [INFO] [stderr] 572 | let &mut (ref mut a, ref mut b, ref mut c, ref mut d, ref mut e, ref mut f) = self; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sodium/impl_/gc.rs:839:13 [INFO] [stderr] | [INFO] [stderr] 839 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/sodium/impl_/gc.rs:841:17 [INFO] [stderr] | [INFO] [stderr] 841 | desc_op: desc_op, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `desc_op` [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/sodium/impl_/lambda.rs:12:13 [INFO] [stderr] | [INFO] [stderr] 12 | deps: deps [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `deps` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:130:49 [INFO] [stderr] | [INFO] [stderr] 130 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:139:49 [INFO] [stderr] | [INFO] [stderr] 139 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:139:56 [INFO] [stderr] | [INFO] [stderr] 139 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:201:49 [INFO] [stderr] | [INFO] [stderr] 201 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:210:49 [INFO] [stderr] | [INFO] [stderr] 210 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: 6th binding whose name is just one char [INFO] [stderr] --> src/sodium/impl_/lambda.rs:210:56 [INFO] [stderr] | [INFO] [stderr] 210 | fn apply(&self, a: &A, b: &B, c: &C, d: &D, e: &E, f: &F) -> R { [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:56:13 [INFO] [stderr] | [INFO] [stderr] 56 | coalescer_op: coalescer_op [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `coalescer_op` [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/sodium/impl_/cell.rs:452:17 [INFO] [stderr] | [INFO] [stderr] 452 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unused import: `sodium::impl_::MemoLazy` [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sodium::impl_::MemoLazy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/cell.rs:452:17 [INFO] [stderr] | [INFO] [stderr] 452 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [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: unused import: `sodium::impl_::MemoLazy` [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sodium::impl_::MemoLazy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::Node` [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sodium::impl_::Node; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::gc::Gc` [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use sodium::impl_::gc::Gc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::Node` [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sodium::impl_::Node; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::gc::Gc` [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use sodium::impl_::gc::Gc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:72:17 [INFO] [stderr] | [INFO] [stderr] 72 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/sodium/impl_/gc.rs:858:9 [INFO] [stderr] | [INFO] [stderr] 858 | r [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/sodium/impl_/gc.rs:837:17 [INFO] [stderr] | [INFO] [stderr] 837 | let r = Gc { [INFO] [stderr] | _________________^ [INFO] [stderr] 838 | | ctx: self.clone(), [INFO] [stderr] 839 | | value: value, [INFO] [stderr] 840 | | node: Box::into_raw(Box::new(Node { [INFO] [stderr] ... | [INFO] [stderr] 856 | | })) [INFO] [stderr] 857 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/sodium/impl_/lambda.rs:26:1 [INFO] [stderr] | [INFO] [stderr] 26 | / macro_rules! lambda { [INFO] [stderr] 27 | | ($f:expr) => {{ [INFO] [stderr] 28 | | Lambda::new($f, Vec::new()) [INFO] [stderr] 29 | | }}; [INFO] [stderr] ... | [INFO] [stderr] 32 | | }} [INFO] [stderr] 33 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/sodium/impl_/gc.rs:858:9 [INFO] [stderr] | [INFO] [stderr] 858 | r [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/sodium/impl_/gc.rs:837:17 [INFO] [stderr] | [INFO] [stderr] 837 | let r = Gc { [INFO] [stderr] | _________________^ [INFO] [stderr] 838 | | ctx: self.clone(), [INFO] [stderr] 839 | | value: value, [INFO] [stderr] 840 | | node: Box::into_raw(Box::new(Node { [INFO] [stderr] ... | [INFO] [stderr] 856 | | })) [INFO] [stderr] 857 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/stream.rs:499:17 [INFO] [stderr] | [INFO] [stderr] 499 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unused import: `sodium::impl_::Latch` [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sodium::impl_::Latch; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::MemoLazy` [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sodium::impl_::MemoLazy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::Node` [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use sodium::impl_::Node; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/sodium/impl_/lambda.rs:26:1 [INFO] [stderr] warning: unused import: `sodium::impl_::gc::Gc` [INFO] [stderr] | [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:8:5 [INFO] [stderr] 26 | / macro_rules! lambda { [INFO] [stderr] | [INFO] [stderr] 8 | use sodium::impl_::gc::Gc; [INFO] [stderr] 27 | | ($f:expr) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 28 | | Lambda::new($f, Vec::new()) [INFO] [stderr] 29 | | }}; [INFO] [stderr] ... | [INFO] [stderr] 32 | | }} [INFO] [stderr] 33 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:48:21 [INFO] [stderr] | [INFO] [stderr] 48 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::CellSink` [INFO] [stderr] --> src/tests/cell_test.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sodium::CellSink; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::CellLoop` [INFO] [stderr] --> src/tests/cell_loop_test.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use sodium::CellLoop; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::CellSink` [INFO] [stderr] --> src/tests/cell_loop_test.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sodium::CellSink; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::StreamSink` [INFO] [stderr] --> src/tests/cell_loop_test.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use sodium::StreamSink; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/stream.rs:499:17 [INFO] [stderr] | [INFO] [stderr] 499 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: unused import: `sodium::CellLoop` [INFO] [stderr] --> src/tests/stream_test.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sodium::CellLoop; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] warning: unused import: `sodium::impl_::Latch` [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use sodium::impl_::Latch; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::MemoLazy` [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sodium::impl_::MemoLazy; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::Node` [INFO] [stderr] warning: unused import: `sodium::CellSink` [INFO] [stderr] --> src/tests/stream_test.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use sodium::CellSink; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use sodium::impl_::Node; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::impl_::gc::Gc` [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use sodium::impl_::gc::Gc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `sodium::StreamLoop` [INFO] [stderr] --> src/tests/stream_test.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use sodium::StreamLoop; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/stream_loop.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:48:21 [INFO] [stderr] | [INFO] [stderr] 48 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/sodium/impl_/stream.rs:323:42 [INFO] [stderr] | [INFO] [stderr] 323 | let eb = ebs.map(|(ref a,ref b):&(B,S)| a.clone()); [INFO] [stderr] | ^ help: consider using `_b` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `a` [INFO] [stderr] --> src/sodium/impl_/stream.rs:324:40 [INFO] [stderr] | [INFO] [stderr] 324 | let es_out = ebs.map(|(ref a,ref b):&(B,S)| b.clone()); [INFO] [stderr] | ^ help: consider using `_a` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sodium_ctx` [INFO] [stderr] --> src/tests/stream_test.rs:286:14 [INFO] [stderr] | [INFO] [stderr] 286 | |sodium_ctx| { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_sodium_ctx` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sodium_ctx2` [INFO] [stderr] --> src/tests/stream_test.rs:544:13 [INFO] [stderr] | [INFO] [stderr] 544 | let sodium_ctx2 = sodium_ctx.clone(); [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_sodium_ctx2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sodium_ctx2` [INFO] [stderr] --> src/tests/stream_test.rs:614:13 [INFO] [stderr] | [INFO] [stderr] 614 | let sodium_ctx2 = &mut sodium_ctx2; [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_sodium_ctx2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sodium_ctx` [INFO] [stderr] --> src/tests/stream_test.rs:708:14 [INFO] [stderr] | [INFO] [stderr] 708 | |sodium_ctx| { [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_sodium_ctx` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `sodium_ctx2` [INFO] [stderr] --> src/tests/stream_test.rs:685:13 [INFO] [stderr] | [INFO] [stderr] 685 | let sodium_ctx2 = &sodium_ctx2; [INFO] [stderr] | ^^^^^^^^^^^ help: consider using `_sodium_ctx2` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `b` [INFO] [stderr] --> src/sodium/impl_/stream.rs:323:42 [INFO] [stderr] | [INFO] [stderr] 323 | let eb = ebs.map(|(ref a,ref b):&(B,S)| a.clone()); [INFO] [stderr] | ^ help: consider using `_b` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `a` [INFO] [stderr] --> src/sodium/impl_/stream.rs:324:40 [INFO] [stderr] | [INFO] [stderr] 324 | let es_out = ebs.map(|(ref a,ref b):&(B,S)| b.clone()); [INFO] [stderr] | ^ help: consider using `_a` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/tests/gc_test.rs:203:25 [INFO] [stderr] | [INFO] [stderr] 203 | fn trace(&self, f: &mut FnMut(&GcDep)) {} [INFO] [stderr] | ^ help: consider using `_f` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/tests/stream_test.rs:541:29 [INFO] [stderr] | [INFO] [stderr] 541 | fn trace(&self, f: &mut FnMut(&GcDep)) {} [INFO] [stderr] | ^ help: consider using `_f` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `f` [INFO] [stderr] --> src/tests/stream_test.rs:608:29 [INFO] [stderr] | [INFO] [stderr] 608 | fn trace(&self, f: &mut FnMut(&GcDep)) {} [INFO] [stderr] | ^ help: consider using `_f` instead [INFO] [stderr] [INFO] [stderr] warning: field is never used: `thunk` [INFO] [stderr] --> src/sodium/impl_/latch.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | thunk: BoxA>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `const_` [INFO] [stderr] --> src/sodium/impl_/latch.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn const_(value: A) -> Latch { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/sodium/impl_/latch.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn newA + 'static>(thunk: F) -> Latch { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/sodium/impl_/latch.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn get(&self) -> &A { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_mut` [INFO] [stderr] --> src/sodium/impl_/latch.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn get_mut(&mut self) -> &mut A { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/sodium/impl_/latch.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | / if let &Some(ref val) = init_value { [INFO] [stderr] 28 | | val.clone() [INFO] [stderr] 29 | | } else { [INFO] [stderr] 30 | | panic!("CellLoop sampled before looped.") [INFO] [stderr] 31 | | } [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] 27 | if let Some(ref val) = *init_value { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | n.weak = n.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `n.weak += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | n.weak = n.weak - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `n.weak -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | n.weak = n.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `n.weak += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | node.weak = node.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.weak += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | s.strong = s.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `s.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sodium/impl_/gc.rs:131:29 [INFO] [stderr] | [INFO] [stderr] 131 | value: unsafe { transmute(f(&mut *self.value)) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f(&mut *self.value) as *const B as *mut B` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | node.weak = node.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.weak += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | node.weak = node.weak - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.weak -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | node.strong = node.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:279:9 [INFO] [stderr] | [INFO] [stderr] 279 | / match self { [INFO] [stderr] 280 | | &Some(ref a) => a.trace(f), [INFO] [stderr] 281 | | &None => () [INFO] [stderr] 282 | | } [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] 279 | match *self { [INFO] [stderr] 280 | Some(ref a) => a.trace(f), [INFO] [stderr] 281 | None => () [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | / match self { [INFO] [stderr] 289 | | &Ok(ref x) => x.trace(tracer), [INFO] [stderr] 290 | | &Err(ref x) => x.trace(tracer) [INFO] [stderr] 291 | | } [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] 288 | match *self { [INFO] [stderr] 289 | Ok(ref x) => x.trace(tracer), [INFO] [stderr] 290 | Err(ref x) => x.trace(tracer) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the BinaryHeap [INFO] [stderr] --> src/sodium/impl_/gc.rs:311:23 [INFO] [stderr] | [INFO] [stderr] 311 | for v in self.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:334:48 [INFO] [stderr] | [INFO] [stderr] 334 | impl Trace for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 334 | impl Trace for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: impl for `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:343:38 [INFO] [stderr] | [INFO] [stderr] 343 | impl Trace for HashSet { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 343 | impl Trace for HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:444:9 [INFO] [stderr] | [INFO] [stderr] 444 | / match self { [INFO] [stderr] 445 | | &mut Some(ref mut a) => a.finalize(), [INFO] [stderr] 446 | | &mut None => () [INFO] [stderr] 447 | | } [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] 444 | match *self { [INFO] [stderr] 445 | Some(ref mut a) => a.finalize(), [INFO] [stderr] 446 | None => () [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:453:9 [INFO] [stderr] | [INFO] [stderr] 453 | / match self { [INFO] [stderr] 454 | | &mut Ok(ref mut a) => a.finalize(), [INFO] [stderr] 455 | | &mut Err(ref mut a) => a.finalize() [INFO] [stderr] 456 | | } [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] 453 | match *self { [INFO] [stderr] 454 | Ok(ref mut a) => a.finalize(), [INFO] [stderr] 455 | Err(ref mut a) => a.finalize() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:499:65 [INFO] [stderr] | [INFO] [stderr] 499 | impl Finalize for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 499 | impl Finalize for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: impl for `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:508:52 [INFO] [stderr] | [INFO] [stderr] 508 | impl Finalize for HashSet { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 508 | impl Finalize for HashSet { [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/sodium/impl_/gc.rs:599:19 [INFO] [stderr] | [INFO] [stderr] 599 | fn is_reading(&self) -> bool { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:600:9 [INFO] [stderr] | [INFO] [stderr] 600 | / match self { [INFO] [stderr] 601 | | &GcCellFlags::Reading(_) => true, [INFO] [stderr] 602 | | _ => false [INFO] [stderr] 603 | | } [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] 600 | match *self { [INFO] [stderr] 601 | GcCellFlags::Reading(_) => true, [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/sodium/impl_/gc.rs:606:20 [INFO] [stderr] | [INFO] [stderr] 606 | fn add_reading(&self) -> GcCellFlags { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:607:9 [INFO] [stderr] | [INFO] [stderr] 607 | / match self { [INFO] [stderr] 608 | | &GcCellFlags::Reading(ref count) => GcCellFlags::Reading(*count + 1), [INFO] [stderr] 609 | | &GcCellFlags::Unused => GcCellFlags::Reading(1), [INFO] [stderr] 610 | | _ => self.clone(), [INFO] [stderr] 611 | | } [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] 607 | match *self { [INFO] [stderr] 608 | GcCellFlags::Reading(ref count) => GcCellFlags::Reading(*count + 1), [INFO] [stderr] 609 | GcCellFlags::Unused => GcCellFlags::Reading(1), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:610:18 [INFO] [stderr] | [INFO] [stderr] 610 | _ => self.clone(), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sodium/impl_/gc.rs:614:20 [INFO] [stderr] | [INFO] [stderr] 614 | fn sub_reading(&self) -> GcCellFlags { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:615:9 [INFO] [stderr] | [INFO] [stderr] 615 | / match self { [INFO] [stderr] 616 | | &GcCellFlags::Reading(ref count) => { [INFO] [stderr] 617 | | let count2 = *count - 1; [INFO] [stderr] 618 | | if count2 == 0 { [INFO] [stderr] ... | [INFO] [stderr] 624 | | _ => self.clone(), [INFO] [stderr] 625 | | } [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] 615 | match *self { [INFO] [stderr] 616 | GcCellFlags::Reading(ref count) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:624:18 [INFO] [stderr] | [INFO] [stderr] 624 | _ => self.clone(), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sodium/impl_/gc.rs:628:19 [INFO] [stderr] | [INFO] [stderr] 628 | fn is_writing(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:629:9 [INFO] [stderr] | [INFO] [stderr] 629 | / match self { [INFO] [stderr] 630 | | &GcCellFlags::Writing => true, [INFO] [stderr] 631 | | _ => false [INFO] [stderr] 632 | | } [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] 629 | match *self { [INFO] [stderr] 630 | GcCellFlags::Writing => true, [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/sodium/impl_/gc.rs:635:20 [INFO] [stderr] | [INFO] [stderr] 635 | fn set_writing(&self) -> GcCellFlags { [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/sodium/impl_/gc.rs:639:18 [INFO] [stderr] | [INFO] [stderr] 639 | fn is_unused(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | / match self { [INFO] [stderr] 641 | | &GcCellFlags::Unused => true, [INFO] [stderr] 642 | | _ => false [INFO] [stderr] 643 | | } [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] 640 | match *self { [INFO] [stderr] 641 | GcCellFlags::Unused => true, [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/sodium/impl_/gc.rs:646:19 [INFO] [stderr] | [INFO] [stderr] 646 | fn set_unused(&self) -> GcCellFlags { [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/sodium/impl_/gc.rs:757:12 [INFO] [stderr] | [INFO] [stderr] 757 | trace: Box, [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:778:24 [INFO] [stderr] | [INFO] [stderr] 778 | return id.clone(); [INFO] [stderr] | ^^^^^^^^^^ help: try dereferencing it: `*id` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:783:9 [INFO] [stderr] | [INFO] [stderr] 783 | *next_id = *next_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*next_id += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:794:9 [INFO] [stderr] | [INFO] [stderr] 794 | / if let &Some(ref desc) = &self.desc_op { [INFO] [stderr] 795 | | print!("({})", desc); [INFO] [stderr] 796 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 794 | if let Some(ref desc) = self.desc_op { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sodium::impl_::gc::GcCtx` [INFO] [stderr] --> src/sodium/impl_/gc.rs:813:5 [INFO] [stderr] | [INFO] [stderr] 813 | / pub fn new() -> GcCtx { [INFO] [stderr] 814 | | GcCtx { [INFO] [stderr] 815 | | data: Rc::new(RefCell::new( [INFO] [stderr] 816 | | GcCtxData { [INFO] [stderr] ... | [INFO] [stderr] 822 | | } [INFO] [stderr] 823 | | } [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] 811 | impl Default for sodium::impl_::gc::GcCtx { [INFO] [stderr] 812 | fn default() -> Self { [INFO] [stderr] 813 | Self::new() [INFO] [stderr] 814 | } [INFO] [stderr] 815 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:835:22 [INFO] [stderr] | [INFO] [stderr] 835 | let value2 = value.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:836:22 [INFO] [stderr] | [INFO] [stderr] 836 | let value3 = value.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:867:9 [INFO] [stderr] | [INFO] [stderr] 867 | s.strong = s.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `s.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:874:13 [INFO] [stderr] | [INFO] [stderr] 874 | node.strong = node.strong - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.strong -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:899:13 [INFO] [stderr] | [INFO] [stderr] 899 | s.weak = s.weak - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `s.weak -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sodium/impl_/gc.rs:933:43 [INFO] [stderr] | [INFO] [stderr] 933 | let again = self.with_data(|data| data.to_be_freed.len() != 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.to_be_freed.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: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:992:17 [INFO] [stderr] | [INFO] [stderr] 992 | t.strong = t.strong - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t.strong -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:1018:13 [INFO] [stderr] | [INFO] [stderr] 1018 | t.strong = t.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/listener.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / if let &mut Some(ref mut node) = node_op { [INFO] [stderr] 34 | | let sodium_ctx = node.sodium_ctx(); [INFO] [stderr] 35 | | if !weak { [INFO] [stderr] 36 | | sodium_ctx.remove_keep_alive(node); [INFO] [stderr] 37 | | } [INFO] [stderr] 38 | | node.remove_all_dependencies(); [INFO] [stderr] 39 | | } [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] 33 | if let Some(ref mut node) = *node_op { [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/sodium/impl_/node.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | / match self_.upgrade() { [INFO] [stderr] 78 | | Some(self_2) => { [INFO] [stderr] 79 | | let self_ = unsafe { &mut *(*self_2.data).get() }; [INFO] [stderr] 80 | | self_.dependencies.iter().for_each(|dependency| { [INFO] [stderr] ... | [INFO] [stderr] 94 | | None => () [INFO] [stderr] 95 | | } [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] 77 | if let Some(self_2) = self_.upgrade() { [INFO] [stderr] 78 | let self_ = unsafe { &mut *(*self_2.data).get() }; [INFO] [stderr] 79 | self_.dependencies.iter().for_each(|dependency| { [INFO] [stderr] 80 | let dependency = unsafe { &mut *(*dependency.data).get() }; [INFO] [stderr] 81 | dependency.dependents.retain(|dependent| { [INFO] [stderr] 82 | match dependent.upgrade() { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/node.rs:148:23 [INFO] [stderr] | [INFO] [stderr] 148 | let self_id = data.id.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `data.id` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/node.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | data.rank.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `data.rank` [INFO] [stderr] | [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: you should consider adding a `Default` implementation for `sodium::impl_::sodium_ctx::SodiumCtx` [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / pub fn new() -> SodiumCtx { [INFO] [stderr] 38 | | SodiumCtx { [INFO] [stderr] 39 | | data: Rc::new(UnsafeCell::new(SodiumCtxData { [INFO] [stderr] 40 | | gc_ctx: GcCtx::new(), [INFO] [stderr] ... | [INFO] [stderr] 52 | | } [INFO] [stderr] 53 | | } [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] 36 | impl Default for sodium::impl_::sodium_ctx::SodiumCtx { [INFO] [stderr] 37 | fn default() -> Self { [INFO] [stderr] 38 | Self::new() [INFO] [stderr] 39 | } [INFO] [stderr] 40 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | self_.next_id = self_.next_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.next_id += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | self_.node_count = self_.node_count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.node_count += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | self_.node_count = self_.node_count - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.node_count -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | self_.callback_depth = self_.callback_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.callback_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | self_.callback_depth = self_.callback_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.callback_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | self_.transaction_depth = self_.transaction_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | self_.transaction_depth = self_.transaction_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | self_.transaction_depth = self_.transaction_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | self_.transaction_depth = self_.transaction_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/stream.rs:375:33 [INFO] [stderr] | [INFO] [stderr] 375 | / if let &Some(ref node_self2) = node_self { [INFO] [stderr] 376 | | node_self2.remove_all_dependencies(); [INFO] [stderr] 377 | | } [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] 375 | if let Some(ref node_self2) = *node_self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | / match &self.coalescer_op { [INFO] [stderr] 79 | | &Some(ref coalescer) => { [INFO] [stderr] 80 | | let next_value2 = [INFO] [stderr] 81 | | match next_value { [INFO] [stderr] ... | [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 78 | match self.coalescer_op { [INFO] [stderr] 79 | Some(ref coalescer) => { [INFO] [stderr] 80 | let next_value2 = [INFO] [stderr] 81 | match next_value { [INFO] [stderr] 82 | &mut Some(ref next_value3) => { [INFO] [stderr] 83 | let next_value4 = coalescer(next_value3.get(), &value); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | / match next_value { [INFO] [stderr] 82 | | &mut Some(ref next_value3) => { [INFO] [stderr] 83 | | let next_value4 = coalescer(next_value3.get(), &value); [INFO] [stderr] 84 | | Some(sodium_ctx.new_lazy(move || next_value4.clone())) [INFO] [stderr] 85 | | }, [INFO] [stderr] 86 | | &mut None => Some(sodium_ctx.new_lazy(move || value.clone())) [INFO] [stderr] 87 | | }; [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] 81 | match *next_value { [INFO] [stderr] 82 | Some(ref next_value3) => { [INFO] [stderr] 83 | let next_value4 = coalescer(next_value3.get(), &value); [INFO] [stderr] 84 | Some(sodium_ctx.new_lazy(move || next_value4.clone())) [INFO] [stderr] 85 | }, [INFO] [stderr] 86 | None => Some(sodium_ctx.new_lazy(move || value.clone())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sodium::sodium_ctx::SodiumCtx` [INFO] [stderr] --> src/sodium/sodium_ctx.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> SodiumCtx { [INFO] [stderr] 20 | | SodiumCtx { [INFO] [stderr] 21 | | impl_: impl_::SodiumCtx::new() [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [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] 18 | impl Default for sodium::sodium_ctx::SodiumCtx { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests/cell_loop_test.rs:24:25 [INFO] [stderr] | [INFO] [stderr] 24 | let mut b = sodium_ctx.new_cell_loop(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests/cell_loop_test.rs:24:25 [INFO] [stderr] | [INFO] [stderr] 24 | let mut b = sodium_ctx.new_cell_loop(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests/cell_loop_test.rs:54:21 [INFO] [stderr] | [INFO] [stderr] 54 | let mut a = sodium_ctx.new_cell_loop(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests/cell_loop_test.rs:86:21 [INFO] [stderr] | [INFO] [stderr] 86 | let mut a = sodium_ctx.new_cell_loop(); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests/stream_test.rs:287:21 [INFO] [stderr] | [INFO] [stderr] 287 | let mut sb = sodium_ctx2.new_stream_loop(); [INFO] [stderr] | ----^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/tests/stream_test.rs:729:21 [INFO] [stderr] | [INFO] [stderr] 729 | let mut sum = sodium_ctx.new_cell_loop(); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: field is never used: `thunk` [INFO] [stderr] --> src/sodium/impl_/latch.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | thunk: BoxA>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `const_` [INFO] [stderr] --> src/sodium/impl_/latch.rs:31:5 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn const_(value: A) -> Latch { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/sodium/impl_/latch.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | pub fn newA + 'static>(thunk: F) -> Latch { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get` [INFO] [stderr] --> src/sodium/impl_/latch.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | pub fn get(&self) -> &A { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_mut` [INFO] [stderr] --> src/sodium/impl_/latch.rs:54:5 [INFO] [stderr] | [INFO] [stderr] 54 | pub fn get_mut(&mut self) -> &mut A { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `reset` [INFO] [stderr] --> src/sodium/impl_/latch.rs:59:5 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn reset(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/cell_loop.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | / if let &Some(ref val) = init_value { [INFO] [stderr] 28 | | val.clone() [INFO] [stderr] 29 | | } else { [INFO] [stderr] 30 | | panic!("CellLoop sampled before looped.") [INFO] [stderr] 31 | | } [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] 27 | if let Some(ref val) = *init_value { [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | n.weak = n.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `n.weak += 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | n.weak = n.weak - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `n.weak -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | n.weak = n.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `n.weak += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:118:9 [INFO] [stderr] | [INFO] [stderr] 118 | node.weak = node.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.weak += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | s.strong = s.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `s.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/sodium/impl_/gc.rs:131:29 [INFO] [stderr] | [INFO] [stderr] 131 | value: unsafe { transmute(f(&mut *self.value)) }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f(&mut *self.value) as *const B as *mut B` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | node.weak = node.weak + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.weak += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:159:13 [INFO] [stderr] | [INFO] [stderr] 159 | node.weak = node.weak - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.weak -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:173:13 [INFO] [stderr] | [INFO] [stderr] 173 | node.strong = node.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:279:9 [INFO] [stderr] | [INFO] [stderr] 279 | / match self { [INFO] [stderr] 280 | | &Some(ref a) => a.trace(f), [INFO] [stderr] 281 | | &None => () [INFO] [stderr] 282 | | } [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] 279 | match *self { [INFO] [stderr] 280 | Some(ref a) => a.trace(f), [INFO] [stderr] 281 | None => () [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:288:9 [INFO] [stderr] | [INFO] [stderr] 288 | / match self { [INFO] [stderr] 289 | | &Ok(ref x) => x.trace(tracer), [INFO] [stderr] 290 | | &Err(ref x) => x.trace(tracer) [INFO] [stderr] 291 | | } [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] 288 | match *self { [INFO] [stderr] 289 | Ok(ref x) => x.trace(tracer), [INFO] [stderr] 290 | Err(ref x) => x.trace(tracer) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the BinaryHeap [INFO] [stderr] --> src/sodium/impl_/gc.rs:311:23 [INFO] [stderr] | [INFO] [stderr] 311 | for v in self.into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:334:48 [INFO] [stderr] | [INFO] [stderr] 334 | impl Trace for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 334 | impl Trace for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: impl for `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:343:38 [INFO] [stderr] | [INFO] [stderr] 343 | impl Trace for HashSet { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 343 | impl Trace for HashSet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:444:9 [INFO] [stderr] | [INFO] [stderr] 444 | / match self { [INFO] [stderr] 445 | | &mut Some(ref mut a) => a.finalize(), [INFO] [stderr] 446 | | &mut None => () [INFO] [stderr] 447 | | } [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] 444 | match *self { [INFO] [stderr] 445 | Some(ref mut a) => a.finalize(), [INFO] [stderr] 446 | None => () [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:453:9 [INFO] [stderr] | [INFO] [stderr] 453 | / match self { [INFO] [stderr] 454 | | &mut Ok(ref mut a) => a.finalize(), [INFO] [stderr] 455 | | &mut Err(ref mut a) => a.finalize() [INFO] [stderr] 456 | | } [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] 453 | match *self { [INFO] [stderr] 454 | Ok(ref mut a) => a.finalize(), [INFO] [stderr] 455 | Err(ref mut a) => a.finalize() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: impl for `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:499:65 [INFO] [stderr] | [INFO] [stderr] 499 | impl Finalize for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 499 | impl Finalize for HashMap { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: impl for `HashSet` should be generalized over different hashers [INFO] [stderr] --> src/sodium/impl_/gc.rs:508:52 [INFO] [stderr] | [INFO] [stderr] 508 | impl Finalize for HashSet { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 508 | impl Finalize for HashSet { [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/sodium/impl_/gc.rs:599:19 [INFO] [stderr] | [INFO] [stderr] 599 | fn is_reading(&self) -> bool { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:600:9 [INFO] [stderr] | [INFO] [stderr] 600 | / match self { [INFO] [stderr] 601 | | &GcCellFlags::Reading(_) => true, [INFO] [stderr] 602 | | _ => false [INFO] [stderr] 603 | | } [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] 600 | match *self { [INFO] [stderr] 601 | GcCellFlags::Reading(_) => true, [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/sodium/impl_/gc.rs:606:20 [INFO] [stderr] | [INFO] [stderr] 606 | fn add_reading(&self) -> GcCellFlags { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:607:9 [INFO] [stderr] | [INFO] [stderr] 607 | / match self { [INFO] [stderr] 608 | | &GcCellFlags::Reading(ref count) => GcCellFlags::Reading(*count + 1), [INFO] [stderr] 609 | | &GcCellFlags::Unused => GcCellFlags::Reading(1), [INFO] [stderr] 610 | | _ => self.clone(), [INFO] [stderr] 611 | | } [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] 607 | match *self { [INFO] [stderr] 608 | GcCellFlags::Reading(ref count) => GcCellFlags::Reading(*count + 1), [INFO] [stderr] 609 | GcCellFlags::Unused => GcCellFlags::Reading(1), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:610:18 [INFO] [stderr] | [INFO] [stderr] 610 | _ => self.clone(), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sodium/impl_/gc.rs:614:20 [INFO] [stderr] | [INFO] [stderr] 614 | fn sub_reading(&self) -> GcCellFlags { [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:615:9 [INFO] [stderr] | [INFO] [stderr] 615 | / match self { [INFO] [stderr] 616 | | &GcCellFlags::Reading(ref count) => { [INFO] [stderr] 617 | | let count2 = *count - 1; [INFO] [stderr] 618 | | if count2 == 0 { [INFO] [stderr] ... | [INFO] [stderr] 624 | | _ => self.clone(), [INFO] [stderr] 625 | | } [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] 615 | match *self { [INFO] [stderr] 616 | GcCellFlags::Reading(ref count) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:624:18 [INFO] [stderr] | [INFO] [stderr] 624 | _ => self.clone(), [INFO] [stderr] | ^^^^^^^^^^^^ help: try dereferencing it: `*self` [INFO] [stderr] | [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/sodium/impl_/gc.rs:628:19 [INFO] [stderr] | [INFO] [stderr] 628 | fn is_writing(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:629:9 [INFO] [stderr] | [INFO] [stderr] 629 | / match self { [INFO] [stderr] 630 | | &GcCellFlags::Writing => true, [INFO] [stderr] 631 | | _ => false [INFO] [stderr] 632 | | } [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] 629 | match *self { [INFO] [stderr] 630 | GcCellFlags::Writing => true, [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/sodium/impl_/gc.rs:635:20 [INFO] [stderr] | [INFO] [stderr] 635 | fn set_writing(&self) -> GcCellFlags { [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/sodium/impl_/gc.rs:639:18 [INFO] [stderr] | [INFO] [stderr] 639 | fn is_unused(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:640:9 [INFO] [stderr] | [INFO] [stderr] 640 | / match self { [INFO] [stderr] 641 | | &GcCellFlags::Unused => true, [INFO] [stderr] 642 | | _ => false [INFO] [stderr] 643 | | } [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] 640 | match *self { [INFO] [stderr] 641 | GcCellFlags::Unused => true, [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/sodium/impl_/gc.rs:646:19 [INFO] [stderr] | [INFO] [stderr] 646 | fn set_unused(&self) -> GcCellFlags { [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/sodium/impl_/gc.rs:757:12 [INFO] [stderr] | [INFO] [stderr] 757 | trace: Box, [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:778:24 [INFO] [stderr] | [INFO] [stderr] 778 | return id.clone(); [INFO] [stderr] | ^^^^^^^^^^ help: try dereferencing it: `*id` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:783:9 [INFO] [stderr] | [INFO] [stderr] 783 | *next_id = *next_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `*next_id += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/sodium/impl_/gc.rs:794:9 [INFO] [stderr] | [INFO] [stderr] 794 | / if let &Some(ref desc) = &self.desc_op { [INFO] [stderr] 795 | | print!("({})", desc); [INFO] [stderr] 796 | | } [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: try [INFO] [stderr] | [INFO] [stderr] 794 | if let Some(ref desc) = self.desc_op { [INFO] [stderr] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sodium::impl_::gc::GcCtx` [INFO] [stderr] --> src/sodium/impl_/gc.rs:813:5 [INFO] [stderr] | [INFO] [stderr] 813 | / pub fn new() -> GcCtx { [INFO] [stderr] 814 | | GcCtx { [INFO] [stderr] 815 | | data: Rc::new(RefCell::new( [INFO] [stderr] 816 | | GcCtxData { [INFO] [stderr] ... | [INFO] [stderr] 822 | | } [INFO] [stderr] 823 | | } [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] 811 | impl Default for sodium::impl_::gc::GcCtx { [INFO] [stderr] 812 | fn default() -> Self { [INFO] [stderr] 813 | Self::new() [INFO] [stderr] 814 | } [INFO] [stderr] 815 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:835:22 [INFO] [stderr] | [INFO] [stderr] 835 | let value2 = value.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/gc.rs:836:22 [INFO] [stderr] | [INFO] [stderr] 836 | let value3 = value.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `value` [INFO] [stderr] | [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: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:867:9 [INFO] [stderr] | [INFO] [stderr] 867 | s.strong = s.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `s.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:874:13 [INFO] [stderr] | [INFO] [stderr] 874 | node.strong = node.strong - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `node.strong -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:899:13 [INFO] [stderr] | [INFO] [stderr] 899 | s.weak = s.weak - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `s.weak -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/sodium/impl_/gc.rs:933:43 [INFO] [stderr] | [INFO] [stderr] 933 | let again = self.with_data(|data| data.to_be_freed.len() != 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!data.to_be_freed.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: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:992:17 [INFO] [stderr] | [INFO] [stderr] 992 | t.strong = t.strong - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t.strong -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/gc.rs:1018:13 [INFO] [stderr] | [INFO] [stderr] 1018 | t.strong = t.strong + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `t.strong += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/listener.rs:33:9 [INFO] [stderr] | [INFO] [stderr] 33 | / if let &mut Some(ref mut node) = node_op { [INFO] [stderr] 34 | | let sodium_ctx = node.sodium_ctx(); [INFO] [stderr] 35 | | if !weak { [INFO] [stderr] 36 | | sodium_ctx.remove_keep_alive(node); [INFO] [stderr] 37 | | } [INFO] [stderr] 38 | | node.remove_all_dependencies(); [INFO] [stderr] 39 | | } [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] 33 | if let Some(ref mut node) = *node_op { [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/sodium/impl_/node.rs:77:25 [INFO] [stderr] | [INFO] [stderr] 77 | / match self_.upgrade() { [INFO] [stderr] 78 | | Some(self_2) => { [INFO] [stderr] 79 | | let self_ = unsafe { &mut *(*self_2.data).get() }; [INFO] [stderr] 80 | | self_.dependencies.iter().for_each(|dependency| { [INFO] [stderr] ... | [INFO] [stderr] 94 | | None => () [INFO] [stderr] 95 | | } [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] 77 | if let Some(self_2) = self_.upgrade() { [INFO] [stderr] 78 | let self_ = unsafe { &mut *(*self_2.data).get() }; [INFO] [stderr] 79 | self_.dependencies.iter().for_each(|dependency| { [INFO] [stderr] 80 | let dependency = unsafe { &mut *(*dependency.data).get() }; [INFO] [stderr] 81 | dependency.dependents.retain(|dependent| { [INFO] [stderr] 82 | match dependent.upgrade() { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/node.rs:148:23 [INFO] [stderr] | [INFO] [stderr] 148 | let self_id = data.id.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try removing the `clone` call: `data.id` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/sodium/impl_/node.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | data.rank.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `data.rank` [INFO] [stderr] | [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: you should consider adding a `Default` implementation for `sodium::impl_::sodium_ctx::SodiumCtx` [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / pub fn new() -> SodiumCtx { [INFO] [stderr] 38 | | SodiumCtx { [INFO] [stderr] 39 | | data: Rc::new(UnsafeCell::new(SodiumCtxData { [INFO] [stderr] 40 | | gc_ctx: GcCtx::new(), [INFO] [stderr] ... | [INFO] [stderr] 52 | | } [INFO] [stderr] 53 | | } [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] 36 | impl Default for sodium::impl_::sodium_ctx::SodiumCtx { [INFO] [stderr] 37 | fn default() -> Self { [INFO] [stderr] 38 | Self::new() [INFO] [stderr] 39 | } [INFO] [stderr] 40 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:75:9 [INFO] [stderr] | [INFO] [stderr] 75 | self_.next_id = self_.next_id + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.next_id += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | self_.node_count = self_.node_count + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.node_count += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:96:9 [INFO] [stderr] | [INFO] [stderr] 96 | self_.node_count = self_.node_count - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.node_count -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:106:9 [INFO] [stderr] | [INFO] [stderr] 106 | self_.callback_depth = self_.callback_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.callback_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | self_.callback_depth = self_.callback_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.callback_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:135:9 [INFO] [stderr] | [INFO] [stderr] 135 | self_.transaction_depth = self_.transaction_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:137:9 [INFO] [stderr] | [INFO] [stderr] 137 | self_.transaction_depth = self_.transaction_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:168:9 [INFO] [stderr] | [INFO] [stderr] 168 | self_.transaction_depth = self_.transaction_depth + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/sodium/impl_/sodium_ctx.rs:182:9 [INFO] [stderr] | [INFO] [stderr] 182 | self_.transaction_depth = self_.transaction_depth - 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self_.transaction_depth -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/stream.rs:375:33 [INFO] [stderr] | [INFO] [stderr] 375 | / if let &Some(ref node_self2) = node_self { [INFO] [stderr] 376 | | node_self2.remove_all_dependencies(); [INFO] [stderr] 377 | | } [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] 375 | if let Some(ref node_self2) = *node_self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | / match &self.coalescer_op { [INFO] [stderr] 79 | | &Some(ref coalescer) => { [INFO] [stderr] 80 | | let next_value2 = [INFO] [stderr] 81 | | match next_value { [INFO] [stderr] ... | [INFO] [stderr] 92 | | } [INFO] [stderr] 93 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 78 | match self.coalescer_op { [INFO] [stderr] 79 | Some(ref coalescer) => { [INFO] [stderr] 80 | let next_value2 = [INFO] [stderr] 81 | match next_value { [INFO] [stderr] 82 | &mut Some(ref next_value3) => { [INFO] [stderr] 83 | let next_value4 = coalescer(next_value3.get(), &value); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/sodium/impl_/stream_sink.rs:81:25 [INFO] [stderr] | [INFO] [stderr] 81 | / match next_value { [INFO] [stderr] 82 | | &mut Some(ref next_value3) => { [INFO] [stderr] 83 | | let next_value4 = coalescer(next_value3.get(), &value); [INFO] [stderr] 84 | | Some(sodium_ctx.new_lazy(move || next_value4.clone())) [INFO] [stderr] 85 | | }, [INFO] [stderr] 86 | | &mut None => Some(sodium_ctx.new_lazy(move || value.clone())) [INFO] [stderr] 87 | | }; [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] 81 | match *next_value { [INFO] [stderr] 82 | Some(ref next_value3) => { [INFO] [stderr] 83 | let next_value4 = coalescer(next_value3.get(), &value); [INFO] [stderr] 84 | Some(sodium_ctx.new_lazy(move || next_value4.clone())) [INFO] [stderr] 85 | }, [INFO] [stderr] 86 | None => Some(sodium_ctx.new_lazy(move || value.clone())) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `sodium::sodium_ctx::SodiumCtx` [INFO] [stderr] --> src/sodium/sodium_ctx.rs:19:5 [INFO] [stderr] | [INFO] [stderr] 19 | / pub fn new() -> SodiumCtx { [INFO] [stderr] 20 | | SodiumCtx { [INFO] [stderr] 21 | | impl_: impl_::SodiumCtx::new() [INFO] [stderr] 22 | | } [INFO] [stderr] 23 | | } [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] 18 | impl Default for sodium::sodium_ctx::SodiumCtx { [INFO] [stderr] 19 | fn default() -> Self { [INFO] [stderr] 20 | Self::new() [INFO] [stderr] 21 | } [INFO] [stderr] 22 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/tests/cell_loop_test.rs:67:48 [INFO] [stderr] | [INFO] [stderr] 67 | move |x| out.borrow_mut().push(x.clone()) [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 67 | move |x| out.borrow_mut().push(&(*x).clone()) [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 67 | move |x| out.borrow_mut().push(&str::clone(x)) [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tests/gc_test.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | *c = *c + 1; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `*c += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/tests/gc_test.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | / match unsafe { &*self.x.as_ptr() } { [INFO] [stderr] 35 | | &Some(ref a) => f(&a.to_dep()), [INFO] [stderr] 36 | | &None => () [INFO] [stderr] 37 | | } [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] 34 | match *unsafe { &*self.x.as_ptr() } { [INFO] [stderr] 35 | Some(ref a) => f(&a.to_dep()), [INFO] [stderr] 36 | None => () [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tests/gc_test.rs:44:13 [INFO] [stderr] | [INFO] [stderr] 44 | *c = *c - 1; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `*c -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tests/gc_test.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | *c = *c + 1; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `*c += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tests/gc_test.rs:97:13 [INFO] [stderr] | [INFO] [stderr] 97 | *c = *c - 1; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `*c -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tests/gc_test.rs:131:17 [INFO] [stderr] | [INFO] [stderr] 131 | *c = *c + 1; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `*c += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tests/gc_test.rs:155:13 [INFO] [stderr] | [INFO] [stderr] 155 | *c = *c - 1; [INFO] [stderr] | ^^^^^^^^^^^ help: replace it with: `*c -= 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tests/gc_test.rs:211:13 [INFO] [stderr] | [INFO] [stderr] 211 | self.value = self.value + 1 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.value += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/tests/stream_test.rs:545:35 [INFO] [stderr] | [INFO] [stderr] 545 | let ca = ssc.map(|s: &SC| s.a.clone()).filter_option().hold("A"); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `s.a` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/tests/stream_test.rs:546:35 [INFO] [stderr] | [INFO] [stderr] 546 | let cb = ssc.map(|s: &SC| s.b.clone()).filter_option().hold("a"); [INFO] [stderr] | ^^^^^^^^^^^ help: try removing the `clone` call: `s.b` [INFO] [stderr] | [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/tests/stream_test.rs:547:40 [INFO] [stderr] | [INFO] [stderr] 547 | let csw_str = ssc.map(|s: &SC| s.sw.clone()).filter_option().hold("ca"); [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `s.sw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/tests/stream_test.rs:611:35 [INFO] [stderr] | [INFO] [stderr] 611 | let sa = sss.map(|s: &SS| s.a.clone()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 611 | let sa = sss.map(|s: &SS| &(*s.a).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 611 | let sa = sss.map(|s: &SS| &str::clone(s.a)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/tests/stream_test.rs:612:35 [INFO] [stderr] | [INFO] [stderr] 612 | let sb = sss.map(|s: &SS| s.b.clone()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 612 | let sb = sss.map(|s: &SS| &(*s.b).clone()); [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 612 | let sb = sss.map(|s: &SS| &str::clone(s.b)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/tests/stream_test.rs:618:30 [INFO] [stderr] | [INFO] [stderr] 618 | |s: &SS| s.sw.clone() [INFO] [stderr] | ^^^^^^^^^^^^ help: try removing the `clone` call: `s.sw` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `sodium-rust`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "f7d521d379fb146169d237943182b6a2c25c5db180d23e9a02fb9a2d78a33c72"` [INFO] running `"docker" "rm" "-f" "f7d521d379fb146169d237943182b6a2c25c5db180d23e9a02fb9a2d78a33c72"` [INFO] [stdout] f7d521d379fb146169d237943182b6a2c25c5db180d23e9a02fb9a2d78a33c72