[INFO] crate outils 0.1.2 is already in cache [INFO] extracting crate outils 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/outils/0.1.2 [INFO] extracting crate outils 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/outils/0.1.2 [INFO] validating manifest of outils-0.1.2 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 outils-0.1.2 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 outils-0.1.2 [INFO] finished frobbing outils-0.1.2 [INFO] frobbed toml for outils-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/outils/0.1.2/Cargo.toml [INFO] started frobbing outils-0.1.2 [INFO] finished frobbing outils-0.1.2 [INFO] frobbed toml for outils-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/outils/0.1.2/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 outils-0.1.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/outils/0.1.2:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 43a9b31e979c88003c32e04057f31636d701859b3c273f3cbfb05c7cffd7db8d [INFO] running `"docker" "start" "-a" "43a9b31e979c88003c32e04057f31636d701859b3c273f3cbfb05c7cffd7db8d"` [INFO] [stderr] Checking outils v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:215:13 [INFO] [stderr] | [INFO] [stderr] 215 | / if dyn.euler[level] [INFO] [stderr] 216 | | .forest [INFO] [stderr] 217 | | .weight(NodeIndex(i)) [INFO] [stderr] 218 | | .map_or(0, |w| w.act_count) [INFO] [stderr] ... | [INFO] [stderr] 227 | | } [INFO] [stderr] 228 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 215 | if dyn.euler[level] [INFO] [stderr] 216 | .forest [INFO] [stderr] 217 | .weight(NodeIndex(i)) [INFO] [stderr] 218 | .map_or(0, |w| w.act_count) [INFO] [stderr] 219 | != 0 && dyn.euler[level].vertices[dyn.euler[level].forest[NodeIndex(i)].vertex] [INFO] [stderr] 220 | .active_node [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:270:24 [INFO] [stderr] | [INFO] [stderr] 270 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 271 | | if dyn.euler[i].is_connected(e.src, e.dst) == true { [INFO] [stderr] 272 | | println!("Tree {:?} connected at level {:?}", e, i); [INFO] [stderr] 273 | | return false; [INFO] [stderr] 274 | | } [INFO] [stderr] 275 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 270 | } else if dyn.euler[i].is_connected(e.src, e.dst) == true { [INFO] [stderr] 271 | println!("Tree {:?} connected at level {:?}", e, i); [INFO] [stderr] 272 | return false; [INFO] [stderr] 273 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:360:9 [INFO] [stderr] | [INFO] [stderr] 360 | / if node.parent == tree.nil { [INFO] [stderr] 361 | | if is_binary_search_tree(tree, index, min, max) == false { [INFO] [stderr] 362 | | return false; [INFO] [stderr] 363 | | } [INFO] [stderr] 364 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 360 | if node.parent == tree.nil && is_binary_search_tree(tree, index, min, max) == false { [INFO] [stderr] 361 | return false; [INFO] [stderr] 362 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | / if node.parent == tree.nil { [INFO] [stderr] 407 | | if is_aa_tree(tree, index) == false { [INFO] [stderr] 408 | | return false; [INFO] [stderr] 409 | | } [INFO] [stderr] 410 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 406 | if node.parent == tree.nil && is_aa_tree(tree, index) == false { [INFO] [stderr] 407 | return false; [INFO] [stderr] 408 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:444:9 [INFO] [stderr] | [INFO] [stderr] 444 | / if node.parent == tree.nil { [INFO] [stderr] 445 | | if is_weighted_binary_tree(tree, index) == false { [INFO] [stderr] 446 | | return false; [INFO] [stderr] 447 | | } [INFO] [stderr] 448 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 444 | if node.parent == tree.nil && is_weighted_binary_tree(tree, index) == false { [INFO] [stderr] 445 | return false; [INFO] [stderr] 446 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:478:9 [INFO] [stderr] | [INFO] [stderr] 478 | / if node.parent == tree.nil { [INFO] [stderr] 479 | | if is_binary_search_tree(tree, index, min, max) == false { [INFO] [stderr] 480 | | return false; [INFO] [stderr] 481 | | } [INFO] [stderr] 482 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 478 | if node.parent == tree.nil && is_binary_search_tree(tree, index, min, max) == false { [INFO] [stderr] 479 | return false; [INFO] [stderr] 480 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:524:9 [INFO] [stderr] | [INFO] [stderr] 524 | / if node.parent == tree.nil { [INFO] [stderr] 525 | | if is_aa_tree(tree, index) == false { [INFO] [stderr] 526 | | return false; [INFO] [stderr] 527 | | } [INFO] [stderr] 528 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 524 | if node.parent == tree.nil && is_aa_tree(tree, index) == false { [INFO] [stderr] 525 | return false; [INFO] [stderr] 526 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree/bst/waatree/tests.rs:200:5 [INFO] [stderr] | [INFO] [stderr] 200 | return node_count == edge_count + 2 && node_count == parent_count + 2; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `node_count == edge_count + 2 && node_count == parent_count + 2` [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: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:702:18 [INFO] [stderr] | [INFO] [stderr] 702 | for _ in 0..max_level + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `0..=max_level` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:743:18 [INFO] [stderr] | [INFO] [stderr] 743 | for i in (0..level + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(0..=level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:751:18 [INFO] [stderr] | [INFO] [stderr] 751 | for i in (0..level + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(0..=level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:788:22 [INFO] [stderr] | [INFO] [stderr] 788 | for level in (0..e_level + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `(0..=e_level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: lint name `clippy` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> benches/outils_benchmarks.rs:1:10 [INFO] [stderr] | [INFO] [stderr] 1 | #![allow(clippy)] [INFO] [stderr] | ^^^^^^ help: change it to: `clippy::all` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: lint name `clippy` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> benches/outils_benchmarks.rs:1:10 [INFO] [stderr] | [INFO] [stderr] 1 | #![allow(clippy)] [INFO] [stderr] | ^^^^^^ help: change it to: `clippy::all` [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:110:13 [INFO] [stderr] | [INFO] [stderr] 110 | assert!(dyn.edges.edges.len() == 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `dyn.edges.edges.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: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:112:14 [INFO] [stderr] | [INFO] [stderr] 112 | for i in 0..dyn.max_level + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `0..=dyn.max_level` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:127:13 [INFO] [stderr] | [INFO] [stderr] 127 | e.map(|edge| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 128 | || edges.push(edge); [INFO] [stderr] 129 | || assert!(validate(&dyn)); [INFO] [stderr] 130 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(edge) = e { ... }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | dyn.insert_edge(VertexIndex(i), VertexIndex(j)) [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 152 | || .map(|e| edges.push(e)); [INFO] [stderr] | ||_______________________________________^- help: try this: `if let Some(e) = dyn.insert_edge(VertexIndex(i), VertexIndex(j)) { edges.push(e) }` [INFO] [stderr] | |________________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:241:20 [INFO] [stderr] | [INFO] [stderr] 241 | if validate_component(dyn, level, NodeIndex(i)) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!validate_component(dyn, level, NodeIndex(i))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:259:12 [INFO] [stderr] | [INFO] [stderr] 259 | if e.is_tree_edge == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `e.is_tree_edge` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:260:16 [INFO] [stderr] | [INFO] [stderr] 260 | if dyn.ext_euler.is_connected(e.src, e.dst) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!dyn.ext_euler.is_connected(e.src, e.dst)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:264:22 [INFO] [stderr] | [INFO] [stderr] 264 | for i in 0..(dyn.max_level + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=dyn.max_level` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:266:24 [INFO] [stderr] | [INFO] [stderr] 266 | if dyn.euler[i].is_connected(e.src, e.dst) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!dyn.euler[i].is_connected(e.src, e.dst)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:271:24 [INFO] [stderr] | [INFO] [stderr] 271 | if dyn.euler[i].is_connected(e.src, e.dst) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `dyn.euler[i].is_connected(e.src, e.dst)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:278:16 [INFO] [stderr] | [INFO] [stderr] 278 | if dyn.ext_euler.is_connected(e.src, e.dst) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!dyn.ext_euler.is_connected(e.src, e.dst)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:282:16 [INFO] [stderr] | [INFO] [stderr] 282 | if dyn.is_connected(e.src, e.dst) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!dyn.is_connected(e.src, e.dst)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:286:26 [INFO] [stderr] | [INFO] [stderr] 286 | for i in 0..(dyn.max_level + 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=dyn.max_level` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:340:12 [INFO] [stderr] | [INFO] [stderr] 340 | if validate_first(dyn, level, &seq) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!validate_first(dyn, level, &seq)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:344:16 [INFO] [stderr] | [INFO] [stderr] 344 | if validate_inner(dyn, level, i, &seq) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!validate_inner(dyn, level, i, &seq)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:348:12 [INFO] [stderr] | [INFO] [stderr] 348 | if validate_last(dyn, level, &seq) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!validate_last(dyn, level, &seq)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:356:14 [INFO] [stderr] | [INFO] [stderr] 356 | for i in 0..dyn.max_level + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: use: `0..=dyn.max_level` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:374:8 [INFO] [stderr] | [INFO] [stderr] 374 | if edges.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!edges.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:384:10 [INFO] [stderr] | [INFO] [stderr] 384 | seq: &Vec<(NodeIndex, EulerVertex)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(NodeIndex, EulerVertex)]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:416:10 [INFO] [stderr] | [INFO] [stderr] 416 | seq: &Vec<(NodeIndex, EulerVertex)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(NodeIndex, EulerVertex)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/graph/dynconn/hdt/tests.rs:452:10 [INFO] [stderr] | [INFO] [stderr] 452 | seq: &Vec<(NodeIndex, EulerVertex)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[(NodeIndex, EulerVertex)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:702:18 [INFO] [stderr] | [INFO] [stderr] 702 | for _ in 0..max_level + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `0..=max_level` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:743:18 [INFO] [stderr] | [INFO] [stderr] 743 | for i in (0..level + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(0..=level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:751:18 [INFO] [stderr] | [INFO] [stderr] 751 | for i in (0..level + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `(0..=level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/graph/dynconn/hdt/mod.rs:788:22 [INFO] [stderr] | [INFO] [stderr] 788 | for level in (0..e_level + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: use: `(0..=e_level)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `nodes`. [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:184:14 [INFO] [stderr] | [INFO] [stderr] 184 | for i in 1..nodes.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 184 | for in nodes.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:276:11 [INFO] [stderr] | [INFO] [stderr] 276 | while stop == false { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `!stop` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `list`. [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:278:18 [INFO] [stderr] | [INFO] [stderr] 278 | for x in 0..list.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 278 | for in &mut list { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:361:16 [INFO] [stderr] | [INFO] [stderr] 361 | if is_binary_search_tree(tree, index, min, max) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_binary_search_tree(tree, index, min, max)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:377:18 [INFO] [stderr] | [INFO] [stderr] 377 | if min_ok && max_ok == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!max_ok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:407:16 [INFO] [stderr] | [INFO] [stderr] 407 | if is_aa_tree(tree, index) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_aa_tree(tree, index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/tree/bst/aaforest/tests.rs:448:28 [INFO] [stderr] | [INFO] [stderr] 448 | if right_level != 0 && node_level - right_right_level <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using node_level - right_right_level == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_aa_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:58:24 [INFO] [stderr] | [INFO] [stderr] 58 | assert!(is_aa_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_aa_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:76:24 [INFO] [stderr] | [INFO] [stderr] 76 | assert!(is_aa_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_aa_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:100:24 [INFO] [stderr] | [INFO] [stderr] 100 | assert!(is_aa_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_aa_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:123:24 [INFO] [stderr] | [INFO] [stderr] 123 | assert!(is_aa_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_aa_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:128:34 [INFO] [stderr] | [INFO] [stderr] 128 | let aa_tree = is_aa_tree(&mut tree, rt); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_aa_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:152:24 [INFO] [stderr] | [INFO] [stderr] 152 | assert!(is_aa_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:156:9 [INFO] [stderr] | [INFO] [stderr] 156 | i = i + 1; [INFO] [stderr] | ^^^^^^^^^ help: replace it with: `i += 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: The function/method `is_aa_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:166:28 [INFO] [stderr] | [INFO] [stderr] 166 | assert!(is_aa_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:184:18 [INFO] [stderr] | [INFO] [stderr] 184 | if min_ok && max_ok == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!max_ok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/tree/bst/aatree/tests.rs:232:28 [INFO] [stderr] | [INFO] [stderr] 232 | if right_level != 0 && node_level - right_right_level <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using node_level - right_right_level == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:90:1 [INFO] [stderr] | [INFO] [stderr] 90 | / fn test_bulk_append() { [INFO] [stderr] 91 | | let mut tree: WeightedAaForest = WeightedAaForest::new(30); [INFO] [stderr] 92 | | let mut rt1 = tree.insert(1); [INFO] [stderr] 93 | | let mut rt2 = tree.insert(21); [INFO] [stderr] ... | [INFO] [stderr] 178 | | assert!(is_weighted_binary_forest(&mut tree)); [INFO] [stderr] 179 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `nodes`. [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:219:14 [INFO] [stderr] | [INFO] [stderr] 219 | for i in 1..nodes.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 219 | for in nodes.iter().skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:307:11 [INFO] [stderr] | [INFO] [stderr] 307 | while stop == false { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `!stop` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `list`. [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:309:18 [INFO] [stderr] | [INFO] [stderr] 309 | for x in 0..list.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 309 | for in &mut list { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:350:11 [INFO] [stderr] | [INFO] [stderr] 350 | while stop == false { [INFO] [stderr] | ^^^^^^^^^^^^^ help: try simplifying it as shown: `!stop` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `list`. [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:352:18 [INFO] [stderr] | [INFO] [stderr] 352 | for x in 0..list.len() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 352 | for in &mut list { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:445:16 [INFO] [stderr] | [INFO] [stderr] 445 | if is_weighted_binary_tree(tree, index) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_weighted_binary_tree(tree, index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:479:16 [INFO] [stderr] | [INFO] [stderr] 479 | if is_binary_search_tree(tree, index, min, max) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_binary_search_tree(tree, index, min, max)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:495:18 [INFO] [stderr] | [INFO] [stderr] 495 | if min_ok && max_ok == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!max_ok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:525:16 [INFO] [stderr] | [INFO] [stderr] 525 | if is_aa_tree(tree, index) == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!is_aa_tree(tree, index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/tree/bst/waaforest/tests.rs:566:28 [INFO] [stderr] | [INFO] [stderr] 566 | if right_level != 0 && node_level - right_right_level <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using node_level - right_right_level == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_weighted_binary_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/waatree/tests.rs:127:37 [INFO] [stderr] | [INFO] [stderr] 127 | assert!(is_weighted_binary_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_weighted_binary_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/waatree/tests.rs:140:41 [INFO] [stderr] | [INFO] [stderr] 140 | assert!(is_weighted_binary_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_weighted_binary_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/waatree/tests.rs:163:37 [INFO] [stderr] | [INFO] [stderr] 163 | assert!(is_weighted_binary_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: The function/method `is_weighted_binary_tree` doesn't need a mutable reference [INFO] [stderr] --> src/tree/bst/waatree/tests.rs:176:41 [INFO] [stderr] | [INFO] [stderr] 176 | assert!(is_weighted_binary_tree(&mut tree, rt)); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/tree/bst/waatree/tests.rs:243:18 [INFO] [stderr] | [INFO] [stderr] 243 | if min_ok && max_ok == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!max_ok` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/tree/bst/waatree/tests.rs:291:28 [INFO] [stderr] | [INFO] [stderr] 291 | if right_level != 0 && node_level - right_right_level <= 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using node_level - right_right_level == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/tree/generic/tests.rs:73:20 [INFO] [stderr] | [INFO] [stderr] 73 | assert_eq!(tree.value(NodeIndex(i)).map(|v| *v), Some(values[i])); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `tree.value(NodeIndex(i)).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/tree/generic/tests.rs:682:5 [INFO] [stderr] | [INFO] [stderr] 682 | GeneralDfsValues::new(tree, node).map(|v| *v).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `GeneralDfsValues::new(tree, node).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/tree/generic/tests.rs:685:1 [INFO] [stderr] | [INFO] [stderr] 685 | / fn validate(tree: &Forest) { [INFO] [stderr] 686 | | let mut root_count = 0; [INFO] [stderr] 687 | | let mut child_counts = Vec::with_capacity(tree.arena.capacity()); [INFO] [stderr] 688 | | for _ in 0..child_counts.capacity() { [INFO] [stderr] ... | [INFO] [stderr] 796 | | assert_eq!(root_count, tree.roots.len()); [INFO] [stderr] 797 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tree/traversal/tests.rs:378:5 [INFO] [stderr] | [INFO] [stderr] 378 | left.map(|l| rec_binary_inorder(tree, l, v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(l) = left { rec_binary_inorder(tree, l, v) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tree/traversal/tests.rs:380:5 [INFO] [stderr] | [INFO] [stderr] 380 | right.map(|r| rec_binary_inorder(tree, r, v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(r) = right { rec_binary_inorder(tree, r, v) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tree/traversal/tests.rs:387:5 [INFO] [stderr] | [INFO] [stderr] 387 | left.map(|l| rec_binary_preorder(tree, l, v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(l) = left { rec_binary_preorder(tree, l, v) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tree/traversal/tests.rs:388:5 [INFO] [stderr] | [INFO] [stderr] 388 | right.map(|r| rec_binary_preorder(tree, r, v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(r) = right { rec_binary_preorder(tree, r, v) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tree/traversal/tests.rs:394:5 [INFO] [stderr] | [INFO] [stderr] 394 | left.map(|l| rec_binary_postorder(tree, l, v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(l) = left { rec_binary_postorder(tree, l, v) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/tree/traversal/tests.rs:395:5 [INFO] [stderr] | [INFO] [stderr] 395 | right.map(|r| rec_binary_postorder(tree, r, v)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(r) = right { rec_binary_postorder(tree, r, v) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/tree/traversal/tests.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 404 | pos = pos + 1; [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `pos += 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] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `outils`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "43a9b31e979c88003c32e04057f31636d701859b3c273f3cbfb05c7cffd7db8d"` [INFO] running `"docker" "rm" "-f" "43a9b31e979c88003c32e04057f31636d701859b3c273f3cbfb05c7cffd7db8d"` [INFO] [stdout] 43a9b31e979c88003c32e04057f31636d701859b3c273f3cbfb05c7cffd7db8d