[INFO] updating cached repository edoipi/rusty_duckling [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/edoipi/rusty_duckling [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/edoipi/rusty_duckling" "work/ex/clippy-test-run/sources/stable/gh/edoipi/rusty_duckling"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/edoipi/rusty_duckling'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/edoipi/rusty_duckling" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/edoipi/rusty_duckling"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/edoipi/rusty_duckling'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] c4bebe70a3610a83295bb8b37a67681c0033c2d6 [INFO] sha for GitHub repo edoipi/rusty_duckling: c4bebe70a3610a83295bb8b37a67681c0033c2d6 [INFO] validating manifest of edoipi/rusty_duckling 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 edoipi/rusty_duckling 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 edoipi/rusty_duckling [INFO] finished frobbing edoipi/rusty_duckling [INFO] frobbed toml for edoipi/rusty_duckling written to work/ex/clippy-test-run/sources/stable/gh/edoipi/rusty_duckling/Cargo.toml [INFO] started frobbing edoipi/rusty_duckling [INFO] finished frobbing edoipi/rusty_duckling [INFO] frobbed toml for edoipi/rusty_duckling written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/edoipi/rusty_duckling/Cargo.toml [INFO] crate edoipi/rusty_duckling has a lockfile. skipping [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 edoipi/rusty_duckling 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/gh/edoipi/rusty_duckling:/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] 315e7fe6f2ac09f20774af0394aa88fcde80326db6aac4a94dffa8fddd0228ee [INFO] running `"docker" "start" "-a" "315e7fe6f2ac09f20774af0394aa88fcde80326db6aac4a94dffa8fddd0228ee"` [INFO] [stderr] Checking rusty_duckling v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/cnf_manager.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:215:72 [INFO] [stderr] | [INFO] [stderr] 215 | pub fn setLiteral(&mut self, lit : i32, ante : ArrTuple, ind : usize) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cnf_manager.rs:354:9 [INFO] [stderr] | [INFO] [stderr] 354 | return self.assertLiteral(lit, ArrTuple::new(), 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.assertLiteral(lit, ArrTuple::new(), 0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:357:67 [INFO] [stderr] | [INFO] [stderr] 357 | pub fn learnClause(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:492:31 [INFO] [stderr] | [INFO] [stderr] 492 | pub fn addClause(& mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cnf_manager.rs:515:3 [INFO] [stderr] | [INFO] [stderr] 515 | return self.assertLiteral(lit, ArrTuple::ctor(true), ind + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.assertLiteral(lit, ArrTuple::ctor(true), ind + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:518:43 [INFO] [stderr] | [INFO] [stderr] 518 | pub fn backtrack(&mut self, level : i32) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:536:31 [INFO] [stderr] | [INFO] [stderr] 536 | pub fn scoreDecay(&mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:544:68 [INFO] [stderr] | [INFO] [stderr] 544 | pub fn updateScores(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/sat_solver.rs:60:36 [INFO] [stderr] | [INFO] [stderr] 60 | ret.cnf_manager.assertLiteral((i as i32), ArrTuple::new(), 0); [INFO] [stderr] | ^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/sat_solver.rs:238:30 [INFO] [stderr] | [INFO] [stderr] 238 | pub fn printSolution(&self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/sat_solver.rs:250:27 [INFO] [stderr] | [INFO] [stderr] 250 | pub fn printStats(&self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ptr` [INFO] [stderr] --> src/cnf_manager.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::ptr; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:215:72 [INFO] [stderr] | [INFO] [stderr] 215 | pub fn setLiteral(&mut self, lit : i32, ante : ArrTuple, ind : usize) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cnf_manager.rs:354:9 [INFO] [stderr] | [INFO] [stderr] 354 | return self.assertLiteral(lit, ArrTuple::new(), 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.assertLiteral(lit, ArrTuple::new(), 0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:357:67 [INFO] [stderr] | [INFO] [stderr] 357 | pub fn learnClause(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:492:31 [INFO] [stderr] | [INFO] [stderr] 492 | pub fn addClause(& mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/cnf_manager.rs:515:3 [INFO] [stderr] | [INFO] [stderr] 515 | return self.assertLiteral(lit, ArrTuple::ctor(true), ind + 1); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.assertLiteral(lit, ArrTuple::ctor(true), ind + 1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:518:43 [INFO] [stderr] | [INFO] [stderr] 518 | pub fn backtrack(&mut self, level : i32) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:536:31 [INFO] [stderr] | [INFO] [stderr] 536 | pub fn scoreDecay(&mut self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/cnf_manager.rs:544:68 [INFO] [stderr] | [INFO] [stderr] 544 | pub fn updateScores(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around method argument [INFO] [stderr] --> src/sat_solver.rs:60:36 [INFO] [stderr] | [INFO] [stderr] 60 | ret.cnf_manager.assertLiteral((i as i32), ArrTuple::new(), 0); [INFO] [stderr] | ^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/sat_solver.rs:238:30 [INFO] [stderr] | [INFO] [stderr] 238 | pub fn printSolution(&self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/sat_solver.rs:250:27 [INFO] [stderr] | [INFO] [stderr] 250 | pub fn printStats(&self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cnf_manager.rs:157:7 [INFO] [stderr] | [INFO] [stderr] 157 | for i in 0..ret.var_count+1 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] warning: unused variable: `i` [INFO] [stderr] --> src/cnf_manager.rs:157:7 [INFO] [stderr] | [INFO] [stderr] 157 | for i in 0..ret.var_count+1 { [INFO] [stderr] | ^ help: consider using `_i` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `lit` is never read [INFO] [stderr] --> src/cnf_manager.rs:394:11 [INFO] [stderr] | [INFO] [stderr] 394 | let mut lit = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `lit` is never read [INFO] [stderr] --> src/cnf_manager.rs:394:11 [INFO] [stderr] | [INFO] [stderr] 394 | let mut lit = 0; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cur_level_lits` is never read [INFO] [stderr] --> src/cnf_manager.rs:418:5 [INFO] [stderr] | [INFO] [stderr] 418 | cur_level_lits -= 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `cur_level_lits` is never read [INFO] [stderr] --> src/cnf_manager.rs:418:5 [INFO] [stderr] | [INFO] [stderr] 418 | cur_level_lits -= 1; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:271:9 [INFO] [stderr] | [INFO] [stderr] 271 | let mut watch; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:272:9 [INFO] [stderr] | [INFO] [stderr] 272 | let mut other_watch; [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:363:7 [INFO] [stderr] | [INFO] [stderr] 363 | let mut conflict_clause = [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | let mut ante = [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:271:9 [INFO] [stderr] | [INFO] [stderr] 271 | let mut watch; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:272:9 [INFO] [stderr] | [INFO] [stderr] 272 | let mut other_watch; [INFO] [stderr] | ----^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:547:7 [INFO] [stderr] | [INFO] [stderr] 547 | let mut vec = [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:363:7 [INFO] [stderr] | [INFO] [stderr] 363 | let mut conflict_clause = [INFO] [stderr] | ----^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:428:9 [INFO] [stderr] | [INFO] [stderr] 428 | let mut ante = [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/cnf_manager.rs:547:7 [INFO] [stderr] | [INFO] [stderr] 547 | let mut vec = [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: function `SIGN` should have a snake case name such as `sign` [INFO] [stderr] --> src/cnf_manager.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn SIGN(&lit : &i32) -> VA { [INFO] [stderr] 14 | | if lit > 0 {VA::Pos} else {VA::Neg} [INFO] [stderr] 15 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn SIGN(&lit : &i32) -> VA { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `VAR` should have a snake case name such as `var` [INFO] [stderr] --> src/cnf_manager.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn VAR(&lit : &i32) -> usize { [INFO] [stderr] 18 | | lit.abs() as usize [INFO] [stderr] 19 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:17:19 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn VAR(&lit : &i32) -> usize { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `NEG` should have a snake case name such as `neg` [INFO] [stderr] --> src/cnf_manager.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn NEG(&lit : &i32) -> i32 { [INFO] [stderr] 22 | | -lit [INFO] [stderr] 23 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:21:19 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn NEG(&lit : &i32) -> i32 { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `FREE` should have a snake case name such as `free` [INFO] [stderr] --> src/cnf_manager.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | / pub fn FREE(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] 26 | | m.vars[VAR(&lit)].value == VA::Free [INFO] [stderr] 27 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn FREE(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `SET` should have a snake case name such as `set` [INFO] [stderr] --> src/cnf_manager.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn SET(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] 30 | | m.vars[VAR(&lit)].value == SIGN(&lit) [INFO] [stderr] 31 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:29:19 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn SET(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `RESOLVED` should have a snake case name such as `resolved` [INFO] [stderr] --> src/cnf_manager.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn RESOLVED(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] 34 | | let neg = NEG(&lit); [INFO] [stderr] 35 | | m.vars[VAR(&lit)].value == SIGN(&neg) [INFO] [stderr] 36 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:33:24 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn RESOLVED(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `SCORE` should have a snake case name such as `score` [INFO] [stderr] --> src/cnf_manager.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | / pub fn SCORE(&var : &i32, m : &CnfManager) -> i32 { [INFO] [stderr] 39 | | m.vars[var as usize].activity[0] + m.vars[var as usize].activity[1] [INFO] [stderr] 40 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn SCORE(&var : &i32, m : &CnfManager) -> i32 { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `cnf_manager::ArrTuple` [INFO] [stderr] --> src/cnf_manager.rs:59:2 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn new() -> ArrTuple { [INFO] [stderr] | _____^ [INFO] [stderr] 60 | | ArrTuple { [INFO] [stderr] 61 | | is_null: true, [INFO] [stderr] 62 | | is_lit_pool: false, [INFO] [stderr] ... | [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [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] 51 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `cnf_manager::Variable` [INFO] [stderr] --> src/cnf_manager.rs:96:2 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn new() -> Variable { [INFO] [stderr] | _____^ [INFO] [stderr] 97 | | Variable { [INFO] [stderr] 98 | | uip_mark : false, [INFO] [stderr] 99 | | phase : false, [INFO] [stderr] ... | [INFO] [stderr] 107 | | } [INFO] [stderr] 108 | | } [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] 95 | impl Default for cnf_manager::Variable { [INFO] [stderr] 96 | fn default() -> Self { [INFO] [stderr] 97 | Self::new() [INFO] [stderr] 98 | } [INFO] [stderr] 99 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/cnf_manager.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | for i in 0..ret.var_count+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `0..=ret.var_count` [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: function `SIGN` should have a snake case name such as `sign` [INFO] [stderr] --> src/cnf_manager.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn SIGN(&lit : &i32) -> VA { [INFO] [stderr] 14 | | if lit > 0 {VA::Pos} else {VA::Neg} [INFO] [stderr] 15 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:13:20 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn SIGN(&lit : &i32) -> VA { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `VAR` should have a snake case name such as `var` [INFO] [stderr] --> src/cnf_manager.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | / pub fn VAR(&lit : &i32) -> usize { [INFO] [stderr] 18 | | lit.abs() as usize [INFO] [stderr] 19 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:17:19 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn VAR(&lit : &i32) -> usize { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `NEG` should have a snake case name such as `neg` [INFO] [stderr] --> src/cnf_manager.rs:21:1 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn NEG(&lit : &i32) -> i32 { [INFO] [stderr] 22 | | -lit [INFO] [stderr] 23 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/cnf_manager.rs:199:12 [INFO] [stderr] | [INFO] [stderr] 199 | for i in 1..ret.var_count+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `1..=ret.var_count` [INFO] [stderr] | [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] --> src/cnf_manager.rs:21:19 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn NEG(&lit : &i32) -> i32 { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [INFO] [stderr] [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: function `FREE` should have a snake case name such as `free` [INFO] [stderr] --> src/cnf_manager.rs:25:1 [INFO] [stderr] | [INFO] [stderr] 25 | / pub fn FREE(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] 26 | | m.vars[VAR(&lit)].value == VA::Free [INFO] [stderr] 27 | | } [INFO] [stderr] | |_^ [INFO] [stderr] warning: the loop variable `j` is used to index `imp` [INFO] [stderr] --> src/cnf_manager.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | for j in 0..2 { [INFO] [stderr] | ^^^^ [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] 200 | for (j, ) in imp.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn FREE(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `SET` should have a snake case name such as `set` [INFO] [stderr] --> src/cnf_manager.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | / pub fn SET(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] 30 | | m.vars[VAR(&lit)].value == SIGN(&lit) [INFO] [stderr] 31 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:29:19 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn SET(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `RESOLVED` should have a snake case name such as `resolved` [INFO] [stderr] --> src/cnf_manager.rs:33:1 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn RESOLVED(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] 34 | | let neg = NEG(&lit); [INFO] [stderr] 35 | | m.vars[VAR(&lit)].value == SIGN(&neg) [INFO] [stderr] 36 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:33:24 [INFO] [stderr] | [INFO] [stderr] 33 | pub fn RESOLVED(&lit : &i32, m : &CnfManager) -> bool { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: function `SCORE` should have a snake case name such as `score` [INFO] [stderr] --> src/cnf_manager.rs:38:1 [INFO] [stderr] | [INFO] [stderr] 38 | / pub fn SCORE(&var : &i32, m : &CnfManager) -> i32 { [INFO] [stderr] 39 | | m.vars[var as usize].activity[0] + m.vars[var as usize].activity[1] [INFO] [stderr] 40 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: method `setLiteral` should have a snake case name such as `set_literal` [INFO] [stderr] --> src/cnf_manager.rs:215:2 [INFO] [stderr] | [INFO] [stderr] 215 | pub fn setLiteral(&mut self, lit : i32, ante : ArrTuple, ind : usize) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 216 | | //println!("Set literal {}, ante_ind = {}", lit, ind); [INFO] [stderr] 217 | | self.vars[VAR(&lit)].value = SIGN(&lit); [INFO] [stderr] 218 | | self.vars[VAR(&lit)].ante = ante; [INFO] [stderr] 219 | | self.vars[VAR(&lit)].ante_ind = ind; [INFO] [stderr] 220 | | self.vars[VAR(&lit)].decision_level = self.decision_level; [INFO] [stderr] 221 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `assertLiteral` should have a snake case name such as `assert_literal` [INFO] [stderr] --> src/cnf_manager.rs:223:2 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn assertLiteral(&mut self, mut lit : i32, ante : ArrTuple, ante_ind : usize) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 224 | | //println!("assertLiteral for lit {}, ante_ind {}", lit, ante_ind); [INFO] [stderr] 225 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 226 | | let self3 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] ... | [INFO] [stderr] 330 | | true [INFO] [stderr] 331 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cnf_manager.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | let mut other_watch; [INFO] [stderr] | _________________^ [INFO] [stderr] 273 | | if self.lit_pool[first] == lit { [INFO] [stderr] 274 | | watch = first; [INFO] [stderr] 275 | | other_watch = first + 1; [INFO] [stderr] ... | [INFO] [stderr] 278 | | other_watch = first; [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________________^ help: it is more idiomatic to write: `let other_watch = if self.lit_pool[first] == lit { ..; first + 1 } else { ..; first };` [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: this looks like you are swapping elements of `self.lit_pool` manually [INFO] [stderr] --> src/cnf_manager.rs:303:6 [INFO] [stderr] | [INFO] [stderr] 303 | let x = self.lit_pool[watch]; [INFO] [stderr] | _____________________^ [INFO] [stderr] 304 | | self.lit_pool[watch] = self.lit_pool[p]; [INFO] [stderr] 305 | | self.lit_pool[p] = x; [INFO] [stderr] | |________________________________________^ help: try: `self.lit_pool.swap(watch, p)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:299:31 [INFO] [stderr] | [INFO] [stderr] 299 | watchlist[it as usize] = watchlist.last().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*watchlist.last().unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `self.lit_pool` manually [INFO] [stderr] --> src/cnf_manager.rs:313:8 [INFO] [stderr] | [INFO] [stderr] 313 | let x = self.lit_pool[other_watch]; [INFO] [stderr] | _____________________________^ [INFO] [stderr] 314 | | self.lit_pool[other_watch] = self.lit_pool[first]; [INFO] [stderr] 315 | | self.lit_pool[first] = x; [INFO] [stderr] | |____________________________________________________^ help: try: `self.lit_pool.swap(other_watch, first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: method `assertUnitClauses` should have a snake case name such as `assert_unit_clauses` [INFO] [stderr] --> src/cnf_manager.rs:333:2 [INFO] [stderr] | [INFO] [stderr] 333 | pub fn assertUnitClauses(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 334 | | //println!("assertUnitClauses"); [INFO] [stderr] 335 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 336 | | for i in (1..self.decision_stack.len()).rev() { [INFO] [stderr] ... | [INFO] [stderr] 347 | | true [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:342:56 [INFO] [stderr] | [INFO] [stderr] 342 | if !self2.assertLiteral(lit, ArrTuple::ctor(true), &self.lit_pool.len().clone() - 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.lit_pool.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `learnClause` should have a snake case name such as `learn_clause` [INFO] [stderr] --> src/cnf_manager.rs:357:2 [INFO] [stderr] | [INFO] [stderr] 357 | pub fn learnClause(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 358 | | //println!("learnClause {}", self.decision_level); [INFO] [stderr] 359 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 360 | | let self3 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] ... | [INFO] [stderr] 489 | | self2.addClause(); [INFO] [stderr] 490 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:396:10 [INFO] [stderr] | [INFO] [stderr] 396 | lit = self.decision_stack.last().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.decision_stack.last().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cnf_manager.rs:408:7 [INFO] [stderr] | [INFO] [stderr] 408 | if self.vars[var].ante.is_null == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.vars[var].ante.is_null` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/cnf_manager.rs:38:21 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn SCORE(&var : &i32, m : &CnfManager) -> i32 { [INFO] [stderr] | ^^^^ help: consider passing by value instead: `i32` [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: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cnf_manager.rs:425:7 [INFO] [stderr] | [INFO] [stderr] 425 | if x.is_null == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!x.is_null` [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/cnf_manager.rs:455:7 [INFO] [stderr] | [INFO] [stderr] 455 | if x.is_null == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!x.is_null` [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: you should consider deriving a `Default` implementation for `cnf_manager::ArrTuple` [INFO] [stderr] --> src/cnf_manager.rs:59:2 [INFO] [stderr] | [INFO] [stderr] 59 | pub fn new() -> ArrTuple { [INFO] [stderr] | _____^ [INFO] [stderr] 60 | | ArrTuple { [INFO] [stderr] 61 | | is_null: true, [INFO] [stderr] 62 | | is_lit_pool: false, [INFO] [stderr] ... | [INFO] [stderr] 65 | | } [INFO] [stderr] 66 | | } [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] 51 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `addClause` should have a snake case name such as `add_clause` [INFO] [stderr] --> src/cnf_manager.rs:492:2 [INFO] [stderr] | [INFO] [stderr] 492 | pub fn addClause(& mut self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 493 | | //println!("addClause"); [INFO] [stderr] 494 | | self.conflict_clause_ind = self.lit_pool.len(); [INFO] [stderr] 495 | | self.lit_pool.push(self.conflict_lit.back().unwrap().clone()); [INFO] [stderr] ... | [INFO] [stderr] 508 | | self.lit_pool.push(0); [INFO] [stderr] 509 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `cnf_manager::Variable` [INFO] [stderr] --> src/cnf_manager.rs:96:2 [INFO] [stderr] | [INFO] [stderr] 96 | pub fn new() -> Variable { [INFO] [stderr] | _____^ [INFO] [stderr] 97 | | Variable { [INFO] [stderr] 98 | | uip_mark : false, [INFO] [stderr] 99 | | phase : false, [INFO] [stderr] ... | [INFO] [stderr] 107 | | } [INFO] [stderr] 108 | | } [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] 95 | impl Default for cnf_manager::Variable { [INFO] [stderr] 96 | fn default() -> Self { [INFO] [stderr] 97 | Self::new() [INFO] [stderr] 98 | } [INFO] [stderr] 99 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: method `assertCL` should have a snake case name such as `assert_cl` [INFO] [stderr] --> src/cnf_manager.rs:511:2 [INFO] [stderr] | [INFO] [stderr] 511 | pub fn assertCL(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 512 | | //println!("assertCL"); [INFO] [stderr] 513 | | let ind = self.conflict_clause_ind.clone(); [INFO] [stderr] 514 | | let lit = self.lit_pool[ind].clone(); [INFO] [stderr] 515 | | return self.assertLiteral(lit, ArrTuple::ctor(true), ind + 1); [INFO] [stderr] 516 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:513:13 [INFO] [stderr] | [INFO] [stderr] 513 | let ind = self.conflict_clause_ind.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.conflict_clause_ind` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:514:13 [INFO] [stderr] | [INFO] [stderr] 514 | let lit = self.lit_pool[ind].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.lit_pool[ind]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `scoreDecay` should have a snake case name such as `score_decay` [INFO] [stderr] --> src/cnf_manager.rs:536:2 [INFO] [stderr] | [INFO] [stderr] 536 | pub fn scoreDecay(&mut self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 537 | | //println!("scoreDecay"); [INFO] [stderr] 538 | | for i in 1..(self.var_count + 1) as usize { [INFO] [stderr] 539 | | self.vars[i].activity[0] >>= 1; [INFO] [stderr] 540 | | self.vars[i].activity[1] >>= 1; [INFO] [stderr] 541 | | } [INFO] [stderr] 542 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `updateScores` should have a snake case name such as `update_scores` [INFO] [stderr] --> src/cnf_manager.rs:544:2 [INFO] [stderr] | [INFO] [stderr] 544 | pub fn updateScores(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 545 | | //println!("updateScores"); [INFO] [stderr] 546 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 547 | | let mut vec = [INFO] [stderr] ... | [INFO] [stderr] 591 | | } [INFO] [stderr] 592 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/cnf_manager.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | for i in 0..ret.var_count+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `0..=ret.var_count` [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: you should consider deriving a `Default` implementation for `sat_solver::Luby` [INFO] [stderr] --> src/sat_solver.rs:13:2 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new() -> Luby { [INFO] [stderr] | _____^ [INFO] [stderr] 14 | | Luby {seq : Vec::new(), index : 0, k : 1} [INFO] [stderr] 15 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/sat_solver.rs:17:2 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn next(& mut self) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 18 | | self.index += 1; [INFO] [stderr] 19 | | if self.index == (1 << self.k) - 1 { [INFO] [stderr] 20 | | self.seq.push(1 << (self.k - 1)); [INFO] [stderr] ... | [INFO] [stderr] 26 | | self.seq.last().unwrap().clone() [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sat_solver.rs:26:3 [INFO] [stderr] | [INFO] [stderr] 26 | self.seq.last().unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.seq.last().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/cnf_manager.rs:199:12 [INFO] [stderr] | [INFO] [stderr] 199 | for i in 1..ret.var_count+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: use: `1..=ret.var_count` [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: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/sat_solver.rs:69:6 [INFO] [stderr] | [INFO] [stderr] 69 | if ret.cnf_manager.vars[i].activity[VA::Pos as usize] > ret.cnf_manager.vars[i].activity[VA::Neg as usize] { [INFO] [stderr] | _____________________^ [INFO] [stderr] 70 | | true [INFO] [stderr] 71 | | } else { [INFO] [stderr] 72 | | false [INFO] [stderr] 73 | | }; [INFO] [stderr] | |_____________________^ help: you can reduce it to: `ret.cnf_manager.vars[i].activity[VA::Pos as usize] > ret.cnf_manager.vars[i].activity[VA::Neg as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: method `selectLiteral` should have a snake case name such as `select_literal` [INFO] [stderr] --> src/sat_solver.rs:89:2 [INFO] [stderr] | [INFO] [stderr] 89 | pub fn selectLiteral(& mut self) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 90 | | //println!("selectLiteral"); [INFO] [stderr] 91 | | let mut x = 0 as i32; [INFO] [stderr] 92 | | let last_clause = if self.cnf_manager.next_clause > 256 { [INFO] [stderr] ... | [INFO] [stderr] 163 | | 0 [INFO] [stderr] 164 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/sat_solver.rs:98:12 [INFO] [stderr] | [INFO] [stderr] 98 | for i in (last_clause..(self.cnf_manager.next_clause + 1)).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(last_clause..=self.cnf_manager.next_clause)` [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 `j` is used to index `imp` [INFO] [stderr] --> src/cnf_manager.rs:200:13 [INFO] [stderr] | [INFO] [stderr] 200 | for j in 0..2 { [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] 200 | for (j, ) in imp.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `setLiteral` should have a snake case name such as `set_literal` [INFO] [stderr] --> src/cnf_manager.rs:215:2 [INFO] [stderr] | [INFO] [stderr] 215 | pub fn setLiteral(&mut self, lit : i32, ante : ArrTuple, ind : usize) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 216 | | //println!("Set literal {}, ante_ind = {}", lit, ind); [INFO] [stderr] 217 | | self.vars[VAR(&lit)].value = SIGN(&lit); [INFO] [stderr] 218 | | self.vars[VAR(&lit)].ante = ante; [INFO] [stderr] 219 | | self.vars[VAR(&lit)].ante_ind = ind; [INFO] [stderr] 220 | | self.vars[VAR(&lit)].decision_level = self.decision_level; [INFO] [stderr] 221 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `assertLiteral` should have a snake case name such as `assert_literal` [INFO] [stderr] --> src/cnf_manager.rs:223:2 [INFO] [stderr] | [INFO] [stderr] 223 | pub fn assertLiteral(&mut self, mut lit : i32, ante : ArrTuple, ante_ind : usize) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 224 | | //println!("assertLiteral for lit {}, ante_ind {}", lit, ante_ind); [INFO] [stderr] 225 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 226 | | let self3 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] ... | [INFO] [stderr] 330 | | true [INFO] [stderr] 331 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `verifySolution` should have a snake case name such as `verify_solution` [INFO] [stderr] --> src/sat_solver.rs:214:2 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn verifySolution(&self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 215 | | let ref pool = self.cnf_manager.lit_pool; [INFO] [stderr] 216 | | let mut i = 0; [INFO] [stderr] 217 | | while i < self.cnf_manager.lit_pool_size_orig { [INFO] [stderr] ... | [INFO] [stderr] 235 | | true [INFO] [stderr] 236 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:215:7 [INFO] [stderr] | [INFO] [stderr] 215 | let ref pool = self.cnf_manager.lit_pool; [INFO] [stderr] | ----^^^^^^^^----------------------------- help: try: `let pool = &self.cnf_manager.lit_pool;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | let ref lit = pool[i]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let lit = &pool[i];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: method `printSolution` should have a snake case name such as `print_solution` [INFO] [stderr] --> src/sat_solver.rs:238:2 [INFO] [stderr] | [INFO] [stderr] 238 | pub fn printSolution(&self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 239 | | for i in 1..(self.cnf_manager.var_count+1) as usize { [INFO] [stderr] 240 | | let ref vars = self.cnf_manager.vars; [INFO] [stderr] 241 | | if vars[i].value == VA::Pos { [INFO] [stderr] ... | [INFO] [stderr] 247 | | println!("0"); [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:240:8 [INFO] [stderr] | [INFO] [stderr] 240 | let ref vars = self.cnf_manager.vars; [INFO] [stderr] | ----^^^^^^^^------------------------- help: try: `let vars = &self.cnf_manager.vars;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: method `printStats` should have a snake case name such as `print_stats` [INFO] [stderr] --> src/sat_solver.rs:250:2 [INFO] [stderr] | [INFO] [stderr] 250 | pub fn printStats(&self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 251 | | let ref m = self.cnf_manager; [INFO] [stderr] 252 | | println!("c {} decisions, {} conflicts, {} restarts", m.decision_count, m.conflict_count, m.restart_count); [INFO] [stderr] 253 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:251:7 [INFO] [stderr] | [INFO] [stderr] 251 | let ref m = self.cnf_manager; [INFO] [stderr] | ----^^^^^-------------------- help: try: `let m = &self.cnf_manager;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/cnf_manager.rs:272:5 [INFO] [stderr] | [INFO] [stderr] 272 | let mut other_watch; [INFO] [stderr] | _________________^ [INFO] [stderr] 273 | | if self.lit_pool[first] == lit { [INFO] [stderr] 274 | | watch = first; [INFO] [stderr] 275 | | other_watch = first + 1; [INFO] [stderr] ... | [INFO] [stderr] 278 | | other_watch = first; [INFO] [stderr] 279 | | } [INFO] [stderr] | |_________________^ help: it is more idiomatic to write: `let other_watch = if self.lit_pool[first] == lit { ..; first + 1 } else { ..; first };` [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: this looks like you are swapping elements of `self.lit_pool` manually [INFO] [stderr] --> src/cnf_manager.rs:303:6 [INFO] [stderr] | [INFO] [stderr] 303 | let x = self.lit_pool[watch]; [INFO] [stderr] | _____________________^ [INFO] [stderr] 304 | | self.lit_pool[watch] = self.lit_pool[p]; [INFO] [stderr] 305 | | self.lit_pool[p] = x; [INFO] [stderr] | |________________________________________^ help: try: `self.lit_pool.swap(watch, p)` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:299:31 [INFO] [stderr] | [INFO] [stderr] 299 | watchlist[it as usize] = watchlist.last().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*watchlist.last().unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this looks like you are swapping elements of `self.lit_pool` manually [INFO] [stderr] --> src/cnf_manager.rs:313:8 [INFO] [stderr] | [INFO] [stderr] 313 | let x = self.lit_pool[other_watch]; [INFO] [stderr] | _____________________________^ [INFO] [stderr] 314 | | self.lit_pool[other_watch] = self.lit_pool[first]; [INFO] [stderr] 315 | | self.lit_pool[first] = x; [INFO] [stderr] | |____________________________________________________^ help: try: `self.lit_pool.swap(other_watch, first)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_swap [INFO] [stderr] [INFO] [stderr] warning: method `assertUnitClauses` should have a snake case name such as `assert_unit_clauses` [INFO] [stderr] --> src/cnf_manager.rs:333:2 [INFO] [stderr] | [INFO] [stderr] 333 | pub fn assertUnitClauses(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 334 | | //println!("assertUnitClauses"); [INFO] [stderr] 335 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 336 | | for i in (1..self.decision_stack.len()).rev() { [INFO] [stderr] ... | [INFO] [stderr] 347 | | true [INFO] [stderr] 348 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:342:56 [INFO] [stderr] | [INFO] [stderr] 342 | if !self2.assertLiteral(lit, ArrTuple::ctor(true), &self.lit_pool.len().clone() - 1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.lit_pool.len()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `learnClause` should have a snake case name such as `learn_clause` [INFO] [stderr] --> src/cnf_manager.rs:357:2 [INFO] [stderr] | [INFO] [stderr] 357 | pub fn learnClause(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 358 | | //println!("learnClause {}", self.decision_level); [INFO] [stderr] 359 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 360 | | let self3 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] ... | [INFO] [stderr] 489 | | self2.addClause(); [INFO] [stderr] 490 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:396:10 [INFO] [stderr] | [INFO] [stderr] 396 | lit = self.decision_stack.last().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.decision_stack.last().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/cnf_manager.rs:408:7 [INFO] [stderr] | [INFO] [stderr] 408 | if self.vars[var].ante.is_null == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!self.vars[var].ante.is_null` [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 false can be replaced by a negation [INFO] [stderr] --> src/cnf_manager.rs:425:7 [INFO] [stderr] | [INFO] [stderr] 425 | if x.is_null == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!x.is_null` [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/cnf_manager.rs:455:7 [INFO] [stderr] | [INFO] [stderr] 455 | if x.is_null == false { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `!x.is_null` [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: method `addClause` should have a snake case name such as `add_clause` [INFO] [stderr] --> src/cnf_manager.rs:492:2 [INFO] [stderr] | [INFO] [stderr] 492 | pub fn addClause(& mut self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 493 | | //println!("addClause"); [INFO] [stderr] 494 | | self.conflict_clause_ind = self.lit_pool.len(); [INFO] [stderr] 495 | | self.lit_pool.push(self.conflict_lit.back().unwrap().clone()); [INFO] [stderr] ... | [INFO] [stderr] 508 | | self.lit_pool.push(0); [INFO] [stderr] 509 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `assertCL` should have a snake case name such as `assert_cl` [INFO] [stderr] --> src/cnf_manager.rs:511:2 [INFO] [stderr] | [INFO] [stderr] 511 | pub fn assertCL(&mut self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 512 | | //println!("assertCL"); [INFO] [stderr] 513 | | let ind = self.conflict_clause_ind.clone(); [INFO] [stderr] 514 | | let lit = self.lit_pool[ind].clone(); [INFO] [stderr] 515 | | return self.assertLiteral(lit, ArrTuple::ctor(true), ind + 1); [INFO] [stderr] 516 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:513:13 [INFO] [stderr] | [INFO] [stderr] 513 | let ind = self.conflict_clause_ind.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.conflict_clause_ind` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/cnf_manager.rs:514:13 [INFO] [stderr] | [INFO] [stderr] 514 | let lit = self.lit_pool[ind].clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.lit_pool[ind]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: method `scoreDecay` should have a snake case name such as `score_decay` [INFO] [stderr] --> src/cnf_manager.rs:536:2 [INFO] [stderr] | [INFO] [stderr] 536 | pub fn scoreDecay(&mut self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 537 | | //println!("scoreDecay"); [INFO] [stderr] 538 | | for i in 1..(self.var_count + 1) as usize { [INFO] [stderr] 539 | | self.vars[i].activity[0] >>= 1; [INFO] [stderr] 540 | | self.vars[i].activity[1] >>= 1; [INFO] [stderr] 541 | | } [INFO] [stderr] 542 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: method `updateScores` should have a snake case name such as `update_scores` [INFO] [stderr] --> src/cnf_manager.rs:544:2 [INFO] [stderr] | [INFO] [stderr] 544 | pub fn updateScores(&mut self, tuple : ArrTuple, mut ind : usize) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 545 | | //println!("updateScores"); [INFO] [stderr] 546 | | let self2 = unsafe {&mut *(self as *mut CnfManager)}; [INFO] [stderr] 547 | | let mut vec = [INFO] [stderr] ... | [INFO] [stderr] 591 | | } [INFO] [stderr] 592 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `sat_solver::Luby` [INFO] [stderr] --> src/sat_solver.rs:13:2 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new() -> Luby { [INFO] [stderr] | _____^ [INFO] [stderr] 14 | | Luby {seq : Vec::new(), index : 0, k : 1} [INFO] [stderr] 15 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 6 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `next` on this type; consider implementing the `std::iter::Iterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/sat_solver.rs:17:2 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn next(& mut self) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 18 | | self.index += 1; [INFO] [stderr] 19 | | if self.index == (1 << self.k) - 1 { [INFO] [stderr] 20 | | self.seq.push(1 << (self.k - 1)); [INFO] [stderr] ... | [INFO] [stderr] 26 | | self.seq.last().unwrap().clone() [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/sat_solver.rs:26:3 [INFO] [stderr] | [INFO] [stderr] 26 | self.seq.last().unwrap().clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.seq.last().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: this if-then-else expression returns a bool literal [INFO] [stderr] --> src/sat_solver.rs:69:6 [INFO] [stderr] | [INFO] [stderr] 69 | if ret.cnf_manager.vars[i].activity[VA::Pos as usize] > ret.cnf_manager.vars[i].activity[VA::Neg as usize] { [INFO] [stderr] | _____________________^ [INFO] [stderr] 70 | | true [INFO] [stderr] 71 | | } else { [INFO] [stderr] 72 | | false [INFO] [stderr] 73 | | }; [INFO] [stderr] | |_____________________^ help: you can reduce it to: `ret.cnf_manager.vars[i].activity[VA::Pos as usize] > ret.cnf_manager.vars[i].activity[VA::Neg as usize]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] [INFO] [stderr] warning: method `selectLiteral` should have a snake case name such as `select_literal` [INFO] [stderr] --> src/sat_solver.rs:89:2 [INFO] [stderr] | [INFO] [stderr] 89 | pub fn selectLiteral(& mut self) -> i32 { [INFO] [stderr] | _____^ [INFO] [stderr] 90 | | //println!("selectLiteral"); [INFO] [stderr] 91 | | let mut x = 0 as i32; [INFO] [stderr] 92 | | let last_clause = if self.cnf_manager.next_clause > 256 { [INFO] [stderr] ... | [INFO] [stderr] 163 | | 0 [INFO] [stderr] 164 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/sat_solver.rs:98:12 [INFO] [stderr] | [INFO] [stderr] 98 | for i in (last_clause..(self.cnf_manager.next_clause + 1)).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(last_clause..=self.cnf_manager.next_clause)` [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: method `verifySolution` should have a snake case name such as `verify_solution` [INFO] [stderr] --> src/sat_solver.rs:214:2 [INFO] [stderr] | [INFO] [stderr] 214 | pub fn verifySolution(&self) -> bool { [INFO] [stderr] | _____^ [INFO] [stderr] 215 | | let ref pool = self.cnf_manager.lit_pool; [INFO] [stderr] 216 | | let mut i = 0; [INFO] [stderr] 217 | | while i < self.cnf_manager.lit_pool_size_orig { [INFO] [stderr] ... | [INFO] [stderr] 235 | | true [INFO] [stderr] 236 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:215:7 [INFO] [stderr] | [INFO] [stderr] 215 | let ref pool = self.cnf_manager.lit_pool; [INFO] [stderr] | ----^^^^^^^^----------------------------- help: try: `let pool = &self.cnf_manager.lit_pool;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:220:9 [INFO] [stderr] | [INFO] [stderr] 220 | let ref lit = pool[i]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let lit = &pool[i];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: method `printSolution` should have a snake case name such as `print_solution` [INFO] [stderr] --> src/sat_solver.rs:238:2 [INFO] [stderr] | [INFO] [stderr] 238 | pub fn printSolution(&self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 239 | | for i in 1..(self.cnf_manager.var_count+1) as usize { [INFO] [stderr] 240 | | let ref vars = self.cnf_manager.vars; [INFO] [stderr] 241 | | if vars[i].value == VA::Pos { [INFO] [stderr] ... | [INFO] [stderr] 247 | | println!("0"); [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:240:8 [INFO] [stderr] | [INFO] [stderr] 240 | let ref vars = self.cnf_manager.vars; [INFO] [stderr] | ----^^^^^^^^------------------------- help: try: `let vars = &self.cnf_manager.vars;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: method `printStats` should have a snake case name such as `print_stats` [INFO] [stderr] --> src/sat_solver.rs:250:2 [INFO] [stderr] | [INFO] [stderr] 250 | pub fn printStats(&self) -> () { [INFO] [stderr] | _____^ [INFO] [stderr] 251 | | let ref m = self.cnf_manager; [INFO] [stderr] 252 | | println!("c {} decisions, {} conflicts, {} restarts", m.decision_count, m.conflict_count, m.restart_count); [INFO] [stderr] 253 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/sat_solver.rs:251:7 [INFO] [stderr] | [INFO] [stderr] 251 | let ref m = self.cnf_manager; [INFO] [stderr] | ----^^^^^-------------------- help: try: `let m = &self.cnf_manager;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:12:7 [INFO] [stderr] | [INFO] [stderr] 12 | let ref instance = preprocess(); [INFO] [stderr] | ----^^^^^^^^^^^^---------------- help: try: `let instance = &preprocess();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:12:7 [INFO] [stderr] | [INFO] [stderr] 12 | let ref instance = preprocess(); [INFO] [stderr] | ----^^^^^^^^^^^^---------------- help: try: `let instance = &preprocess();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.11s [INFO] running `"docker" "inspect" "315e7fe6f2ac09f20774af0394aa88fcde80326db6aac4a94dffa8fddd0228ee"` [INFO] running `"docker" "rm" "-f" "315e7fe6f2ac09f20774af0394aa88fcde80326db6aac4a94dffa8fddd0228ee"` [INFO] [stdout] 315e7fe6f2ac09f20774af0394aa88fcde80326db6aac4a94dffa8fddd0228ee