[INFO] updating cached repository krobelus/rate [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/krobelus/rate [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/krobelus/rate" "work/ex/clippy-test-run/sources/stable/gh/krobelus/rate"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/krobelus/rate'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/krobelus/rate" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/krobelus/rate"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/krobelus/rate'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] fe5642fefc95445ecd63e269fbc47a2f26934f93 [INFO] sha for GitHub repo krobelus/rate: fe5642fefc95445ecd63e269fbc47a2f26934f93 [INFO] validating manifest of krobelus/rate 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 krobelus/rate 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 krobelus/rate [INFO] finished frobbing krobelus/rate [INFO] frobbed toml for krobelus/rate written to work/ex/clippy-test-run/sources/stable/gh/krobelus/rate/Cargo.toml [INFO] started frobbing krobelus/rate [INFO] finished frobbing krobelus/rate [INFO] frobbed toml for krobelus/rate written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/krobelus/rate/Cargo.toml [INFO] crate krobelus/rate 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 krobelus/rate against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/krobelus/rate:/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] 25138d308af0de45c4eb5e47369f21903fdc7c279fbb5600a8c314f4f5de6f70 [INFO] running `"docker" "start" "-a" "25138d308af0de45c4eb5e47369f21903fdc7c279fbb5600a8c314f4f5de6f70"` [INFO] [stderr] Checking multimap v0.4.0 [INFO] [stderr] Compiling syn v0.15.22 [INFO] [stderr] Compiling derive_more v0.13.0 [INFO] [stderr] Checking rate v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/checker.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/checker.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | maxvar: maxvar, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `maxvar` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/clause.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/literal.rs:41:19 [INFO] [stderr] | [INFO] [stderr] 41 | Literal { encoding: encoding } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `encoding` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/slice.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | Slice { slice: slice } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/slice.rs:43:20 [INFO] [stderr] | [INFO] [stderr] 43 | SliceMut { slice: slice } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/stack.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | Stack { vec: vec } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `vec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/stackmapping.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | default_value: default_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `default_value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:31:26 [INFO] [stderr] | [INFO] [stderr] 31 | HashableClause { clause: clause } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `clause` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | col: col, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:435:13 [INFO] [stderr] | [INFO] [stderr] 435 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:436:13 [INFO] [stderr] | [INFO] [stderr] 436 | col: col, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/checker.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/checker.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | maxvar: maxvar, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `maxvar` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/clause.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/literal.rs:41:19 [INFO] [stderr] | [INFO] [stderr] 41 | Literal { encoding: encoding } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `encoding` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/slice.rs:17:17 [INFO] [stderr] | [INFO] [stderr] 17 | Slice { slice: slice } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/slice.rs:43:20 [INFO] [stderr] | [INFO] [stderr] 43 | SliceMut { slice: slice } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `slice` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/stack.rs:19:17 [INFO] [stderr] | [INFO] [stderr] 19 | Stack { vec: vec } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `vec` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/memory/stackmapping.rs:17:13 [INFO] [stderr] | [INFO] [stderr] 17 | default_value: default_value, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `default_value` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:31:26 [INFO] [stderr] | [INFO] [stderr] 31 | HashableClause { clause: clause } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `clause` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:204:13 [INFO] [stderr] | [INFO] [stderr] 204 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:205:13 [INFO] [stderr] | [INFO] [stderr] 205 | col: col, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `col` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:435:13 [INFO] [stderr] | [INFO] [stderr] 435 | line: line, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `line` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/parser.rs:436:13 [INFO] [stderr] | [INFO] [stderr] 436 | col: col, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `col` [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: this boolean expression can be simplified [INFO] [stderr] --> src/checker.rs:255:12 [INFO] [stderr] | [INFO] [stderr] 255 | if !checker.watchlist[-l][i].is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `checker.watchlist[-l][i].is_none()` [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/checker.rs:247:5 [INFO] [stderr] | [INFO] [stderr] 247 | reason.map(|unit_clause| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 248 | || ensure!(checker.clause_active[unit_clause]); [INFO] [stderr] 249 | || checker.clause_unit[unit_clause] = l; [INFO] [stderr] 250 | || checker.literal_reason[l] = unit_clause; [INFO] [stderr] 251 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(unit_clause) = reason { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/checker.rs:337:5 [INFO] [stderr] | [INFO] [stderr] 337 | literals.iter().position(|&lit| needle == lit).is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `position(|&lit| needle == lit).is_some()` with `any(|&lit| needle == lit)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/checker.rs:376:11 [INFO] [stderr] | [INFO] [stderr] 376 | while stack.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/checker.rs:488:14 [INFO] [stderr] | [INFO] [stderr] 488 | for i in (0..conflict_at_step + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=conflict_at_step)` [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: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/memory/slice.rs:102:20 [INFO] [stderr] | [INFO] [stderr] 102 | self.slice.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the slice [INFO] [stderr] --> src/memory/slice.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | self.slice.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `memory::stack::Stack` [INFO] [stderr] --> src/memory/stack.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / pub fn new() -> Stack { [INFO] [stderr] 11 | | Stack { vec: Vec::new() } [INFO] [stderr] 12 | | } [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] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/memory.rs:42:22 [INFO] [stderr] | [INFO] [stderr] 42 | fn index_vec(vec: &Vec, index: impl Offset) -> &T { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:67:20 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn parse_files<'a>(formula_file: &str, proof_file: &str) -> Parser { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/parser.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | parse_formula(&mut parser, &read_or_die(formula_file)) [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 70 | || .map(|err| die!("error parsing formula at line {} col {}", err.line, err.col)); [INFO] [stderr] | ||______________________________________________________________________________________^- help: try this: `if let Some(err) = parse_formula(&mut parser, &read_or_die(formula_file)) { ... }` [INFO] [stderr] | |_______________________________________________________________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/parser.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | parse_proof(&mut parser, &read_or_die(proof_file)) [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 72 | || .map(|err| die!("error parsing proof at line {} col {}", err.line, err.col)); [INFO] [stderr] | ||____________________________________________________________________________________^- help: try this: `if let Some(err) = parse_proof(&mut parser, &read_or_die(proof_file)) { ... }` [INFO] [stderr] | |_____________________________________________________________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/parser.rs:132:1 [INFO] [stderr] | [INFO] [stderr] 132 | / fn add_literal<'a, 'r>(parser: &'r mut Parser, literal: Literal) { [INFO] [stderr] 133 | | if literal.is_zero() { [INFO] [stderr] 134 | | let begin = *parser.clause_offset.last().unwrap_or(&0); [INFO] [stderr] 135 | | let mut end = parser.db.len(); [INFO] [stderr] ... | [INFO] [stderr] 147 | | } [INFO] [stderr] 148 | | } [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: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | fn add_literal<'a, 'r>(parser: &'r mut Parser, literal: Literal) { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:150:22 [INFO] [stderr] | [INFO] [stderr] 150 | fn add_literal_ascii<'a, 'r>(parser: &'r mut Parser, input: &[u8]) -> Literal { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:182:16 [INFO] [stderr] | [INFO] [stderr] 182 | fn find_clause<'a>(needle: &[Literal], parser: &Parser) -> Option { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/parser.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | / clauses [INFO] [stderr] 186 | | .iter() [INFO] [stderr] 187 | | .map(|c| *c) [INFO] [stderr] | |________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 185 | clauses [INFO] [stderr] 186 | .iter().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:243:5 [INFO] [stderr] | [INFO] [stderr] 243 | / match state { [INFO] [stderr] 244 | | ClauseState::InLiteral => { [INFO] [stderr] 245 | | add_literal_ascii(parser, &input[start..]); [INFO] [stderr] 246 | | } [INFO] [stderr] 247 | | _ => (), [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 243 | if let ClauseState::InLiteral = state { [INFO] [stderr] 244 | add_literal_ascii(parser, &input[start..]); [INFO] [stderr] 245 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:253:13 [INFO] [stderr] | [INFO] [stderr] 253 | ensure!(input.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!input.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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/parser.rs:262:19 [INFO] [stderr] | [INFO] [stderr] 262 | result |= ((value & 0x7f) as u32) << (7 * i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(value & 0x7f)` [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: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:277:23 [INFO] [stderr] | [INFO] [stderr] 277 | fn parse_proof_binary<'a, 'r>(mut parser: &'r mut Parser, mut input: &[u8]) { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:280:11 [INFO] [stderr] | [INFO] [stderr] 280 | while input.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!input.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: the loop variable `i` is only used to index `input`. [INFO] [stderr] --> src/parser.rs:331:14 [INFO] [stderr] | [INFO] [stderr] 331 | for i in 0..cmp::min(10, input.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 331 | for in input.iter().take(cmp::min(10, input.len())) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:349:21 [INFO] [stderr] | [INFO] [stderr] 349 | fn parse_proof_text<'a, 'r>(parser: &'r mut Parser, input: &[u8]) -> Option { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/parser.rs:478:13 [INFO] [stderr] | [INFO] [stderr] 478 | / r#"c comment [INFO] [stderr] 479 | | p cnf 2 2 [INFO] [stderr] 480 | | 1 2 0 [INFO] [stderr] 481 | | -1 -2 0"# [INFO] [stderr] 482 | | .as_bytes(), [INFO] [stderr] | |___________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] help: consider using a byte string literal instead [INFO] [stderr] | [INFO] [stderr] 478 | br#"c comment [INFO] [stderr] 479 | p cnf 2 2 [INFO] [stderr] 480 | 1 2 0 [INFO] [stderr] 481 | -1 -2 0"#, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:501:37 [INFO] [stderr] | [INFO] [stderr] 501 | HashableClause::new(&vec_of_literals!(1, 2)) => Clause(0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Literal::new($x)]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:502:37 [INFO] [stderr] | [INFO] [stderr] 502 | HashableClause::new(&vec_of_literals!(-1, -2)) => Clause(1), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Literal::new($x)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:503:37 [INFO] [stderr] | [INFO] [stderr] 503 | HashableClause::new(&vec_of_literals!(1, 2, 3)) => Clause(2) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Literal::new($x)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:516:41 [INFO] [stderr] | [INFO] [stderr] 516 | HashableClause::new(&vec_of_literals!(1, 2)) => Clause(0), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Literal::new($x)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:517:41 [INFO] [stderr] | [INFO] [stderr] 517 | HashableClause::new(&vec_of_literals!(-1, -2)) => Clause(1), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Literal::new($x)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/parser.rs:518:41 [INFO] [stderr] | [INFO] [stderr] 518 | HashableClause::new(&vec_of_literals!(1, 2, 3)) => Clause(2) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Literal::new($x)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/checker.rs:255:12 [INFO] [stderr] | [INFO] [stderr] 255 | if !checker.watchlist[-l][i].is_some() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `checker.watchlist[-l][i].is_none()` [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/checker.rs:247:5 [INFO] [stderr] | [INFO] [stderr] 247 | reason.map(|unit_clause| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 248 | || ensure!(checker.clause_active[unit_clause]); [INFO] [stderr] 249 | || checker.clause_unit[unit_clause] = l; [INFO] [stderr] 250 | || checker.literal_reason[l] = unit_clause; [INFO] [stderr] 251 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(unit_clause) = reason { ... }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `is_some()` after searching an `Iterator` with position. This is more succinctly expressed by calling `any()`. [INFO] [stderr] --> src/checker.rs:337:5 [INFO] [stderr] | [INFO] [stderr] 337 | literals.iter().position(|&lit| needle == lit).is_some() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::search_is_some)] on by default [INFO] [stderr] = note: replace `position(|&lit| needle == lit).is_some()` with `any(|&lit| needle == lit)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#search_is_some [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/checker.rs:376:11 [INFO] [stderr] | [INFO] [stderr] 376 | while stack.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!stack.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/checker.rs:488:14 [INFO] [stderr] | [INFO] [stderr] 488 | for i in (0..conflict_at_step + 1).rev() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `(0..=conflict_at_step)` [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: this .into_iter() call is equivalent to .iter() and will not move the slice [INFO] [stderr] --> src/memory/slice.rs:102:20 [INFO] [stderr] | [INFO] [stderr] 102 | self.slice.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter_mut() and will not move the slice [INFO] [stderr] --> src/memory/slice.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | self.slice.into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter_mut` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `memory::stack::Stack` [INFO] [stderr] --> src/memory/stack.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | / pub fn new() -> Stack { [INFO] [stderr] 11 | | Stack { vec: Vec::new() } [INFO] [stderr] 12 | | } [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] 5 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/memory.rs:42:22 [INFO] [stderr] | [INFO] [stderr] 42 | fn index_vec(vec: &Vec, index: impl Offset) -> &T { [INFO] [stderr] | ^^^^^^^ help: change this to: `&[T]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:67:20 [INFO] [stderr] | [INFO] [stderr] 67 | pub fn parse_files<'a>(formula_file: &str, proof_file: &str) -> Parser { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/parser.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | parse_formula(&mut parser, &read_or_die(formula_file)) [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 70 | || .map(|err| die!("error parsing formula at line {} col {}", err.line, err.col)); [INFO] [stderr] | ||______________________________________________________________________________________^- help: try this: `if let Some(err) = parse_formula(&mut parser, &read_or_die(formula_file)) { ... }` [INFO] [stderr] | |_______________________________________________________________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/parser.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | parse_proof(&mut parser, &read_or_die(proof_file)) [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 72 | || .map(|err| die!("error parsing proof at line {} col {}", err.line, err.col)); [INFO] [stderr] | ||____________________________________________________________________________________^- help: try this: `if let Some(err) = parse_proof(&mut parser, &read_or_die(proof_file)) { ... }` [INFO] [stderr] | |_____________________________________________________________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/parser.rs:132:1 [INFO] [stderr] | [INFO] [stderr] 132 | / fn add_literal<'a, 'r>(parser: &'r mut Parser, literal: Literal) { [INFO] [stderr] 133 | | if literal.is_zero() { [INFO] [stderr] 134 | | let begin = *parser.clause_offset.last().unwrap_or(&0); [INFO] [stderr] 135 | | let mut end = parser.db.len(); [INFO] [stderr] ... | [INFO] [stderr] 147 | | } [INFO] [stderr] 148 | | } [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: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:132:16 [INFO] [stderr] | [INFO] [stderr] 132 | fn add_literal<'a, 'r>(parser: &'r mut Parser, literal: Literal) { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:150:22 [INFO] [stderr] | [INFO] [stderr] 150 | fn add_literal_ascii<'a, 'r>(parser: &'r mut Parser, input: &[u8]) -> Literal { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:182:16 [INFO] [stderr] | [INFO] [stderr] 182 | fn find_clause<'a>(needle: &[Literal], parser: &Parser) -> Option { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/parser.rs:185:9 [INFO] [stderr] | [INFO] [stderr] 185 | / clauses [INFO] [stderr] 186 | | .iter() [INFO] [stderr] 187 | | .map(|c| *c) [INFO] [stderr] | |________________________^ [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] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 185 | clauses [INFO] [stderr] 186 | .iter().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/parser.rs:243:5 [INFO] [stderr] | [INFO] [stderr] 243 | / match state { [INFO] [stderr] 244 | | ClauseState::InLiteral => { [INFO] [stderr] 245 | | add_literal_ascii(parser, &input[start..]); [INFO] [stderr] 246 | | } [INFO] [stderr] 247 | | _ => (), [INFO] [stderr] 248 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 243 | if let ClauseState::InLiteral = state { [INFO] [stderr] 244 | add_literal_ascii(parser, &input[start..]); [INFO] [stderr] 245 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:253:13 [INFO] [stderr] | [INFO] [stderr] 253 | ensure!(input.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!input.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 u8 to u32 may become silently lossy if types change [INFO] [stderr] --> src/parser.rs:262:19 [INFO] [stderr] | [INFO] [stderr] 262 | result |= ((value & 0x7f) as u32) << (7 * i); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(value & 0x7f)` [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: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:277:23 [INFO] [stderr] | [INFO] [stderr] 277 | fn parse_proof_binary<'a, 'r>(mut parser: &'r mut Parser, mut input: &[u8]) { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/parser.rs:280:11 [INFO] [stderr] | [INFO] [stderr] 280 | while input.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!input.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: the loop variable `i` is only used to index `input`. [INFO] [stderr] --> src/parser.rs:331:14 [INFO] [stderr] | [INFO] [stderr] 331 | for i in 0..cmp::min(10, input.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 331 | for in input.iter().take(cmp::min(10, input.len())) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/parser.rs:349:21 [INFO] [stderr] | [INFO] [stderr] 349 | fn parse_proof_text<'a, 'r>(parser: &'r mut Parser, input: &[u8]) -> Option { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 15.34s [INFO] running `"docker" "inspect" "25138d308af0de45c4eb5e47369f21903fdc7c279fbb5600a8c314f4f5de6f70"` [INFO] running `"docker" "rm" "-f" "25138d308af0de45c4eb5e47369f21903fdc7c279fbb5600a8c314f4f5de6f70"` [INFO] [stdout] 25138d308af0de45c4eb5e47369f21903fdc7c279fbb5600a8c314f4f5de6f70