[INFO] crate cts 0.5.0 is already in cache [INFO] extracting crate cts 0.5.0 into work/ex/clippy-test-run/sources/stable/reg/cts/0.5.0 [INFO] extracting crate cts 0.5.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cts/0.5.0 [INFO] validating manifest of cts-0.5.0 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 cts-0.5.0 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 cts-0.5.0 [INFO] finished frobbing cts-0.5.0 [INFO] frobbed toml for cts-0.5.0 written to work/ex/clippy-test-run/sources/stable/reg/cts/0.5.0/Cargo.toml [INFO] started frobbing cts-0.5.0 [INFO] finished frobbing cts-0.5.0 [INFO] frobbed toml for cts-0.5.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cts/0.5.0/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 cts-0.5.0 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/cts/0.5.0:/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] c80535003b4463145ffaae0e22dcd53c2089d0f90d642d7bf32a46d4bddb4536 [INFO] running `"docker" "start" "-a" "c80535003b4463145ffaae0e22dcd53c2089d0f90d642d7bf32a46d4bddb4536"` [INFO] [stderr] Checking cts v0.5.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/convert/sql.rs:82:15 [INFO] [stderr] | [INFO] [stderr] 82 | commit: commit, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `commit` [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/convert/sql.rs:83:15 [INFO] [stderr] | [INFO] [stderr] 83 | limit: limit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `limit` [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/convert/sql.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | 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/util/settings.rs:198:22 [INFO] [stderr] | [INFO] [stderr] 198 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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/util/settings.rs:199:22 [INFO] [stderr] | [INFO] [stderr] 199 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [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/util/settings.rs:200:22 [INFO] [stderr] | [INFO] [stderr] 200 | quote: quote, }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `quote` [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/util/settings.rs:256:23 [INFO] [stderr] | [INFO] [stderr] 256 | mappings: mappings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `mappings` [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/convert/sql.rs:82:15 [INFO] [stderr] | [INFO] [stderr] 82 | commit: commit, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `commit` [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/convert/sql.rs:83:15 [INFO] [stderr] | [INFO] [stderr] 83 | limit: limit, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `limit` [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/convert/sql.rs:87:15 [INFO] [stderr] | [INFO] [stderr] 87 | 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/util/settings.rs:198:22 [INFO] [stderr] | [INFO] [stderr] 198 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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/util/settings.rs:199:22 [INFO] [stderr] | [INFO] [stderr] 199 | length: length, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `length` [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/util/settings.rs:200:22 [INFO] [stderr] | [INFO] [stderr] 200 | quote: quote, }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `quote` [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/util/settings.rs:256:23 [INFO] [stderr] | [INFO] [stderr] 256 | mappings: mappings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `mappings` [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 don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/csv.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / match self { [INFO] [stderr] 23 | | &ReaderError(ref error) => write!(f, "reader error: {}", error.description()), [INFO] [stderr] 24 | | } [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] 22 | match *self { [INFO] [stderr] 23 | ReaderError(ref error) => write!(f, "reader error: {}", error.description()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/convert/csv.rs:80:12 [INFO] [stderr] | [INFO] [stderr] 80 | if self.files.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.files.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/convert/csv.rs:145:20 [INFO] [stderr] | [INFO] [stderr] 145 | if value.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!value.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/sql.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &WriterError(ref error) => { [INFO] [stderr] 25 | | write!(f, "file could not be written: {}", error.description()) [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [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] 23 | match *self { [INFO] [stderr] 24 | WriterError(ref error) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:65:31 [INFO] [stderr] | [INFO] [stderr] 65 | self.writer.write(";".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b";"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/convert/sql.rs:92:22 [INFO] [stderr] | [INFO] [stderr] 92 | Ok(Self::new(settings.sql.commit.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `settings.sql.commit` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/convert/sql.rs:93:22 [INFO] [stderr] | [INFO] [stderr] 93 | settings.sql.limit.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `settings.sql.limit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/convert/sql.rs:96:22 [INFO] [stderr] | [INFO] [stderr] 96 | / match &settings.output { [INFO] [stderr] 97 | | &None => Writer::Stdout(io::stdout()), [INFO] [stderr] 98 | | &Some(ref path) => Writer::File(fs::File::create(Path::new(&path))?), [INFO] [stderr] 99 | | })) [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: try [INFO] [stderr] | [INFO] [stderr] 96 | match settings.output { [INFO] [stderr] 97 | None => Writer::Stdout(io::stdout()), [INFO] [stderr] 98 | Some(ref path) => Writer::File(fs::File::create(Path::new(&path))?), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/convert/sql.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | self.batch = self.batch + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.batch += 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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:117:31 [INFO] [stderr] | [INFO] [stderr] 117 | self.writer.write(";".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b";"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:129:27 [INFO] [stderr] | [INFO] [stderr] 129 | self.writer.write("(".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"("` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:133:35 [INFO] [stderr] | [INFO] [stderr] 133 | self.writer.write(", ".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:140:51 [INFO] [stderr] | [INFO] [stderr] 140 | None => self.writer.write("null".as_bytes())? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"null"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/sql.rs:154:29 [INFO] [stderr] | [INFO] [stderr] 154 | / match byte { [INFO] [stderr] 155 | | &b'\'' | &b'\\' => quoted.push(b'\\'), [INFO] [stderr] 156 | | _ => {} [INFO] [stderr] 157 | | } [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] 154 | match *byte { [INFO] [stderr] 155 | b'\'' | b'\\' => quoted.push(b'\\'), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:172:27 [INFO] [stderr] | [INFO] [stderr] 172 | self.writer.write(")".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b")"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/convert/sql.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | self.record = self.record + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.record += 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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:197:35 [INFO] [stderr] | [INFO] [stderr] 197 | self.writer.write(", ".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/sql.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match self { [INFO] [stderr] 228 | | &mut Cursor(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 229 | | &mut File(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 230 | | &mut Stdout(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 231 | | } [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] 227 | match *self { [INFO] [stderr] 228 | Cursor(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 229 | File(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 230 | Stdout(ref mut handle) => handle.write_all(string)?, [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/convert/mod.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | / match sql.write(value) { [INFO] [stderr] 22 | | Err(error) => write!(out, "{}", error)?, [INFO] [stderr] 23 | | Ok(_) => {} [INFO] [stderr] 24 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Err(error) = sql.write(value) { write!(out, "{}", error)? }` [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/convert/mod.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match self { [INFO] [stderr] 70 | | &CsvError(ref error) => write!(f, "CSV error: {}", error), [INFO] [stderr] 71 | | &IOError(ref error) => write!(f, "IO error: {}", error), [INFO] [stderr] 72 | | &SqlError(ref error) => write!(f, "SQL error: {}", error), [INFO] [stderr] 73 | | } [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] 69 | match *self { [INFO] [stderr] 70 | CsvError(ref error) => write!(f, "CSV error: {}", error), [INFO] [stderr] 71 | IOError(ref error) => write!(f, "IO error: {}", error), [INFO] [stderr] 72 | SqlError(ref error) => write!(f, "SQL error: {}", error), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:71:24 [INFO] [stderr] | [INFO] [stderr] 71 | Csv { comment: self.comment.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.comment` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:72:26 [INFO] [stderr] | [INFO] [stderr] 72 | delimiter: self.delimiter.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.delimiter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:73:38 [INFO] [stderr] | [INFO] [stderr] 73 | disable_double_quotes: self.disable_double_quotes.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.disable_double_quotes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:74:31 [INFO] [stderr] | [INFO] [stderr] 74 | disable_quotes: self.disable_quotes.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.disable_quotes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:75:23 [INFO] [stderr] | [INFO] [stderr] 75 | escape: self.escape.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.escape` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:76:22 [INFO] [stderr] | [INFO] [stderr] 76 | quote: self.quote.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.quote` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | skip: self.skip.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.skip` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:78:27 [INFO] [stderr] | [INFO] [stderr] 78 | terminator: self.terminator.clone(), } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.terminator` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:135:26 [INFO] [stderr] | [INFO] [stderr] 135 | index: self.index.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:136:27 [INFO] [stderr] | [INFO] [stderr] 136 | length: self.length.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.length` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:137:26 [INFO] [stderr] | [INFO] [stderr] 137 | quote: self.quote.clone(), } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.quote` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/settings.rs:145:31 [INFO] [stderr] | [INFO] [stderr] 145 | let default = s.split("=").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: single-character string constant used as pattern [INFO] [stderr] --> src/util/settings.rs:146:38 [INFO] [stderr] | [INFO] [stderr] 146 | let parts = default[0].split(":").collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/csv.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | / match self { [INFO] [stderr] 23 | | &ReaderError(ref error) => write!(f, "reader error: {}", error.description()), [INFO] [stderr] 24 | | } [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] 22 | match *self { [INFO] [stderr] 23 | ReaderError(ref error) => write!(f, "reader error: {}", error.description()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/convert/csv.rs:80:12 [INFO] [stderr] | [INFO] [stderr] 80 | if self.files.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.files.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/convert/csv.rs:145:20 [INFO] [stderr] | [INFO] [stderr] 145 | if value.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!value.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:177:25 [INFO] [stderr] | [INFO] [stderr] 177 | temp1.write_all("read|this|row".as_bytes()).unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"read|this|row"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:185:25 [INFO] [stderr] | [INFO] [stderr] 185 | temp2.write_all("contains||null".as_bytes()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"contains||null"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/convert/csv.rs:222:18 [INFO] [stderr] | [INFO] [stderr] 222 | assert!(*record.get("first").unwrap() != "skip".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&record["first"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:222:50 [INFO] [stderr] | [INFO] [stderr] 222 | assert!(*record.get("first").unwrap() != "skip".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"skip"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:225:20 [INFO] [stderr] | [INFO] [stderr] 225 | assert_eq!("read".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"read"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/convert/csv.rs:226:21 [INFO] [stderr] | [INFO] [stderr] 226 | *record.get("first").unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&record["first"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:228:20 [INFO] [stderr] | [INFO] [stderr] 228 | assert_eq!("this".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"this"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/convert/csv.rs:229:21 [INFO] [stderr] | [INFO] [stderr] 229 | *record.get("second").unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&record["second"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:231:20 [INFO] [stderr] | [INFO] [stderr] 231 | assert_eq!("row".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"row"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/convert/csv.rs:232:21 [INFO] [stderr] | [INFO] [stderr] 232 | *record.get("third").unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&record["third"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/convert/csv.rs:238:18 [INFO] [stderr] | [INFO] [stderr] 238 | assert!(*record.get("first").unwrap() != "#comment".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&record["first"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:238:50 [INFO] [stderr] | [INFO] [stderr] 238 | assert!(*record.get("first").unwrap() != "#comment".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"#comment"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:241:20 [INFO] [stderr] | [INFO] [stderr] 241 | assert_eq!("quote|this".as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"quote|this"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/convert/csv.rs:242:21 [INFO] [stderr] | [INFO] [stderr] 242 | *record.get("first").unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&record["first"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/csv.rs:248:20 [INFO] [stderr] | [INFO] [stderr] 248 | assert_eq!(r#"^"just^"escape"#.as_bytes().to_vec(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `br#"^"just^"escape"#` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/convert/csv.rs:249:21 [INFO] [stderr] | [INFO] [stderr] 249 | *record.get("first").unwrap(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&record["first"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/sql.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | / match self { [INFO] [stderr] 24 | | &WriterError(ref error) => { [INFO] [stderr] 25 | | write!(f, "file could not be written: {}", error.description()) [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [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] 23 | match *self { [INFO] [stderr] 24 | WriterError(ref error) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:65:31 [INFO] [stderr] | [INFO] [stderr] 65 | self.writer.write(";".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b";"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/convert/sql.rs:92:22 [INFO] [stderr] | [INFO] [stderr] 92 | Ok(Self::new(settings.sql.commit.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `settings.sql.commit` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/convert/sql.rs:93:22 [INFO] [stderr] | [INFO] [stderr] 93 | settings.sql.limit.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `settings.sql.limit` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/convert/sql.rs:96:22 [INFO] [stderr] | [INFO] [stderr] 96 | / match &settings.output { [INFO] [stderr] 97 | | &None => Writer::Stdout(io::stdout()), [INFO] [stderr] 98 | | &Some(ref path) => Writer::File(fs::File::create(Path::new(&path))?), [INFO] [stderr] 99 | | })) [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: try [INFO] [stderr] | [INFO] [stderr] 96 | match settings.output { [INFO] [stderr] 97 | None => Writer::Stdout(io::stdout()), [INFO] [stderr] 98 | Some(ref path) => Writer::File(fs::File::create(Path::new(&path))?), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/convert/sql.rs:114:13 [INFO] [stderr] | [INFO] [stderr] 114 | self.batch = self.batch + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.batch += 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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:117:31 [INFO] [stderr] | [INFO] [stderr] 117 | self.writer.write(";".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b";"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:129:27 [INFO] [stderr] | [INFO] [stderr] 129 | self.writer.write("(".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"("` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:133:35 [INFO] [stderr] | [INFO] [stderr] 133 | self.writer.write(", ".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:140:51 [INFO] [stderr] | [INFO] [stderr] 140 | None => self.writer.write("null".as_bytes())? [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"null"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/sql.rs:154:29 [INFO] [stderr] | [INFO] [stderr] 154 | / match byte { [INFO] [stderr] 155 | | &b'\'' | &b'\\' => quoted.push(b'\\'), [INFO] [stderr] 156 | | _ => {} [INFO] [stderr] 157 | | } [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] 154 | match *byte { [INFO] [stderr] 155 | b'\'' | b'\\' => quoted.push(b'\\'), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:172:27 [INFO] [stderr] | [INFO] [stderr] 172 | self.writer.write(")".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b")"` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/convert/sql.rs:179:9 [INFO] [stderr] | [INFO] [stderr] 179 | self.record = self.record + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.record += 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: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/sql.rs:197:35 [INFO] [stderr] | [INFO] [stderr] 197 | self.writer.write(", ".as_bytes())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b", "` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/convert/sql.rs:227:9 [INFO] [stderr] | [INFO] [stderr] 227 | / match self { [INFO] [stderr] 228 | | &mut Cursor(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 229 | | &mut File(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 230 | | &mut Stdout(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 231 | | } [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] 227 | match *self { [INFO] [stderr] 228 | Cursor(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 229 | File(ref mut handle) => handle.write_all(string)?, [INFO] [stderr] 230 | Stdout(ref mut handle) => handle.write_all(string)?, [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/convert/mod.rs:21:17 [INFO] [stderr] | [INFO] [stderr] 21 | / match sql.write(value) { [INFO] [stderr] 22 | | Err(error) => write!(out, "{}", error)?, [INFO] [stderr] 23 | | Ok(_) => {} [INFO] [stderr] 24 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Err(error) = sql.write(value) { write!(out, "{}", error)? }` [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/convert/mod.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match self { [INFO] [stderr] 70 | | &CsvError(ref error) => write!(f, "CSV error: {}", error), [INFO] [stderr] 71 | | &IOError(ref error) => write!(f, "IO error: {}", error), [INFO] [stderr] 72 | | &SqlError(ref error) => write!(f, "SQL error: {}", error), [INFO] [stderr] 73 | | } [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] 69 | match *self { [INFO] [stderr] 70 | CsvError(ref error) => write!(f, "CSV error: {}", error), [INFO] [stderr] 71 | IOError(ref error) => write!(f, "IO error: {}", error), [INFO] [stderr] 72 | SqlError(ref error) => write!(f, "SQL error: {}", error), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/convert/mod.rs:121:13 [INFO] [stderr] | [INFO] [stderr] 121 | / r#""Kevin H.",100 [INFO] [stderr] 122 | | "Sharon H.",100 [INFO] [stderr] 123 | | "Sir Meowsalot",9001 [INFO] [stderr] 124 | | "Missing No","#.as_bytes(), [INFO] [stderr] | |__________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] help: consider using a byte string literal instead [INFO] [stderr] | [INFO] [stderr] 121 | br#""Kevin H.",100 [INFO] [stderr] 122 | "Sharon H.",100 [INFO] [stderr] 123 | "Sir Meowsalot",9001 [INFO] [stderr] 124 | "Missing No","#, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:71:24 [INFO] [stderr] | [INFO] [stderr] 71 | Csv { comment: self.comment.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.comment` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:72:26 [INFO] [stderr] | [INFO] [stderr] 72 | delimiter: self.delimiter.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.delimiter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:73:38 [INFO] [stderr] | [INFO] [stderr] 73 | disable_double_quotes: self.disable_double_quotes.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.disable_double_quotes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:74:31 [INFO] [stderr] | [INFO] [stderr] 74 | disable_quotes: self.disable_quotes.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.disable_quotes` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:75:23 [INFO] [stderr] | [INFO] [stderr] 75 | escape: self.escape.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.escape` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:76:22 [INFO] [stderr] | [INFO] [stderr] 76 | quote: self.quote.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.quote` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:77:21 [INFO] [stderr] | [INFO] [stderr] 77 | skip: self.skip.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.skip` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:78:27 [INFO] [stderr] | [INFO] [stderr] 78 | terminator: self.terminator.clone(), } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.terminator` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:135:26 [INFO] [stderr] | [INFO] [stderr] 135 | index: self.index.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:136:27 [INFO] [stderr] | [INFO] [stderr] 136 | length: self.length.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.length` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/util/settings.rs:137:26 [INFO] [stderr] | [INFO] [stderr] 137 | quote: self.quote.clone(), } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.quote` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/util/settings.rs:145:31 [INFO] [stderr] | [INFO] [stderr] 145 | let default = s.split("=").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: single-character string constant used as pattern [INFO] [stderr] --> src/util/settings.rs:146:38 [INFO] [stderr] | [INFO] [stderr] 146 | let parts = default[0].split(":").collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.69s [INFO] running `"docker" "inspect" "c80535003b4463145ffaae0e22dcd53c2089d0f90d642d7bf32a46d4bddb4536"` [INFO] running `"docker" "rm" "-f" "c80535003b4463145ffaae0e22dcd53c2089d0f90d642d7bf32a46d4bddb4536"` [INFO] [stdout] c80535003b4463145ffaae0e22dcd53c2089d0f90d642d7bf32a46d4bddb4536