[INFO] updating cached repository Dacit/sequent_prover [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Dacit/sequent_prover [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Dacit/sequent_prover" "work/ex/clippy-test-run/sources/stable/gh/Dacit/sequent_prover"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Dacit/sequent_prover'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Dacit/sequent_prover" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Dacit/sequent_prover"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Dacit/sequent_prover'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1425db8fd1cc9ca24b0dbbdfb6e32609c6a96226 [INFO] sha for GitHub repo Dacit/sequent_prover: 1425db8fd1cc9ca24b0dbbdfb6e32609c6a96226 [INFO] validating manifest of Dacit/sequent_prover 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 Dacit/sequent_prover 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 Dacit/sequent_prover [INFO] finished frobbing Dacit/sequent_prover [INFO] frobbed toml for Dacit/sequent_prover written to work/ex/clippy-test-run/sources/stable/gh/Dacit/sequent_prover/Cargo.toml [INFO] started frobbing Dacit/sequent_prover [INFO] finished frobbing Dacit/sequent_prover [INFO] frobbed toml for Dacit/sequent_prover written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Dacit/sequent_prover/Cargo.toml [INFO] crate Dacit/sequent_prover 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 Dacit/sequent_prover against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Dacit/sequent_prover:/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] 10e3df72de2a53dff8ebcab2fc9a5cf42301cd233490a70fc7b346d5bccbe68e [INFO] running `"docker" "start" "-a" "10e3df72de2a53dff8ebcab2fc9a5cf42301cd233490a70fc7b346d5bccbe68e"` [INFO] [stderr] Checking terminal_size v0.1.7 [INFO] [stderr] Checking sequent_prover v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | / match self { [INFO] [stderr] 19 | | &Formula::True => String::from("1"), [INFO] [stderr] 20 | | &Formula::False => String::from("0"), [INFO] [stderr] 21 | | &Formula::Atom(ref s) => s.clone(), [INFO] [stderr] ... | [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 18 | match *self { [INFO] [stderr] 19 | Formula::True => String::from("1"), [INFO] [stderr] 20 | Formula::False => String::from("0"), [INFO] [stderr] 21 | Formula::Atom(ref s) => s.clone(), [INFO] [stderr] 22 | Formula::Not(ref f) => "-".to_string() + &f.as_ref().to_string(), [INFO] [stderr] 23 | Formula::And(ref f1, ref f2) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parser.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / self.l [INFO] [stderr] 45 | | .iter() [INFO] [stderr] 46 | | .map(Formula::to_string) [INFO] [stderr] 47 | | .fold1(|f, g| f + &", " + &g) [INFO] [stderr] 48 | | .unwrap_or("".to_string()) + &" => " [INFO] [stderr] | |__________________________________________------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" => "` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:48:14 [INFO] [stderr] | [INFO] [stderr] 48 | .unwrap_or("".to_string()) + &" => " [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parser.rs:47:27 [INFO] [stderr] | [INFO] [stderr] 47 | .fold1(|f, g| f + &", " + &g) [INFO] [stderr] | ^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:53:18 [INFO] [stderr] | [INFO] [stderr] 53 | .unwrap_or("".to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parser.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | .fold1(|f, g| f + &", " + &g) [INFO] [stderr] | ^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | input.split(",").map(parse_formula).collect() [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/prover.rs:21:22 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn to_string(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | String::from(match self { [INFO] [stderr] | ______________________^ [INFO] [stderr] 23 | | &Rule::Ax => "Ax", [INFO] [stderr] 24 | | &Rule::LFalse => "0L", [INFO] [stderr] 25 | | &Rule::LNot => "-L", [INFO] [stderr] ... | [INFO] [stderr] 32 | | &Rule::RImpl => ">R", [INFO] [stderr] 33 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 22 | String::from(match *self { [INFO] [stderr] 23 | Rule::Ax => "Ax", [INFO] [stderr] 24 | Rule::LFalse => "0L", [INFO] [stderr] 25 | Rule::LNot => "-L", [INFO] [stderr] 26 | Rule::LAnd => "&L", [INFO] [stderr] 27 | Rule::LOr => "|L", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/prover.rs:109:27 [INFO] [stderr] | [INFO] [stderr] 109 | let mid = " ".repeat((&rule).to_string().len()).to_string() + &" " [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/prover.rs:111:25 [INFO] [stderr] | [INFO] [stderr] 111 | "-".repeat(lower.len()) + &" " + &rule.to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/prover.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | / " ".repeat(skip_before_len).to_string() [INFO] [stderr] 114 | | + &"-".repeat(upper_len - (skip_before_len + skip_after_len)) [INFO] [stderr] 115 | | + &" " + &rule.to_string() [INFO] [stderr] | |_______________________________---^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/prover.rs:139:26 [INFO] [stderr] | [INFO] [stderr] 139 | .unwrap_or("".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/prover.rs:136:39 [INFO] [stderr] | [INFO] [stderr] 136 | vec.pop().unwrap_or(" ".repeat(len + 6).to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| " ".repeat(len + 6).to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/prover.rs:164:47 [INFO] [stderr] | [INFO] [stderr] 164 | .map(ProofNode::prove) [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 165 | | // Do NOT use .all() since that does not evaluate all expressions [INFO] [stderr] 166 | | .fold(true, |f, g| f && g), [INFO] [stderr] | |__________________________________________________^ help: try: `.all(|g| g)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:186:29 [INFO] [stderr] | [INFO] [stderr] 186 | .filter_map(|f| match f { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 187 | | &Formula::Atom(ref a) => Some(a.clone()), [INFO] [stderr] 188 | | _ => None, [INFO] [stderr] 189 | | }) [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 186 | .filter_map(|f| match *f { [INFO] [stderr] 187 | Formula::Atom(ref a) => Some(a.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:192:58 [INFO] [stderr] | [INFO] [stderr] 192 | ProofNode::destruct_formula(&self.expr.r, |_, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 193 | | &Formula::Atom(ref a) if left_atoms.contains(a) => Some(Proof::new(Rule::Ax, vec![])), [INFO] [stderr] 194 | | _ => None, [INFO] [stderr] 195 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 192 | ProofNode::destruct_formula(&self.expr.r, |_, f| match *f { [INFO] [stderr] 193 | Formula::Atom(ref a) if left_atoms.contains(a) => Some(Proof::new(Rule::Ax, vec![])), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:199:58 [INFO] [stderr] | [INFO] [stderr] 199 | ProofNode::destruct_formula(&self.expr.l, |_, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 200 | | &Formula::False => Some(Proof::new(Rule::LFalse, vec![])), [INFO] [stderr] 201 | | _ => None, [INFO] [stderr] 202 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 199 | ProofNode::destruct_formula(&self.expr.l, |_, f| match *f { [INFO] [stderr] 200 | Formula::False => Some(Proof::new(Rule::LFalse, vec![])), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:206:58 [INFO] [stderr] | [INFO] [stderr] 206 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 207 | | &Formula::Not(_) | &Formula::True => { [INFO] [stderr] 208 | | let mut expr = self.expr.clone(); [INFO] [stderr] 209 | | expr.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 217 | | _ => None, [INFO] [stderr] 218 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 206 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 207 | Formula::Not(_) | Formula::True => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:210:34 [INFO] [stderr] | [INFO] [stderr] 210 | expr.r.insert(0, match f { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 211 | | &Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] 212 | | _ => Formula::False, [INFO] [stderr] 213 | | }); [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 210 | expr.r.insert(0, match *f { [INFO] [stderr] 211 | Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:222:58 [INFO] [stderr] | [INFO] [stderr] 222 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 223 | | &Formula::And(ref f, ref g) => { [INFO] [stderr] 224 | | let mut expr = self.expr.clone(); [INFO] [stderr] 225 | | expr.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => None, [INFO] [stderr] 232 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 222 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 223 | Formula::And(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:236:58 [INFO] [stderr] | [INFO] [stderr] 236 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 237 | | &Formula::Or(ref f, ref g) => { [INFO] [stderr] 238 | | let mut expr0 = self.expr.clone(); [INFO] [stderr] 239 | | expr0.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 250 | | _ => None, [INFO] [stderr] 251 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 236 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 237 | Formula::Or(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:255:58 [INFO] [stderr] | [INFO] [stderr] 255 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 256 | | &Formula::Implication(ref f, ref g) => { [INFO] [stderr] 257 | | let mut expr1 = self.expr.clone(); [INFO] [stderr] 258 | | expr1.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 269 | | _ => None, [INFO] [stderr] 270 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 255 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 256 | Formula::Implication(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:274:58 [INFO] [stderr] | [INFO] [stderr] 274 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 275 | | &Formula::Not(_) | &Formula::True => { [INFO] [stderr] 276 | | let mut expr = self.expr.clone(); [INFO] [stderr] 277 | | expr.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 285 | | _ => None, [INFO] [stderr] 286 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 274 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 275 | Formula::Not(_) | Formula::True => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:278:34 [INFO] [stderr] | [INFO] [stderr] 278 | expr.l.insert(0, match f { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 279 | | &Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] 280 | | _ => Formula::False [INFO] [stderr] 281 | | }); [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 278 | expr.l.insert(0, match *f { [INFO] [stderr] 279 | Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:290:58 [INFO] [stderr] | [INFO] [stderr] 290 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 291 | | &Formula::And(ref f, ref g) => { [INFO] [stderr] 292 | | let mut expr1 = self.expr.clone(); [INFO] [stderr] 293 | | expr1.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 304 | | _ => None, [INFO] [stderr] 305 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 290 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 291 | Formula::And(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:309:58 [INFO] [stderr] | [INFO] [stderr] 309 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 310 | | &Formula::Or(ref f, ref g) => { [INFO] [stderr] 311 | | let mut expr = self.expr.clone(); [INFO] [stderr] 312 | | expr.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 318 | | _ => None, [INFO] [stderr] 319 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 309 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 310 | Formula::Or(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:323:58 [INFO] [stderr] | [INFO] [stderr] 323 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 324 | | &Formula::Implication(ref f, ref g) => { [INFO] [stderr] 325 | | let mut expr = self.expr.clone(); [INFO] [stderr] 326 | | expr.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 332 | | _ => None, [INFO] [stderr] 333 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 323 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 324 | Formula::Implication(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/parser.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | / match self { [INFO] [stderr] 19 | | &Formula::True => String::from("1"), [INFO] [stderr] 20 | | &Formula::False => String::from("0"), [INFO] [stderr] 21 | | &Formula::Atom(ref s) => s.clone(), [INFO] [stderr] ... | [INFO] [stderr] 31 | | } [INFO] [stderr] 32 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 18 | match *self { [INFO] [stderr] 19 | Formula::True => String::from("1"), [INFO] [stderr] 20 | Formula::False => String::from("0"), [INFO] [stderr] 21 | Formula::Atom(ref s) => s.clone(), [INFO] [stderr] 22 | Formula::Not(ref f) => "-".to_string() + &f.as_ref().to_string(), [INFO] [stderr] 23 | Formula::And(ref f1, ref f2) => { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parser.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | / self.l [INFO] [stderr] 45 | | .iter() [INFO] [stderr] 46 | | .map(Formula::to_string) [INFO] [stderr] 47 | | .fold1(|f, g| f + &", " + &g) [INFO] [stderr] 48 | | .unwrap_or("".to_string()) + &" => " [INFO] [stderr] | |__________________________________________------^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" => "` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:48:14 [INFO] [stderr] | [INFO] [stderr] 48 | .unwrap_or("".to_string()) + &" => " [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parser.rs:47:27 [INFO] [stderr] | [INFO] [stderr] 47 | .fold1(|f, g| f + &", " + &g) [INFO] [stderr] | ^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/parser.rs:53:18 [INFO] [stderr] | [INFO] [stderr] 53 | .unwrap_or("".to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/parser.rs:52:31 [INFO] [stderr] | [INFO] [stderr] 52 | .fold1(|f, g| f + &", " + &g) [INFO] [stderr] | ^^^^----- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/parser.rs:80:21 [INFO] [stderr] | [INFO] [stderr] 80 | input.split(",").map(parse_formula).collect() [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/prover.rs:21:22 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn to_string(&self) -> String { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:22:22 [INFO] [stderr] | [INFO] [stderr] 22 | String::from(match self { [INFO] [stderr] | ______________________^ [INFO] [stderr] 23 | | &Rule::Ax => "Ax", [INFO] [stderr] 24 | | &Rule::LFalse => "0L", [INFO] [stderr] 25 | | &Rule::LNot => "-L", [INFO] [stderr] ... | [INFO] [stderr] 32 | | &Rule::RImpl => ">R", [INFO] [stderr] 33 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 22 | String::from(match *self { [INFO] [stderr] 23 | Rule::Ax => "Ax", [INFO] [stderr] 24 | Rule::LFalse => "0L", [INFO] [stderr] 25 | Rule::LNot => "-L", [INFO] [stderr] 26 | Rule::LAnd => "&L", [INFO] [stderr] 27 | Rule::LOr => "|L", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/prover.rs:109:27 [INFO] [stderr] | [INFO] [stderr] 109 | let mid = " ".repeat((&rule).to_string().len()).to_string() + &" " [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/prover.rs:111:25 [INFO] [stderr] | [INFO] [stderr] 111 | "-".repeat(lower.len()) + &" " + &rule.to_string() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^---- [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: taken reference of right operand [INFO] [stderr] --> src/prover.rs:113:25 [INFO] [stderr] | [INFO] [stderr] 113 | / " ".repeat(skip_before_len).to_string() [INFO] [stderr] 114 | | + &"-".repeat(upper_len - (skip_before_len + skip_after_len)) [INFO] [stderr] 115 | | + &" " + &rule.to_string() [INFO] [stderr] | |_______________________________---^ [INFO] [stderr] | | [INFO] [stderr] | help: use the right value directly: `" "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/prover.rs:139:26 [INFO] [stderr] | [INFO] [stderr] 139 | .unwrap_or("".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/prover.rs:136:39 [INFO] [stderr] | [INFO] [stderr] 136 | vec.pop().unwrap_or(" ".repeat(len + 6).to_string()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| " ".repeat(len + 6).to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this `.fold` can be written more succinctly using another method [INFO] [stderr] --> src/prover.rs:164:47 [INFO] [stderr] | [INFO] [stderr] 164 | .map(ProofNode::prove) [INFO] [stderr] | _______________________________________________^ [INFO] [stderr] 165 | | // Do NOT use .all() since that does not evaluate all expressions [INFO] [stderr] 166 | | .fold(true, |f, g| f && g), [INFO] [stderr] | |__________________________________________________^ help: try: `.all(|g| g)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_fold)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_fold [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:186:29 [INFO] [stderr] | [INFO] [stderr] 186 | .filter_map(|f| match f { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 187 | | &Formula::Atom(ref a) => Some(a.clone()), [INFO] [stderr] 188 | | _ => None, [INFO] [stderr] 189 | | }) [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 186 | .filter_map(|f| match *f { [INFO] [stderr] 187 | Formula::Atom(ref a) => Some(a.clone()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:192:58 [INFO] [stderr] | [INFO] [stderr] 192 | ProofNode::destruct_formula(&self.expr.r, |_, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 193 | | &Formula::Atom(ref a) if left_atoms.contains(a) => Some(Proof::new(Rule::Ax, vec![])), [INFO] [stderr] 194 | | _ => None, [INFO] [stderr] 195 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 192 | ProofNode::destruct_formula(&self.expr.r, |_, f| match *f { [INFO] [stderr] 193 | Formula::Atom(ref a) if left_atoms.contains(a) => Some(Proof::new(Rule::Ax, vec![])), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:199:58 [INFO] [stderr] | [INFO] [stderr] 199 | ProofNode::destruct_formula(&self.expr.l, |_, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 200 | | &Formula::False => Some(Proof::new(Rule::LFalse, vec![])), [INFO] [stderr] 201 | | _ => None, [INFO] [stderr] 202 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 199 | ProofNode::destruct_formula(&self.expr.l, |_, f| match *f { [INFO] [stderr] 200 | Formula::False => Some(Proof::new(Rule::LFalse, vec![])), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:206:58 [INFO] [stderr] | [INFO] [stderr] 206 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 207 | | &Formula::Not(_) | &Formula::True => { [INFO] [stderr] 208 | | let mut expr = self.expr.clone(); [INFO] [stderr] 209 | | expr.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 217 | | _ => None, [INFO] [stderr] 218 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 206 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 207 | Formula::Not(_) | Formula::True => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:210:34 [INFO] [stderr] | [INFO] [stderr] 210 | expr.r.insert(0, match f { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 211 | | &Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] 212 | | _ => Formula::False, [INFO] [stderr] 213 | | }); [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 210 | expr.r.insert(0, match *f { [INFO] [stderr] 211 | Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:222:58 [INFO] [stderr] | [INFO] [stderr] 222 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 223 | | &Formula::And(ref f, ref g) => { [INFO] [stderr] 224 | | let mut expr = self.expr.clone(); [INFO] [stderr] 225 | | expr.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 231 | | _ => None, [INFO] [stderr] 232 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 222 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 223 | Formula::And(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:236:58 [INFO] [stderr] | [INFO] [stderr] 236 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 237 | | &Formula::Or(ref f, ref g) => { [INFO] [stderr] 238 | | let mut expr0 = self.expr.clone(); [INFO] [stderr] 239 | | expr0.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 250 | | _ => None, [INFO] [stderr] 251 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 236 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 237 | Formula::Or(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:255:58 [INFO] [stderr] | [INFO] [stderr] 255 | ProofNode::destruct_formula(&self.expr.l, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 256 | | &Formula::Implication(ref f, ref g) => { [INFO] [stderr] 257 | | let mut expr1 = self.expr.clone(); [INFO] [stderr] 258 | | expr1.l.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 269 | | _ => None, [INFO] [stderr] 270 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 255 | ProofNode::destruct_formula(&self.expr.l, |i, f| match *f { [INFO] [stderr] 256 | Formula::Implication(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:274:58 [INFO] [stderr] | [INFO] [stderr] 274 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 275 | | &Formula::Not(_) | &Formula::True => { [INFO] [stderr] 276 | | let mut expr = self.expr.clone(); [INFO] [stderr] 277 | | expr.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 285 | | _ => None, [INFO] [stderr] 286 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 274 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 275 | Formula::Not(_) | Formula::True => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:278:34 [INFO] [stderr] | [INFO] [stderr] 278 | expr.l.insert(0, match f { [INFO] [stderr] | __________________________________^ [INFO] [stderr] 279 | | &Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] 280 | | _ => Formula::False [INFO] [stderr] 281 | | }); [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 278 | expr.l.insert(0, match *f { [INFO] [stderr] 279 | Formula::Not(ref f) => f.as_ref().clone(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:290:58 [INFO] [stderr] | [INFO] [stderr] 290 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 291 | | &Formula::And(ref f, ref g) => { [INFO] [stderr] 292 | | let mut expr1 = self.expr.clone(); [INFO] [stderr] 293 | | expr1.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 304 | | _ => None, [INFO] [stderr] 305 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 290 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 291 | Formula::And(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:309:58 [INFO] [stderr] | [INFO] [stderr] 309 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 310 | | &Formula::Or(ref f, ref g) => { [INFO] [stderr] 311 | | let mut expr = self.expr.clone(); [INFO] [stderr] 312 | | expr.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 318 | | _ => None, [INFO] [stderr] 319 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 309 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 310 | Formula::Or(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/prover.rs:323:58 [INFO] [stderr] | [INFO] [stderr] 323 | ProofNode::destruct_formula(&self.expr.r, |i, f| match f { [INFO] [stderr] | __________________________________________________________^ [INFO] [stderr] 324 | | &Formula::Implication(ref f, ref g) => { [INFO] [stderr] 325 | | let mut expr = self.expr.clone(); [INFO] [stderr] 326 | | expr.r.remove(i); [INFO] [stderr] ... | [INFO] [stderr] 332 | | _ => None, [INFO] [stderr] 333 | | }) [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 323 | ProofNode::destruct_formula(&self.expr.r, |i, f| match *f { [INFO] [stderr] 324 | Formula::Implication(ref f, ref g) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.61s [INFO] running `"docker" "inspect" "10e3df72de2a53dff8ebcab2fc9a5cf42301cd233490a70fc7b346d5bccbe68e"` [INFO] running `"docker" "rm" "-f" "10e3df72de2a53dff8ebcab2fc9a5cf42301cd233490a70fc7b346d5bccbe68e"` [INFO] [stdout] 10e3df72de2a53dff8ebcab2fc9a5cf42301cd233490a70fc7b346d5bccbe68e