[INFO] crate csv-core 0.1.4 is already in cache [INFO] extracting crate csv-core 0.1.4 into work/ex/clippy-test-run/sources/stable/reg/csv-core/0.1.4 [INFO] extracting crate csv-core 0.1.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/csv-core/0.1.4 [INFO] validating manifest of csv-core-0.1.4 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 csv-core-0.1.4 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 csv-core-0.1.4 [INFO] finished frobbing csv-core-0.1.4 [INFO] frobbed toml for csv-core-0.1.4 written to work/ex/clippy-test-run/sources/stable/reg/csv-core/0.1.4/Cargo.toml [INFO] started frobbing csv-core-0.1.4 [INFO] finished frobbing csv-core-0.1.4 [INFO] frobbed toml for csv-core-0.1.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/csv-core/0.1.4/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 csv-core-0.1.4 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/csv-core/0.1.4:/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] 45abd2926b6696301dd81180cc5d04b8bdccb423f9d22712465fb32add6f80e6 [INFO] running `"docker" "start" "-a" "45abd2926b6696301dd81180cc5d04b8bdccb423f9d22712465fb32add6f80e6"` [INFO] [stderr] Checking odds v0.2.26 [INFO] [stderr] Checking memchr v2.1.3 [INFO] [stderr] Checking csv-core v0.1.4 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/writer.rs:30:25 [INFO] [stderr] | [INFO] [stderr] 30 | WriterBuilder { wtr: wtr } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `wtr` [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/writer.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | requires_quotes: requires_quotes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `requires_quotes` [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] Checking arrayvec v0.3.25 [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/reader.rs:445:20 [INFO] [stderr] | [INFO] [stderr] 445 | const NFA_STATES: &'static [NfaState] = &[ [INFO] [stderr] | -^^^^^^^----------- help: consider removing `'static`: `&[NfaState]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reader.rs:460:23 [INFO] [stderr] | [INFO] [stderr] 460 | fn is_field_final(&self) -> bool { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reader.rs:471:24 [INFO] [stderr] | [INFO] [stderr] 471 | fn is_record_final(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: omit braces around single expression condition [INFO] [stderr] --> src/reader.rs:618:31 [INFO] [stderr] | [INFO] [stderr] 618 | let (input, nin) = if { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 619 | | !self.has_read && [INFO] [stderr] 620 | | input.len() >= 3 && [INFO] [stderr] 621 | | &input[0..3] == b"\xef\xbb\xbf" [INFO] [stderr] 622 | | } { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_expr)] on by default [INFO] [stderr] = help: try [INFO] [stderr] if !self.has_read && [INFO] [stderr] input.len() >= 3 && [INFO] [stderr] &input[0..3] == b"\xef\xbb\xbf" { [INFO] [stderr] (&input[3..], 3) [INFO] [stderr] } ... [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_expr [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader.rs:1246:9 [INFO] [stderr] | [INFO] [stderr] 1246 | self.next_class = self.next_class + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_class += 1` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reader.rs:1297:17 [INFO] [stderr] | [INFO] [stderr] 1297 | fn is_start(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `requires_quotes` [INFO] [stderr] --> src/writer.rs:174:18 [INFO] [stderr] | [INFO] [stderr] 174 | for i in 0..256 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 174 | for (i, ) in requires_quotes.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/writer.rs:174:18 [INFO] [stderr] | [INFO] [stderr] 174 | for i in 0..256 { [INFO] [stderr] | ^^^^^^ help: try replacing the loop by: `requires_quotes[..256].clone_from_slice(&self.requires_quotes[..256])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/writer.rs:507:5 [INFO] [stderr] | [INFO] [stderr] 507 | !s.parse::().is_ok() && !s.parse::().is_ok() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `s.parse::().is_err() && s.parse::().is_err()` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:137:16 [INFO] [stderr] | [INFO] [stderr] 137 | fn is_crlf(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:145:15 [INFO] [stderr] | [INFO] [stderr] 145 | fn equals(&self, other: u8) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/writer.rs:30:25 [INFO] [stderr] | [INFO] [stderr] 30 | WriterBuilder { wtr: wtr } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `wtr` [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/writer.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | requires_quotes: requires_quotes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `requires_quotes` [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] error: couldn't read benches/../../examples/data/bench/nfl.csv: No such file or directory (os error 2) [INFO] [stderr] --> benches/bench.rs:10:28 [INFO] [stderr] | [INFO] [stderr] 10 | static NFL: &'static str = include_str!("../../examples/data/bench/nfl.csv"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: couldn't read benches/../../examples/data/bench/game.csv: No such file or directory (os error 2) [INFO] [stderr] --> benches/bench.rs:11:29 [INFO] [stderr] | [INFO] [stderr] 11 | static GAME: &'static str = include_str!("../../examples/data/bench/game.csv"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: couldn't read benches/../../examples/data/bench/worldcitiespop.csv: No such file or directory (os error 2) [INFO] [stderr] --> benches/bench.rs:12:28 [INFO] [stderr] | [INFO] [stderr] 12 | static POP: &'static str = include_str!("../../examples/data/bench/worldcitiespop.csv"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: couldn't read benches/../../examples/data/bench/gtfs-mbta-stop-times.csv: No such file or directory (os error 2) [INFO] [stderr] --> benches/bench.rs:13:29 [INFO] [stderr] | [INFO] [stderr] 13 | static MBTA: &'static str = include_str!("../../examples/data/bench/gtfs-mbta-stop-times.csv"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `csv-core`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/reader.rs:445:20 [INFO] [stderr] | [INFO] [stderr] 445 | const NFA_STATES: &'static [NfaState] = &[ [INFO] [stderr] | -^^^^^^^----------- help: consider removing `'static`: `&[NfaState]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1538 | parses_to!(empty, "", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1539 | parses_to!(empty_lines, "\n\n\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1543 | parses_to!(empty_lines_crlf, "\r\n\r\n\r\n\r\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1548 | parses_to!(empty_lines_mixed, "\r\n\n\r\n\n", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/reader.rs:1362:17 [INFO] [stderr] | [INFO] [stderr] 1362 | csv [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/reader.rs:1354:31 [INFO] [stderr] | [INFO] [stderr] 1354 | let mut csv = Csv::new(); [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 1553 | parses_to!(empty_lines_cr, "\r\r\r\r", csv![]); [INFO] [stderr] | ------ in this macro invocation [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reader.rs:460:23 [INFO] [stderr] | [INFO] [stderr] 460 | fn is_field_final(&self) -> bool { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reader.rs:471:24 [INFO] [stderr] | [INFO] [stderr] 471 | fn is_record_final(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: omit braces around single expression condition [INFO] [stderr] --> src/reader.rs:618:31 [INFO] [stderr] | [INFO] [stderr] 618 | let (input, nin) = if { [INFO] [stderr] | _______________________________^ [INFO] [stderr] 619 | | !self.has_read && [INFO] [stderr] 620 | | input.len() >= 3 && [INFO] [stderr] 621 | | &input[0..3] == b"\xef\xbb\xbf" [INFO] [stderr] 622 | | } { [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_expr)] on by default [INFO] [stderr] = help: try [INFO] [stderr] if !self.has_read && [INFO] [stderr] input.len() >= 3 && [INFO] [stderr] &input[0..3] == b"\xef\xbb\xbf" { [INFO] [stderr] (&input[3..], 3) [INFO] [stderr] } ... [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_expr [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/reader.rs:1246:9 [INFO] [stderr] | [INFO] [stderr] 1246 | self.next_class = self.next_class + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.next_class += 1` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reader.rs:1297:17 [INFO] [stderr] | [INFO] [stderr] 1297 | fn is_start(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `requires_quotes` [INFO] [stderr] --> src/writer.rs:174:18 [INFO] [stderr] | [INFO] [stderr] 174 | for i in 0..256 { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 174 | for (i, ) in requires_quotes.iter_mut().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: it looks like you're manually copying between slices [INFO] [stderr] --> src/writer.rs:174:18 [INFO] [stderr] | [INFO] [stderr] 174 | for i in 0..256 { [INFO] [stderr] | ^^^^^^ help: try replacing the loop by: `requires_quotes[..256].clone_from_slice(&self.requires_quotes[..256])` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::manual_memcpy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_memcpy [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/writer.rs:507:5 [INFO] [stderr] | [INFO] [stderr] 507 | !s.parse::().is_ok() && !s.parse::().is_ok() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `s.parse::().is_err() && s.parse::().is_err()` [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: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/writer.rs:833:5 [INFO] [stderr] | [INFO] [stderr] 833 | / fn writer_two_fields_two_records() { [INFO] [stderr] 834 | | let mut wtr = Writer::new(); [INFO] [stderr] 835 | | let out = &mut [0; 1024]; [INFO] [stderr] 836 | | let mut n = 0; [INFO] [stderr] ... | [INFO] [stderr] 855 | | assert_eq!("abc,yz\nfoo,quux", s(&out[..n])); [INFO] [stderr] 856 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 30 [INFO] [stderr] --> src/writer.rs:859:5 [INFO] [stderr] | [INFO] [stderr] 859 | / fn writer_two_fields_two_records_quote() { [INFO] [stderr] 860 | | let mut wtr = Writer::new(); [INFO] [stderr] 861 | | let out = &mut [0; 1024]; [INFO] [stderr] 862 | | let mut n = 0; [INFO] [stderr] ... | [INFO] [stderr] 885 | | assert_eq!("\"a,bc\",\"\nz\"\n\"f\"\"oo\",\"quux,\"", s(&out[..n])); [INFO] [stderr] 886 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:137:16 [INFO] [stderr] | [INFO] [stderr] 137 | fn is_crlf(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:145:15 [INFO] [stderr] | [INFO] [stderr] 145 | fn equals(&self, other: u8) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "45abd2926b6696301dd81180cc5d04b8bdccb423f9d22712465fb32add6f80e6"` [INFO] running `"docker" "rm" "-f" "45abd2926b6696301dd81180cc5d04b8bdccb423f9d22712465fb32add6f80e6"` [INFO] [stdout] 45abd2926b6696301dd81180cc5d04b8bdccb423f9d22712465fb32add6f80e6