[INFO] crate batsat 0.2.0 is already in cache [INFO] extracting crate batsat 0.2.0 into work/ex/clippy-test-run/sources/stable/reg/batsat/0.2.0 [INFO] extracting crate batsat 0.2.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/batsat/0.2.0 [INFO] validating manifest of batsat-0.2.0 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of batsat-0.2.0 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing batsat-0.2.0 [INFO] finished frobbing batsat-0.2.0 [INFO] frobbed toml for batsat-0.2.0 written to work/ex/clippy-test-run/sources/stable/reg/batsat/0.2.0/Cargo.toml [INFO] started frobbing batsat-0.2.0 [INFO] finished frobbing batsat-0.2.0 [INFO] frobbed toml for batsat-0.2.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/batsat/0.2.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting batsat-0.2.0 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-2/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/batsat/0.2.0:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -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] 24f1e7435049dd3db8c25c39b78cf699472b8704df96f432d72bc36c0d6588d9 [INFO] running `"docker" "start" "-a" "24f1e7435049dd3db8c25c39b78cf699472b8704df96f432d72bc36c0d6588d9"` [INFO] [stderr] Checking batsat v0.2.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/intmap.rs:230:28 [INFO] [stderr] | [INFO] [stderr] 230 | Heap { data: self, comp: comp, } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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/clause.rs:710:32 [INFO] [stderr] | [INFO] [stderr] 710 | OccLists { data: self, pred: pred, } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pred` [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/core.rs:1060:29 [INFO] [stderr] | [INFO] [stderr] 1060 | let v = c[k].var(); [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/core.rs:1269:21 [INFO] [stderr] | [INFO] [stderr] 1269 | let w = Watcher::new(cr, first); [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/intmap.rs:230:28 [INFO] [stderr] | [INFO] [stderr] 230 | Heap { data: self, comp: comp, } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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/clause.rs:710:32 [INFO] [stderr] | [INFO] [stderr] 710 | OccLists { data: self, pred: pred, } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `pred` [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/core.rs:1060:29 [INFO] [stderr] | [INFO] [stderr] 1060 | let v = c[k].var(); [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/core.rs:1269:21 [INFO] [stderr] | [INFO] [stderr] 1269 | let w = Watcher::new(cr, first); [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: long literal lacking separators [INFO] [stderr] --> src/clause.rs:229:18 [INFO] [stderr] | [INFO] [stderr] 229 | let v = (0xF7F755F4_u32 >> sel) & 3; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0xF7F7_55F4_u32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/clause.rs:250:18 [INFO] [stderr] | [INFO] [stderr] 250 | let v = (0xFCFCF400_u32 >> sel) & 3; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0xFCFC_F400_u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/clause.rs:229:18 [INFO] [stderr] | [INFO] [stderr] 229 | let v = (0xF7F755F4_u32 >> sel) & 3; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0xF7F7_55F4_u32` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/clause.rs:250:18 [INFO] [stderr] | [INFO] [stderr] 250 | let v = (0xFCFCF400_u32 >> sel) & 3; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `0xFCFC_F400_u32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1714:26 [INFO] [stderr] | [INFO] [stderr] 1714 | random_seed: 91648253.0, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `91_648_253.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core.rs:1765:5 [INFO] [stderr] | [INFO] [stderr] 1765 | return f64::powi(y, seq); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f64::powi(y, seq)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core.rs:1773:5 [INFO] [stderr] | [INFO] [stderr] 1773 | return *seed / 2147483647.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*seed / 2147483647.0` [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: long literal lacking separators [INFO] [stderr] --> src/core.rs:1770:14 [INFO] [stderr] | [INFO] [stderr] 1770 | *seed *= 1389796.0; [INFO] [stderr] | ^^^^^^^^^ help: consider: `1_389_796.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1771:22 [INFO] [stderr] | [INFO] [stderr] 1771 | let q = (*seed / 2147483647.0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `2_147_483_647.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1772:25 [INFO] [stderr] | [INFO] [stderr] 1772 | *seed -= q as f64 * 2147483647.0; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `2_147_483_647.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1773:20 [INFO] [stderr] | [INFO] [stderr] 1773 | return *seed / 2147483647.0; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `2_147_483_647.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1714:26 [INFO] [stderr] | [INFO] [stderr] 1714 | random_seed: 91648253.0, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `91_648_253.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core.rs:1765:5 [INFO] [stderr] | [INFO] [stderr] 1765 | return f64::powi(y, seq); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `f64::powi(y, seq)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/core.rs:1773:5 [INFO] [stderr] | [INFO] [stderr] 1773 | return *seed / 2147483647.0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `*seed / 2147483647.0` [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: long literal lacking separators [INFO] [stderr] --> src/core.rs:1770:14 [INFO] [stderr] | [INFO] [stderr] 1770 | *seed *= 1389796.0; [INFO] [stderr] | ^^^^^^^^^ help: consider: `1_389_796.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1771:22 [INFO] [stderr] | [INFO] [stderr] 1771 | let q = (*seed / 2147483647.0) as i32; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `2_147_483_647.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1772:25 [INFO] [stderr] | [INFO] [stderr] 1772 | *seed -= q as f64 * 2147483647.0; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `2_147_483_647.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/core.rs:1773:20 [INFO] [stderr] | [INFO] [stderr] 1773 | return *seed / 2147483647.0; [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `2_147_483_647.0` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: item `alloc::RegionAllocator` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/alloc.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | / impl RegionAllocator { [INFO] [stderr] 33 | | pub fn new(start_cap: u32) -> Self { [INFO] [stderr] 34 | | Self { [INFO] [stderr] 35 | | vec: Vec::with_capacity(start_cap as usize), [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: item `intmap::IntSet` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/intmap.rs:171:1 [INFO] [stderr] | [INFO] [stderr] 171 | / impl IntSet { [INFO] [stderr] 172 | | pub fn new() -> Self { [INFO] [stderr] 173 | | Self::default() [INFO] [stderr] 174 | | } [INFO] [stderr] ... | [INFO] [stderr] 194 | | } [INFO] [stderr] 195 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:51:16 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn idx(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:83:16 [INFO] [stderr] | [INFO] [stderr] 83 | pub fn idx(&self) -> u32 { [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/clause.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn sign(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:91:16 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn var(&self) -> Var { [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/clause.rs:179:18 [INFO] [stderr] | [INFO] [stderr] 179 | pub fn to_u8(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:515:17 [INFO] [stderr] | [INFO] [stderr] 515 | pub fn mark(&self) -> u32 { [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/clause.rs:519:19 [INFO] [stderr] | [INFO] [stderr] 519 | pub fn learnt(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:523:22 [INFO] [stderr] | [INFO] [stderr] 523 | pub fn has_extra(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:527:20 [INFO] [stderr] | [INFO] [stderr] 527 | pub fn reloced(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:531:17 [INFO] [stderr] | [INFO] [stderr] 531 | pub fn size(&self) -> u32 { [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: item `clause::ClauseAllocator` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/clause.rs:553:1 [INFO] [stderr] | [INFO] [stderr] 553 | / impl ClauseAllocator { [INFO] [stderr] 554 | | pub const UNIT_SIZE: u32 = 32; [INFO] [stderr] 555 | | pub fn with_start_cap(start_cap: u32) -> Self { [INFO] [stderr] 556 | | Self { [INFO] [stderr] ... | [INFO] [stderr] 671 | | } [INFO] [stderr] 672 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `clause::ClauseAllocator` [INFO] [stderr] --> src/clause.rs:561:5 [INFO] [stderr] | [INFO] [stderr] 561 | / pub fn new() -> Self { [INFO] [stderr] 562 | | Self::with_start_cap(1024 * 1024) [INFO] [stderr] 563 | | } [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] 553 | impl Default for clause::ClauseAllocator { [INFO] [stderr] 554 | fn default() -> Self { [INFO] [stderr] 555 | Self::new() [INFO] [stderr] 556 | } [INFO] [stderr] 557 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/clause.rs:638:5 [INFO] [stderr] | [INFO] [stderr] 638 | / pub(crate) fn get_ref<'a>(&'a self, cr: CRef) -> ClauseRef<'a> { [INFO] [stderr] 639 | | let header = unsafe { self.ra[cr].header }; [INFO] [stderr] 640 | | let has_extra = header.has_extra(); [INFO] [stderr] 641 | | let size = header.size(); [INFO] [stderr] ... | [INFO] [stderr] 653 | | } [INFO] [stderr] 654 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `clause::OccListsData` [INFO] [stderr] --> src/clause.rs:693:5 [INFO] [stderr] | [INFO] [stderr] 693 | / pub fn new() -> Self { [INFO] [stderr] 694 | | Self { [INFO] [stderr] 695 | | occs: IntMap::new(), [INFO] [stderr] 696 | | dirty: IntMapBool::new(), [INFO] [stderr] 697 | | dirties: Vec::new(), [INFO] [stderr] 698 | | } [INFO] [stderr] 699 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 686 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dimacs.rs:51:36 [INFO] [stderr] | [INFO] [stderr] 51 | return parse_error(format!("PARSE ERROR! Unexpected char: p")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"PARSE ERROR! Unexpected char: p".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/dimacs.rs:71:23 [INFO] [stderr] | [INFO] [stderr] 71 | } else if let Some(_) = ch { [INFO] [stderr] | ________________- ^^^^^^^ [INFO] [stderr] 72 | | read_clause(input, solver, &mut lits)?; [INFO] [stderr] 73 | | solver.add_clause_reuse(&mut lits); [INFO] [stderr] 74 | | num_read_clauses += 1; [INFO] [stderr] 75 | | } else { [INFO] [stderr] 76 | | break; [INFO] [stderr] 77 | | } [INFO] [stderr] | |_________- help: try this: `if ch.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dimacs.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | return parse_error(format!( [INFO] [stderr] | ____________________________^ [INFO] [stderr] 81 | | "PARSE ERROR! DIMACS header mismatch: wrong number of clauses" [INFO] [stderr] 82 | | )); [INFO] [stderr] | |_________^ help: consider using .to_string(): `"PARSE ERROR! DIMACS header mismatch: wrong number of clauses".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dimacs.rs:120:28 [INFO] [stderr] | [INFO] [stderr] 120 | return parse_error(format!("PARSE ERROR! Unexpected EOF")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"PARSE ERROR! Unexpected EOF".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/dimacs.rs:128:26 [INFO] [stderr] | [INFO] [stderr] 128 | val = val * 10 + (ch - b'0') as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(ch - b'0')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/dimacs.rs:164:8 [INFO] [stderr] | [INFO] [stderr] 164 | Ok(input.fill_buf()?.first().map(|&ch| ch)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `input.fill_buf()?.first().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: length comparison to zero [INFO] [stderr] --> src/core.rs:315:12 [INFO] [stderr] | [INFO] [stderr] 315 | if clause.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `clause.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/core.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | / let mut res = self.v.value_lit(lit); [INFO] [stderr] 352 | | if self.v.level(lit.var()) != 0 { res = lbool::UNDEF; } [INFO] [stderr] | |_______________________________________________________________^ help: it is more idiomatic to write: `let res = if self.v.level(lit.var()) != 0 { lbool::UNDEF } else { self.v.value_lit(lit) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:685:62 [INFO] [stderr] | [INFO] [stderr] 685 | self.v.learnts_literals as f64 / self.num_learnts() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_learnts())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:704:48 [INFO] [stderr] | [INFO] [stderr] 704 | if self.learnts.len() as f64 - self.v.num_assigns() as f64 >= self.max_learnts { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.v.num_assigns())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:759:28 [INFO] [stderr] | [INFO] [stderr] 759 | self.max_learnts = self.num_clauses() as f64 * self.learntsize_factor; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_clauses())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:760:31 [INFO] [stderr] | [INFO] [stderr] 760 | if self.max_learnts < self.min_learnts_lim as f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.min_learnts_lim)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:761:32 [INFO] [stderr] | [INFO] [stderr] 761 | self.max_learnts = self.min_learnts_lim as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.min_learnts_lim)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:764:40 [INFO] [stderr] | [INFO] [stderr] 764 | self.learntsize_adjust_confl = self.learntsize_adjust_start_confl as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.learntsize_adjust_start_confl)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:778:44 [INFO] [stderr] | [INFO] [stderr] 778 | let nof_clauses = (rest_base * self.restart_first as f64) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.restart_first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:834:55 [INFO] [stderr] | [INFO] [stderr] 834 | && (i < self.learnts.len() / 2 || (c.activity() as f64) < extra_lim) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(c.activity())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:919:40 [INFO] [stderr] | [INFO] [stderr] 919 | self.v.learnts_literals += size as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:922:40 [INFO] [stderr] | [INFO] [stderr] 922 | self.v.clauses_literals += size as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/core.rs:975:5 [INFO] [stderr] | [INFO] [stderr] 975 | / fn analyze(&mut self, mut confl: CRef, out_learnt: &mut Vec) -> i32 { [INFO] [stderr] 976 | | let mut path_c = 0; [INFO] [stderr] 977 | | let mut p = Lit::UNDEF; [INFO] [stderr] 978 | | [INFO] [stderr] ... | [INFO] [stderr] 1107 | | btlevel [INFO] [stderr] 1108 | | } [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/core.rs:1054:17 [INFO] [stderr] | [INFO] [stderr] 1054 | / let mut retain = true; [INFO] [stderr] 1055 | | if reason == CRef::UNDEF { [INFO] [stderr] 1056 | | retain = true; [INFO] [stderr] 1057 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 1065 | | } [INFO] [stderr] 1066 | | } [INFO] [stderr] | |_________________^ help: it is more idiomatic to write: `let retain = if reason == CRef::UNDEF { true } else { ..; true };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `c`. [INFO] [stderr] --> src/core.rs:1059:30 [INFO] [stderr] | [INFO] [stderr] 1059 | for k in 1..c.size() { [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] 1059 | for in c.iter().take(c.size()).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `out_learnt` manually [INFO] [stderr] --> src/core.rs:1097:13 [INFO] [stderr] | [INFO] [stderr] 1097 | / let p = out_learnt[max_i]; [INFO] [stderr] 1098 | | out_learnt[max_i] = out_learnt[1]; [INFO] [stderr] 1099 | | out_learnt[1] = p; [INFO] [stderr] | |_____________________________^ help: try: `out_learnt.swap(max_i, 1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `out_learnt` [INFO] [stderr] --> src/core.rs:1089:22 [INFO] [stderr] | [INFO] [stderr] 1089 | for i in 2..out_learnt.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] 1089 | for (i, ) in out_learnt.iter().enumerate().skip(2) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `c`. [INFO] [stderr] --> src/core.rs:1135:30 [INFO] [stderr] | [INFO] [stderr] 1135 | for j in 1..c.size() { [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] 1135 | for in c.iter().take(c.size()).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/core.rs:1205:20 [INFO] [stderr] | [INFO] [stderr] 1205 | if stack.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `stack.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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1311:30 [INFO] [stderr] | [INFO] [stderr] 1311 | self.propagations += num_props as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(num_props)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1312:31 [INFO] [stderr] | [INFO] [stderr] 1312 | self.simp_db_props -= num_props as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(num_props)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1320:12 [INFO] [stderr] | [INFO] [stderr] 1320 | if self.ca.wasted() as f64 > self.ca.len() as f64 * self.garbage_frac { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.ca.wasted())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1320:38 [INFO] [stderr] | [INFO] [stderr] 1320 | if self.ca.wasted() as f64 > self.ca.len() as f64 * self.garbage_frac { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.ca.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1341:23 [INFO] [stderr] | [INFO] [stderr] 1341 | let f = 1.0 / self.num_vars() as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_vars())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:1343:18 [INFO] [stderr] | [INFO] [stderr] 1343 | for i in 0..self.v.decision_level() + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=self.v.decision_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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1354:50 [INFO] [stderr] | [INFO] [stderr] 1354 | progress += f64::powi(f, i as i32) * (end - beg) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(end - beg)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1357:20 [INFO] [stderr] | [INFO] [stderr] 1357 | progress / self.num_vars() as f64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_vars())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/core.rs:1418:20 [INFO] [stderr] | [INFO] [stderr] 1418 | if !is_removed!(self.ca, cr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `$ca.get_ref($cr).mark() != 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/core.rs:1432:20 [INFO] [stderr] | [INFO] [stderr] 1432 | if !is_removed!(self.ca, cr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `$ca.get_ref($cr).mark() != 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1528:38 [INFO] [stderr] | [INFO] [stderr] 1528 | self.learnts_literals -= csize as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(csize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1531:38 [INFO] [stderr] | [INFO] [stderr] 1531 | self.clauses_literals -= csize as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(csize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:1687:16 [INFO] [stderr] | [INFO] [stderr] 1687 | fn is_seen(&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: manual implementation of an assign operation [INFO] [stderr] --> src/core.rs:1762:9 [INFO] [stderr] | [INFO] [stderr] 1762 | x = x % size; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `x %= size` [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1772:14 [INFO] [stderr] | [INFO] [stderr] 1772 | *seed -= q as f64 * 2147483647.0; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(q)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1778:20 [INFO] [stderr] | [INFO] [stderr] 1778 | (drand(seed) * size as f64) as i32 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: item `alloc::RegionAllocator` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/alloc.rs:32:1 [INFO] [stderr] | [INFO] [stderr] 32 | / impl RegionAllocator { [INFO] [stderr] 33 | | pub fn new(start_cap: u32) -> Self { [INFO] [stderr] 34 | | Self { [INFO] [stderr] 35 | | vec: Vec::with_capacity(start_cap as usize), [INFO] [stderr] ... | [INFO] [stderr] 59 | | } [INFO] [stderr] 60 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: item `intmap::IntSet` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/intmap.rs:171:1 [INFO] [stderr] | [INFO] [stderr] 171 | / impl IntSet { [INFO] [stderr] 172 | | pub fn new() -> Self { [INFO] [stderr] 173 | | Self::default() [INFO] [stderr] 174 | | } [INFO] [stderr] ... | [INFO] [stderr] 194 | | } [INFO] [stderr] 195 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:51:16 [INFO] [stderr] | [INFO] [stderr] 51 | pub fn idx(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:83:16 [INFO] [stderr] | [INFO] [stderr] 83 | pub fn idx(&self) -> u32 { [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/clause.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn sign(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:91:16 [INFO] [stderr] | [INFO] [stderr] 91 | pub fn var(&self) -> Var { [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/clause.rs:179:18 [INFO] [stderr] | [INFO] [stderr] 179 | pub fn to_u8(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:515:17 [INFO] [stderr] | [INFO] [stderr] 515 | pub fn mark(&self) -> u32 { [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/clause.rs:519:19 [INFO] [stderr] | [INFO] [stderr] 519 | pub fn learnt(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:523:22 [INFO] [stderr] | [INFO] [stderr] 523 | pub fn has_extra(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:527:20 [INFO] [stderr] | [INFO] [stderr] 527 | pub fn reloced(&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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/clause.rs:531:17 [INFO] [stderr] | [INFO] [stderr] 531 | pub fn size(&self) -> u32 { [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: item `clause::ClauseAllocator` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/clause.rs:553:1 [INFO] [stderr] | [INFO] [stderr] 553 | / impl ClauseAllocator { [INFO] [stderr] 554 | | pub const UNIT_SIZE: u32 = 32; [INFO] [stderr] 555 | | pub fn with_start_cap(start_cap: u32) -> Self { [INFO] [stderr] 556 | | Self { [INFO] [stderr] ... | [INFO] [stderr] 671 | | } [INFO] [stderr] 672 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `clause::ClauseAllocator` [INFO] [stderr] --> src/clause.rs:561:5 [INFO] [stderr] | [INFO] [stderr] 561 | / pub fn new() -> Self { [INFO] [stderr] 562 | | Self::with_start_cap(1024 * 1024) [INFO] [stderr] 563 | | } [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] 553 | impl Default for clause::ClauseAllocator { [INFO] [stderr] 554 | fn default() -> Self { [INFO] [stderr] 555 | Self::new() [INFO] [stderr] 556 | } [INFO] [stderr] 557 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/clause.rs:638:5 [INFO] [stderr] | [INFO] [stderr] 638 | / pub(crate) fn get_ref<'a>(&'a self, cr: CRef) -> ClauseRef<'a> { [INFO] [stderr] 639 | | let header = unsafe { self.ra[cr].header }; [INFO] [stderr] 640 | | let has_extra = header.has_extra(); [INFO] [stderr] 641 | | let size = header.size(); [INFO] [stderr] ... | [INFO] [stderr] 653 | | } [INFO] [stderr] 654 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `clause::OccListsData` [INFO] [stderr] --> src/clause.rs:693:5 [INFO] [stderr] | [INFO] [stderr] 693 | / pub fn new() -> Self { [INFO] [stderr] 694 | | Self { [INFO] [stderr] 695 | | occs: IntMap::new(), [INFO] [stderr] 696 | | dirty: IntMapBool::new(), [INFO] [stderr] 697 | | dirties: Vec::new(), [INFO] [stderr] 698 | | } [INFO] [stderr] 699 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 686 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `&` [INFO] [stderr] --> src/clause.rs:889:20 [INFO] [stderr] | [INFO] [stderr] 889 | assert_eq!(lbool::TRUE & lbool::TRUE, lbool::TRUE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `&` [INFO] [stderr] --> src/clause.rs:892:20 [INFO] [stderr] | [INFO] [stderr] 892 | assert_eq!(lbool::FALSE & lbool::FALSE, lbool::FALSE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `|` [INFO] [stderr] --> src/clause.rs:902:20 [INFO] [stderr] | [INFO] [stderr] 902 | assert_eq!(lbool::TRUE | lbool::TRUE, lbool::TRUE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `|` [INFO] [stderr] --> src/clause.rs:905:20 [INFO] [stderr] | [INFO] [stderr] 905 | assert_eq!(lbool::FALSE | lbool::FALSE, lbool::FALSE); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dimacs.rs:51:36 [INFO] [stderr] | [INFO] [stderr] 51 | return parse_error(format!("PARSE ERROR! Unexpected char: p")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"PARSE ERROR! Unexpected char: p".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/dimacs.rs:71:23 [INFO] [stderr] | [INFO] [stderr] 71 | } else if let Some(_) = ch { [INFO] [stderr] | ________________- ^^^^^^^ [INFO] [stderr] 72 | | read_clause(input, solver, &mut lits)?; [INFO] [stderr] 73 | | solver.add_clause_reuse(&mut lits); [INFO] [stderr] 74 | | num_read_clauses += 1; [INFO] [stderr] 75 | | } else { [INFO] [stderr] 76 | | break; [INFO] [stderr] 77 | | } [INFO] [stderr] | |_________- help: try this: `if ch.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dimacs.rs:80:28 [INFO] [stderr] | [INFO] [stderr] 80 | return parse_error(format!( [INFO] [stderr] | ____________________________^ [INFO] [stderr] 81 | | "PARSE ERROR! DIMACS header mismatch: wrong number of clauses" [INFO] [stderr] 82 | | )); [INFO] [stderr] | |_________^ help: consider using .to_string(): `"PARSE ERROR! DIMACS header mismatch: wrong number of clauses".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dimacs.rs:120:28 [INFO] [stderr] | [INFO] [stderr] 120 | return parse_error(format!("PARSE ERROR! Unexpected EOF")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"PARSE ERROR! Unexpected EOF".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/dimacs.rs:128:26 [INFO] [stderr] | [INFO] [stderr] 128 | val = val * 10 + (ch - b'0') as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `i32::from(ch - b'0')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/dimacs.rs:164:8 [INFO] [stderr] | [INFO] [stderr] 164 | Ok(input.fill_buf()?.first().map(|&ch| ch)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `input.fill_buf()?.first().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: length comparison to zero [INFO] [stderr] --> src/core.rs:315:12 [INFO] [stderr] | [INFO] [stderr] 315 | if clause.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `clause.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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/core.rs:351:9 [INFO] [stderr] | [INFO] [stderr] 351 | / let mut res = self.v.value_lit(lit); [INFO] [stderr] 352 | | if self.v.level(lit.var()) != 0 { res = lbool::UNDEF; } [INFO] [stderr] | |_______________________________________________________________^ help: it is more idiomatic to write: `let res = if self.v.level(lit.var()) != 0 { lbool::UNDEF } else { self.v.value_lit(lit) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:685:62 [INFO] [stderr] | [INFO] [stderr] 685 | self.v.learnts_literals as f64 / self.num_learnts() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_learnts())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:704:48 [INFO] [stderr] | [INFO] [stderr] 704 | if self.learnts.len() as f64 - self.v.num_assigns() as f64 >= self.max_learnts { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.v.num_assigns())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:759:28 [INFO] [stderr] | [INFO] [stderr] 759 | self.max_learnts = self.num_clauses() as f64 * self.learntsize_factor; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_clauses())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:760:31 [INFO] [stderr] | [INFO] [stderr] 760 | if self.max_learnts < self.min_learnts_lim as f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.min_learnts_lim)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:761:32 [INFO] [stderr] | [INFO] [stderr] 761 | self.max_learnts = self.min_learnts_lim as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.min_learnts_lim)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:764:40 [INFO] [stderr] | [INFO] [stderr] 764 | self.learntsize_adjust_confl = self.learntsize_adjust_start_confl as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.learntsize_adjust_start_confl)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:778:44 [INFO] [stderr] | [INFO] [stderr] 778 | let nof_clauses = (rest_base * self.restart_first as f64) as i32; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.restart_first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:834:55 [INFO] [stderr] | [INFO] [stderr] 834 | && (i < self.learnts.len() / 2 || (c.activity() as f64) < extra_lim) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(c.activity())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:919:40 [INFO] [stderr] | [INFO] [stderr] 919 | self.v.learnts_literals += size as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:922:40 [INFO] [stderr] | [INFO] [stderr] 922 | self.v.clauses_literals += size as u64; [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 29 [INFO] [stderr] --> src/core.rs:975:5 [INFO] [stderr] | [INFO] [stderr] 975 | / fn analyze(&mut self, mut confl: CRef, out_learnt: &mut Vec) -> i32 { [INFO] [stderr] 976 | | let mut path_c = 0; [INFO] [stderr] 977 | | let mut p = Lit::UNDEF; [INFO] [stderr] 978 | | [INFO] [stderr] ... | [INFO] [stderr] 1107 | | btlevel [INFO] [stderr] 1108 | | } [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: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/core.rs:1054:17 [INFO] [stderr] | [INFO] [stderr] 1054 | / let mut retain = true; [INFO] [stderr] 1055 | | if reason == CRef::UNDEF { [INFO] [stderr] 1056 | | retain = true; [INFO] [stderr] 1057 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 1065 | | } [INFO] [stderr] 1066 | | } [INFO] [stderr] | |_________________^ help: it is more idiomatic to write: `let retain = if reason == CRef::UNDEF { true } else { ..; true };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: the loop variable `k` is only used to index `c`. [INFO] [stderr] --> src/core.rs:1059:30 [INFO] [stderr] | [INFO] [stderr] 1059 | for k in 1..c.size() { [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] 1059 | for in c.iter().take(c.size()).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `out_learnt` manually [INFO] [stderr] --> src/core.rs:1097:13 [INFO] [stderr] | [INFO] [stderr] 1097 | / let p = out_learnt[max_i]; [INFO] [stderr] 1098 | | out_learnt[max_i] = out_learnt[1]; [INFO] [stderr] 1099 | | out_learnt[1] = p; [INFO] [stderr] | |_____________________________^ help: try: `out_learnt.swap(max_i, 1)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_swap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `out_learnt` [INFO] [stderr] --> src/core.rs:1089:22 [INFO] [stderr] | [INFO] [stderr] 1089 | for i in 2..out_learnt.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] 1089 | for (i, ) in out_learnt.iter().enumerate().skip(2) { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `j` is only used to index `c`. [INFO] [stderr] --> src/core.rs:1135:30 [INFO] [stderr] | [INFO] [stderr] 1135 | for j in 1..c.size() { [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] 1135 | for in c.iter().take(c.size()).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/core.rs:1205:20 [INFO] [stderr] | [INFO] [stderr] 1205 | if stack.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `stack.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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1311:30 [INFO] [stderr] | [INFO] [stderr] 1311 | self.propagations += num_props as u64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `u64::from(num_props)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1312:31 [INFO] [stderr] | [INFO] [stderr] 1312 | self.simp_db_props -= num_props as i64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `i64::from(num_props)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1320:12 [INFO] [stderr] | [INFO] [stderr] 1320 | if self.ca.wasted() as f64 > self.ca.len() as f64 * self.garbage_frac { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.ca.wasted())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1320:38 [INFO] [stderr] | [INFO] [stderr] 1320 | if self.ca.wasted() as f64 > self.ca.len() as f64 * self.garbage_frac { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.ca.len())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1341:23 [INFO] [stderr] | [INFO] [stderr] 1341 | let f = 1.0 / self.num_vars() as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_vars())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/core.rs:1343:18 [INFO] [stderr] | [INFO] [stderr] 1343 | for i in 0..self.v.decision_level() + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `0..=self.v.decision_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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1354:50 [INFO] [stderr] | [INFO] [stderr] 1354 | progress += f64::powi(f, i as i32) * (end - beg) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `f64::from(end - beg)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1357:20 [INFO] [stderr] | [INFO] [stderr] 1357 | progress / self.num_vars() as f64 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.num_vars())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/core.rs:1418:20 [INFO] [stderr] | [INFO] [stderr] 1418 | if !is_removed!(self.ca, cr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `$ca.get_ref($cr).mark() != 1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/core.rs:1432:20 [INFO] [stderr] | [INFO] [stderr] 1432 | if !is_removed!(self.ca, cr) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `$ca.get_ref($cr).mark() != 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1528:38 [INFO] [stderr] | [INFO] [stderr] 1528 | self.learnts_literals -= csize as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(csize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1531:38 [INFO] [stderr] | [INFO] [stderr] 1531 | self.clauses_literals -= csize as u64; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `u64::from(csize)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/core.rs:1687:16 [INFO] [stderr] | [INFO] [stderr] 1687 | fn is_seen(&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: manual implementation of an assign operation [INFO] [stderr] --> src/core.rs:1762:9 [INFO] [stderr] | [INFO] [stderr] 1762 | x = x % size; [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `x %= size` [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1772:14 [INFO] [stderr] | [INFO] [stderr] 1772 | *seed -= q as f64 * 2147483647.0; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(q)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/core.rs:1778:20 [INFO] [stderr] | [INFO] [stderr] 1778 | (drand(seed) * size as f64) as i32 [INFO] [stderr] | ^^^^^^^^^^^ help: try: `f64::from(size)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `batsat`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "24f1e7435049dd3db8c25c39b78cf699472b8704df96f432d72bc36c0d6588d9"` [INFO] running `"docker" "rm" "-f" "24f1e7435049dd3db8c25c39b78cf699472b8704df96f432d72bc36c0d6588d9"` [INFO] [stdout] 24f1e7435049dd3db8c25c39b78cf699472b8704df96f432d72bc36c0d6588d9