[INFO] crate java-properties 1.1.1 is already in cache [INFO] extracting crate java-properties 1.1.1 into work/ex/clippy-test-run/sources/stable/reg/java-properties/1.1.1 [INFO] extracting crate java-properties 1.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/java-properties/1.1.1 [INFO] validating manifest of java-properties-1.1.1 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 java-properties-1.1.1 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 java-properties-1.1.1 [INFO] finished frobbing java-properties-1.1.1 [INFO] frobbed toml for java-properties-1.1.1 written to work/ex/clippy-test-run/sources/stable/reg/java-properties/1.1.1/Cargo.toml [INFO] started frobbing java-properties-1.1.1 [INFO] finished frobbing java-properties-1.1.1 [INFO] frobbed toml for java-properties-1.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/java-properties/1.1.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting java-properties-1.1.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/java-properties/1.1.1:/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] a1e4de9cd9534726458a61a9240dc802bf4501d7ee8100abd0ca451cbb5de038 [INFO] running `"docker" "start" "-a" "a1e4de9cd9534726458a61a9240dc802bf4501d7ee8100abd0ca451cbb5de038"` [INFO] [stderr] Checking java-properties v1.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:97:7 [INFO] [stderr] | [INFO] [stderr] 97 | cause: cause, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cause` [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/lib.rs:98:7 [INFO] [stderr] | [INFO] [stderr] 98 | line_number: line_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `line_number` [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/lib.rs:156:7 [INFO] [stderr] | [INFO] [stderr] 156 | 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/lib.rs:225:7 [INFO] [stderr] | [INFO] [stderr] 225 | physical_lines: physical_lines, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `physical_lines` [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/lib.rs:611:7 [INFO] [stderr] | [INFO] [stderr] 611 | writer: writer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `writer` [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/lib.rs:97:7 [INFO] [stderr] | [INFO] [stderr] 97 | cause: cause, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `cause` [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/lib.rs:98:7 [INFO] [stderr] | [INFO] [stderr] 98 | line_number: line_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `line_number` [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/lib.rs:156:7 [INFO] [stderr] | [INFO] [stderr] 156 | 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/lib.rs:225:7 [INFO] [stderr] | [INFO] [stderr] 225 | physical_lines: physical_lines, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `physical_lines` [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/lib.rs:611:7 [INFO] [stderr] | [INFO] [stderr] 611 | writer: writer, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `writer` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | / match self.bytes.peek() { [INFO] [stderr] 186 | | Some(&Ok(LF)) => { self.bytes.next(); }, [INFO] [stderr] 187 | | _ => (), [INFO] [stderr] 188 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(&Ok(LF)) = self.bytes.peek() { self.bytes.next(); }` [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] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:363:5 [INFO] [stderr] | [INFO] [stderr] 363 | / match self { [INFO] [stderr] 364 | | &LineContent::Comment(ref s) => write!(f, "Comment({:?})", s), [INFO] [stderr] 365 | | &LineContent::KVPair(ref k, ref v) => write!(f, "KVPair({:?}, {:?})", k, v), [INFO] [stderr] 366 | | } [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] 363 | match *self { [INFO] [stderr] 364 | LineContent::Comment(ref s) => write!(f, "Comment({:?})", s), [INFO] [stderr] 365 | LineContent::KVPair(ref k, ref v) => write!(f, "KVPair({:?}, {:?})", k, v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:399:43 [INFO] [stderr] | [INFO] [stderr] 399 | match std::char::from_u32(val as u32) { [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(val)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:554:45 [INFO] [stderr] | [INFO] [stderr] 554 | Ok(LogicalLine(line_no, line)) => match self.parser.parse_line(&line) { [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 555 | | Some(parsed_line) => {return Some(self.parsed_line_to_line(parsed_line, line_no));}, [INFO] [stderr] 556 | | None => (), // empty line, continue [INFO] [stderr] 557 | | }, [INFO] [stderr] | |___________^ help: try this: `if let Some(parsed_line) = self.parser.parse_line(&line) {return Some(self.parsed_line_to_line(parsed_line, line_no));}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:590:5 [INFO] [stderr] | [INFO] [stderr] 590 | / match self { [INFO] [stderr] 591 | | &LineEnding::CR => f.write_str("LineEnding::CR"), [INFO] [stderr] 592 | | &LineEnding::LF => f.write_str("LineEnding::LF"), [INFO] [stderr] 593 | | &LineEnding::CRLF => f.write_str("LineEnding::CRLF"), [INFO] [stderr] 594 | | } [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] 590 | match *self { [INFO] [stderr] 591 | LineEnding::CR => f.write_str("LineEnding::CR"), [INFO] [stderr] 592 | LineEnding::LF => f.write_str("LineEnding::LF"), [INFO] [stderr] 593 | LineEnding::CRLF => f.write_str("LineEnding::CRLF"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:613:28 [INFO] [stderr] | [INFO] [stderr] 613 | comment_prefix: vec!['#' as u8, ' ' as u8], [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'#' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:613:39 [INFO] [stderr] | [INFO] [stderr] 613 | comment_prefix: vec!['#' as u8, ' ' as u8], [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b' ' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:614:26 [INFO] [stderr] | [INFO] [stderr] 614 | kv_separator: vec!['=' as u8], [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'=' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:621:49 [INFO] [stderr] | [INFO] [stderr] 621 | LineEnding::CR => self.writer.write_all(&['\r' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:622:49 [INFO] [stderr] | [INFO] [stderr] 622 | LineEnding::LF => self.writer.write_all(&['\n' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:623:51 [INFO] [stderr] | [INFO] [stderr] 623 | LineEnding::CRLF => self.writer.write_all(&['\r' as u8, '\n' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:623:63 [INFO] [stderr] | [INFO] [stderr] 623 | LineEnding::CRLF => self.writer.write_all(&['\r' as u8, '\n' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/lib.rs:727:41 [INFO] [stderr] | [INFO] [stderr] 727 | pub fn write(writer: W, map: &HashMap) -> Result<(), PropertiesError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 727 | pub fn write(writer: W, map: &HashMap) -> Result<(), PropertiesError> { [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/lib.rs:185:17 [INFO] [stderr] | [INFO] [stderr] 185 | / match self.bytes.peek() { [INFO] [stderr] 186 | | Some(&Ok(LF)) => { self.bytes.next(); }, [INFO] [stderr] 187 | | _ => (), [INFO] [stderr] 188 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(&Ok(LF)) = self.bytes.peek() { self.bytes.next(); }` [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] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:363:5 [INFO] [stderr] | [INFO] [stderr] 363 | / match self { [INFO] [stderr] 364 | | &LineContent::Comment(ref s) => write!(f, "Comment({:?})", s), [INFO] [stderr] 365 | | &LineContent::KVPair(ref k, ref v) => write!(f, "KVPair({:?}, {:?})", k, v), [INFO] [stderr] 366 | | } [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] 363 | match *self { [INFO] [stderr] 364 | LineContent::Comment(ref s) => write!(f, "Comment({:?})", s), [INFO] [stderr] 365 | LineContent::KVPair(ref k, ref v) => write!(f, "KVPair({:?}, {:?})", k, v), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:399:43 [INFO] [stderr] | [INFO] [stderr] 399 | match std::char::from_u32(val as u32) { [INFO] [stderr] | ^^^^^^^^^^ help: try: `u32::from(val)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:554:45 [INFO] [stderr] | [INFO] [stderr] 554 | Ok(LogicalLine(line_no, line)) => match self.parser.parse_line(&line) { [INFO] [stderr] | _____________________________________________^ [INFO] [stderr] 555 | | Some(parsed_line) => {return Some(self.parsed_line_to_line(parsed_line, line_no));}, [INFO] [stderr] 556 | | None => (), // empty line, continue [INFO] [stderr] 557 | | }, [INFO] [stderr] | |___________^ help: try this: `if let Some(parsed_line) = self.parser.parse_line(&line) {return Some(self.parsed_line_to_line(parsed_line, line_no));}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:590:5 [INFO] [stderr] | [INFO] [stderr] 590 | / match self { [INFO] [stderr] 591 | | &LineEnding::CR => f.write_str("LineEnding::CR"), [INFO] [stderr] 592 | | &LineEnding::LF => f.write_str("LineEnding::LF"), [INFO] [stderr] 593 | | &LineEnding::CRLF => f.write_str("LineEnding::CRLF"), [INFO] [stderr] 594 | | } [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] 590 | match *self { [INFO] [stderr] 591 | LineEnding::CR => f.write_str("LineEnding::CR"), [INFO] [stderr] 592 | LineEnding::LF => f.write_str("LineEnding::LF"), [INFO] [stderr] 593 | LineEnding::CRLF => f.write_str("LineEnding::CRLF"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:613:28 [INFO] [stderr] | [INFO] [stderr] 613 | comment_prefix: vec!['#' as u8, ' ' as u8], [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::char_lit_as_u8)] on by default [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'#' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:613:39 [INFO] [stderr] | [INFO] [stderr] 613 | comment_prefix: vec!['#' as u8, ' ' as u8], [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b' ' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:614:26 [INFO] [stderr] | [INFO] [stderr] 614 | kv_separator: vec!['=' as u8], [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'=' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:621:49 [INFO] [stderr] | [INFO] [stderr] 621 | LineEnding::CR => self.writer.write_all(&['\r' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:622:49 [INFO] [stderr] | [INFO] [stderr] 622 | LineEnding::LF => self.writer.write_all(&['\n' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:623:51 [INFO] [stderr] | [INFO] [stderr] 623 | LineEnding::CRLF => self.writer.write_all(&['\r' as u8, '\n' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\r' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: casting character literal to u8. `char`s are 4 bytes wide in rust, so casting to u8 truncates them [INFO] [stderr] --> src/lib.rs:623:63 [INFO] [stderr] | [INFO] [stderr] 623 | LineEnding::CRLF => self.writer.write_all(&['\r' as u8, '\n' as u8]), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: Consider using a byte literal instead: [INFO] [stderr] b'\n' [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#char_lit_as_u8 [INFO] [stderr] [INFO] [stderr] warning: parameter of type `HashMap` should be generalized over different hashers [INFO] [stderr] --> src/lib.rs:727:41 [INFO] [stderr] | [INFO] [stderr] 727 | pub fn write(writer: W, map: &HashMap) -> Result<(), PropertiesError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::implicit_hasher)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#implicit_hasher [INFO] [stderr] help: consider adding a type parameter [INFO] [stderr] | [INFO] [stderr] 727 | pub fn write(writer: W, map: &HashMap) -> Result<(), PropertiesError> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `e_ln` is used as a loop counter. Consider using `for (e_ln, item) in lines.enumerate()` or similar iterators [INFO] [stderr] --> src/lib.rs:833:19 [INFO] [stderr] | [INFO] [stderr] 833 | for line in lines { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:1016:9 [INFO] [stderr] | [INFO] [stderr] 1016 | Err(_) => panic!("Error decoding test output"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:1041:9 [INFO] [stderr] | [INFO] [stderr] 1041 | Err(_) => panic!("Error decoding test output"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [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/lib.rs:1062:7 [INFO] [stderr] | [INFO] [stderr] 1062 | / match writer.set_comment_prefix(prefix) { [INFO] [stderr] 1063 | | Ok(_) => panic!("Unexpectedly succeded with prefix {:?}", prefix), [INFO] [stderr] 1064 | | Err(_) => (), [INFO] [stderr] 1065 | | } [INFO] [stderr] | |_______^ help: try this: `if let Ok(_) = writer.set_comment_prefix(prefix) { panic!("Unexpectedly succeded with prefix {:?}", prefix) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:1090:9 [INFO] [stderr] | [INFO] [stderr] 1090 | Err(_) => panic!("Error decoding test output"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [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/lib.rs:1111:7 [INFO] [stderr] | [INFO] [stderr] 1111 | / match writer.set_kv_separator(separator) { [INFO] [stderr] 1112 | | Ok(_) => panic!("Unexpectedly succeded with separator {:?}", separator), [INFO] [stderr] 1113 | | Err(_) => (), [INFO] [stderr] 1114 | | } [INFO] [stderr] | |_______^ help: try this: `if let Ok(_) = writer.set_kv_separator(separator) { panic!("Unexpectedly succeded with separator {:?}", separator) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:1144:9 [INFO] [stderr] | [INFO] [stderr] 1144 | Err(_) => panic!("Error decoding test output"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/lib.rs:1170:9 [INFO] [stderr] | [INFO] [stderr] 1170 | Err(_) => panic!("Error decoding test output"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.25s [INFO] running `"docker" "inspect" "a1e4de9cd9534726458a61a9240dc802bf4501d7ee8100abd0ca451cbb5de038"` [INFO] running `"docker" "rm" "-f" "a1e4de9cd9534726458a61a9240dc802bf4501d7ee8100abd0ca451cbb5de038"` [INFO] [stdout] a1e4de9cd9534726458a61a9240dc802bf4501d7ee8100abd0ca451cbb5de038