[INFO] updating cached repository cactorium/msp430-musical-quine [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/cactorium/msp430-musical-quine [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/cactorium/msp430-musical-quine" "work/ex/clippy-test-run/sources/stable/gh/cactorium/msp430-musical-quine"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/cactorium/msp430-musical-quine'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/cactorium/msp430-musical-quine" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cactorium/msp430-musical-quine"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cactorium/msp430-musical-quine'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] e564b8921da2cc43f50e674d63c729750ea0646c [INFO] sha for GitHub repo cactorium/msp430-musical-quine: e564b8921da2cc43f50e674d63c729750ea0646c [INFO] validating manifest of cactorium/msp430-musical-quine 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 cactorium/msp430-musical-quine 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 cactorium/msp430-musical-quine [INFO] finished frobbing cactorium/msp430-musical-quine [INFO] frobbed toml for cactorium/msp430-musical-quine written to work/ex/clippy-test-run/sources/stable/gh/cactorium/msp430-musical-quine/Cargo.toml [INFO] started frobbing cactorium/msp430-musical-quine [INFO] finished frobbing cactorium/msp430-musical-quine [INFO] frobbed toml for cactorium/msp430-musical-quine written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cactorium/msp430-musical-quine/Cargo.toml [INFO] crate cactorium/msp430-musical-quine 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 cactorium/msp430-musical-quine against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cactorium/msp430-musical-quine:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dclippy::into_iter_on_array" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 08e9e8336709f1a918dcdf693d020e3d04cab4ed555cb3a772719175bc7af641 [INFO] running `"docker" "start" "-a" "08e9e8336709f1a918dcdf693d020e3d04cab4ed555cb3a772719175bc7af641"` [INFO] [stderr] Checking quine v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | root: root [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `root` [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: using `println!("")` [INFO] [stderr] --> src/main.rs:504:5 [INFO] [stderr] | [INFO] [stderr] 504 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | root: root [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `root` [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: using `println!("")` [INFO] [stderr] --> src/main.rs:504:5 [INFO] [stderr] | [INFO] [stderr] 504 | println!(""); [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `println!()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::println_empty_string)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [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/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / fn offset<'a>(&'a self, off: usize) -> Option> { [INFO] [stderr] 42 | | if off <= self.len { [INFO] [stderr] 43 | | Some(RingBufferIter { [INFO] [stderr] 44 | | me: self, [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | self.len = self.len + s.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.len += s.len()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | self.len = self.len + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.len += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/main.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | if !iter.peek().is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `iter.peek().is_some()` [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: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:117:40 [INFO] [stderr] | [INFO] [stderr] 117 | window.push(&input[i..i+1]); [INFO] [stderr] | ^^^^^^ help: use: `i..=i` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:128:36 [INFO] [stderr] | [INFO] [stderr] 128 | window.push(&input[i..i+1]); [INFO] [stderr] | ^^^^^^ help: use: `i..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:152:17 [INFO] [stderr] | [INFO] [stderr] 152 | / match input { [INFO] [stderr] 153 | | &Symbol::Literal(c) => { [INFO] [stderr] 154 | | Some(Some(StreamToken::Literal(c as u8))) [INFO] [stderr] 155 | | }, [INFO] [stderr] ... | [INFO] [stderr] 167 | | }, [INFO] [stderr] 168 | | } [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] 152 | match *input { [INFO] [stderr] 153 | Symbol::Literal(c) => { [INFO] [stderr] 154 | Some(Some(StreamToken::Literal(c as u8))) [INFO] [stderr] 155 | }, [INFO] [stderr] 156 | Symbol::Offset(o) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:157:25 [INFO] [stderr] | [INFO] [stderr] 157 | / match next_input { [INFO] [stderr] 158 | | &Symbol::Literal(l) => { [INFO] [stderr] 159 | | *skip_input = true; [INFO] [stderr] 160 | | Some(Some(StreamToken::OffsetLen(o as usize, l as usize))) [INFO] [stderr] ... | [INFO] [stderr] 165 | | }, [INFO] [stderr] 166 | | } [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] 157 | match *next_input { [INFO] [stderr] 158 | Symbol::Literal(l) => { [INFO] [stderr] 159 | *skip_input = true; [INFO] [stderr] 160 | Some(Some(StreamToken::OffsetLen(o as usize, l as usize))) [INFO] [stderr] 161 | } [INFO] [stderr] 162 | Symbol::Offset(_) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:254:13 [INFO] [stderr] | [INFO] [stderr] 254 | / match node { [INFO] [stderr] 255 | | &Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 256 | | let mut prefixa = prefix.clone(); [INFO] [stderr] 257 | | let mut prefixb = prefix; [INFO] [stderr] ... | [INFO] [stderr] 265 | | }, [INFO] [stderr] 266 | | } [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] 254 | match *node { [INFO] [stderr] 255 | Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 256 | let mut prefixa = prefix.clone(); [INFO] [stderr] 257 | let mut prefixb = prefix; [INFO] [stderr] 258 | prefixa.push(false); [INFO] [stderr] 259 | prefixb.push(true); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:295:9 [INFO] [stderr] | [INFO] [stderr] 295 | / match dict_pos { [INFO] [stderr] 296 | | &Huffman::Leaf(sym) => { [INFO] [stderr] 297 | | ret.push(sym); [INFO] [stderr] 298 | | dict_pos = &*dict.root; [INFO] [stderr] ... | [INFO] [stderr] 309 | | }, [INFO] [stderr] 310 | | } [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] 295 | match *dict_pos { [INFO] [stderr] 296 | Huffman::Leaf(sym) => { [INFO] [stderr] 297 | ret.push(sym); [INFO] [stderr] 298 | dict_pos = &*dict.root; [INFO] [stderr] 299 | }, [INFO] [stderr] 300 | Huffman::Branch(ref a, ref b) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:313:5 [INFO] [stderr] | [INFO] [stderr] 313 | / match dict_pos { [INFO] [stderr] 314 | | &Huffman::Leaf(sym) => { [INFO] [stderr] 315 | | ret.push(sym); [INFO] [stderr] 316 | | }, [INFO] [stderr] 317 | | _ => unreachable!("decoder reached EOS in wrong state"), [INFO] [stderr] 318 | | } [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] 313 | match *dict_pos { [INFO] [stderr] 314 | Huffman::Leaf(sym) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:391:9 [INFO] [stderr] | [INFO] [stderr] 391 | / match node { [INFO] [stderr] 392 | | &Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 393 | | // push some temporary values to rewrite later [INFO] [stderr] 394 | | buf.push(0); [INFO] [stderr] ... | [INFO] [stderr] 410 | | } [INFO] [stderr] 411 | | } [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] 391 | match *node { [INFO] [stderr] 392 | Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 393 | // push some temporary values to rewrite later [INFO] [stderr] 394 | buf.push(0); [INFO] [stderr] 395 | buf.push(0); [INFO] [stderr] 396 | let aidx = recursively_traverse(buf, &*a); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/main.rs:41:5 [INFO] [stderr] | [INFO] [stderr] 41 | / fn offset<'a>(&'a self, off: usize) -> Option> { [INFO] [stderr] 42 | | if off <= self.len { [INFO] [stderr] 43 | | Some(RingBufferIter { [INFO] [stderr] 44 | | me: self, [INFO] [stderr] ... | [INFO] [stderr] 49 | | } [INFO] [stderr] 50 | | } [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: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:56:9 [INFO] [stderr] | [INFO] [stderr] 56 | self.len = self.len + s.len(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.len += s.len()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:65:9 [INFO] [stderr] | [INFO] [stderr] 65 | self.len = self.len + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.len += 1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/main.rs:91:20 [INFO] [stderr] | [INFO] [stderr] 91 | if !iter.peek().is_none() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `iter.peek().is_some()` [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: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:117:40 [INFO] [stderr] | [INFO] [stderr] 117 | window.push(&input[i..i+1]); [INFO] [stderr] | ^^^^^^ help: use: `i..=i` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:128:36 [INFO] [stderr] | [INFO] [stderr] 128 | window.push(&input[i..i+1]); [INFO] [stderr] | ^^^^^^ help: use: `i..=i` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:152:17 [INFO] [stderr] | [INFO] [stderr] 152 | / match input { [INFO] [stderr] 153 | | &Symbol::Literal(c) => { [INFO] [stderr] 154 | | Some(Some(StreamToken::Literal(c as u8))) [INFO] [stderr] 155 | | }, [INFO] [stderr] ... | [INFO] [stderr] 167 | | }, [INFO] [stderr] 168 | | } [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] 152 | match *input { [INFO] [stderr] 153 | Symbol::Literal(c) => { [INFO] [stderr] 154 | Some(Some(StreamToken::Literal(c as u8))) [INFO] [stderr] 155 | }, [INFO] [stderr] 156 | Symbol::Offset(o) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:157:25 [INFO] [stderr] | [INFO] [stderr] 157 | / match next_input { [INFO] [stderr] 158 | | &Symbol::Literal(l) => { [INFO] [stderr] 159 | | *skip_input = true; [INFO] [stderr] 160 | | Some(Some(StreamToken::OffsetLen(o as usize, l as usize))) [INFO] [stderr] ... | [INFO] [stderr] 165 | | }, [INFO] [stderr] 166 | | } [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] 157 | match *next_input { [INFO] [stderr] 158 | Symbol::Literal(l) => { [INFO] [stderr] 159 | *skip_input = true; [INFO] [stderr] 160 | Some(Some(StreamToken::OffsetLen(o as usize, l as usize))) [INFO] [stderr] 161 | } [INFO] [stderr] 162 | Symbol::Offset(_) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:254:13 [INFO] [stderr] | [INFO] [stderr] 254 | / match node { [INFO] [stderr] 255 | | &Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 256 | | let mut prefixa = prefix.clone(); [INFO] [stderr] 257 | | let mut prefixb = prefix; [INFO] [stderr] ... | [INFO] [stderr] 265 | | }, [INFO] [stderr] 266 | | } [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] 254 | match *node { [INFO] [stderr] 255 | Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 256 | let mut prefixa = prefix.clone(); [INFO] [stderr] 257 | let mut prefixb = prefix; [INFO] [stderr] 258 | prefixa.push(false); [INFO] [stderr] 259 | prefixb.push(true); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:295:9 [INFO] [stderr] | [INFO] [stderr] 295 | / match dict_pos { [INFO] [stderr] 296 | | &Huffman::Leaf(sym) => { [INFO] [stderr] 297 | | ret.push(sym); [INFO] [stderr] 298 | | dict_pos = &*dict.root; [INFO] [stderr] ... | [INFO] [stderr] 309 | | }, [INFO] [stderr] 310 | | } [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] 295 | match *dict_pos { [INFO] [stderr] 296 | Huffman::Leaf(sym) => { [INFO] [stderr] 297 | ret.push(sym); [INFO] [stderr] 298 | dict_pos = &*dict.root; [INFO] [stderr] 299 | }, [INFO] [stderr] 300 | Huffman::Branch(ref a, ref b) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:313:5 [INFO] [stderr] | [INFO] [stderr] 313 | / match dict_pos { [INFO] [stderr] 314 | | &Huffman::Leaf(sym) => { [INFO] [stderr] 315 | | ret.push(sym); [INFO] [stderr] 316 | | }, [INFO] [stderr] 317 | | _ => unreachable!("decoder reached EOS in wrong state"), [INFO] [stderr] 318 | | } [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] 313 | match *dict_pos { [INFO] [stderr] 314 | Huffman::Leaf(sym) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:391:9 [INFO] [stderr] | [INFO] [stderr] 391 | / match node { [INFO] [stderr] 392 | | &Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 393 | | // push some temporary values to rewrite later [INFO] [stderr] 394 | | buf.push(0); [INFO] [stderr] ... | [INFO] [stderr] 410 | | } [INFO] [stderr] 411 | | } [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] 391 | match *node { [INFO] [stderr] 392 | Huffman::Branch(ref a, ref b) => { [INFO] [stderr] 393 | // push some temporary values to rewrite later [INFO] [stderr] 394 | buf.push(0); [INFO] [stderr] 395 | buf.push(0); [INFO] [stderr] 396 | let aidx = recursively_traverse(buf, &*a); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.02s [INFO] running `"docker" "inspect" "08e9e8336709f1a918dcdf693d020e3d04cab4ed555cb3a772719175bc7af641"` [INFO] running `"docker" "rm" "-f" "08e9e8336709f1a918dcdf693d020e3d04cab4ed555cb3a772719175bc7af641"` [INFO] [stdout] 08e9e8336709f1a918dcdf693d020e3d04cab4ed555cb3a772719175bc7af641