[INFO] crate nom-sql 0.0.4 is already in cache [INFO] extracting crate nom-sql 0.0.4 into work/ex/clippy-test-run/sources/stable/reg/nom-sql/0.0.4 [INFO] extracting crate nom-sql 0.0.4 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nom-sql/0.0.4 [INFO] validating manifest of nom-sql-0.0.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 nom-sql-0.0.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 nom-sql-0.0.4 [INFO] finished frobbing nom-sql-0.0.4 [INFO] frobbed toml for nom-sql-0.0.4 written to work/ex/clippy-test-run/sources/stable/reg/nom-sql/0.0.4/Cargo.toml [INFO] started frobbing nom-sql-0.0.4 [INFO] finished frobbing nom-sql-0.0.4 [INFO] frobbed toml for nom-sql-0.0.4 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nom-sql/0.0.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 nom-sql-0.0.4 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/nom-sql/0.0.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] 578941e02cf987c6c09feff0ad683f4751299c4d6fa39ce7a46818fd5cd89db7 [INFO] running `"docker" "start" "-a" "578941e02cf987c6c09feff0ad683f4751299c4d6fa39ce7a46818fd5cd89db7"` [INFO] [stderr] Checking nom-sql v0.0.4 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/arithmetic.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/arithmetic.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/arithmetic.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | right: right, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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/arithmetic.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | alias: alias, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `alias` [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/arithmetic.rs:40:13 [INFO] [stderr] | [INFO] [stderr] 40 | op: op, [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/arithmetic.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | left: left, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `left` [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/arithmetic.rs:42:13 [INFO] [stderr] | [INFO] [stderr] 42 | right: right, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `right` [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/arithmetic.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | alias: alias, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `alias` [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: long literal lacking separators [INFO] [stderr] --> src/update.rs:160:41 [INFO] [stderr] | [INFO] [stderr] 160 | fractional: 5479744, [INFO] [stderr] | ^^^^^^^ help: consider: `5_479_744` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/parser.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | Select(SelectStatement), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 20 | Select(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/arithmetic.rs:113:33 [INFO] [stderr] | [INFO] [stderr] 113 | map!(integer_literal, |il| ArithmeticBase::Scalar(il)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ArithmeticBase::Scalar` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/arithmetic.rs:114:44 [INFO] [stderr] | [INFO] [stderr] 114 | | map!(column_identifier_no_alias, |ci| ArithmeticBase::Column(ci)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ArithmeticBase::Column` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/column.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | match c.find(".") { [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: useless use of `format!` [INFO] [stderr] --> src/common.rs:114:38 [INFO] [stderr] | [INFO] [stderr] 114 | Literal::Blob(ref bv) => format!( [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 115 | | "{}", [INFO] [stderr] 116 | | bv.iter() [INFO] [stderr] 117 | | .map(|v| format!("{:x}", v)) [INFO] [stderr] 118 | | .collect::>() [INFO] [stderr] 119 | | .join(" ") [INFO] [stderr] 120 | | ), [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 2 | $ crate :: fmt :: format ( bv.iter() [INFO] [stderr] 3 | .map(|v| format!("{:x}", v)) [INFO] [stderr] 4 | .collect::>() [INFO] [stderr] 5 | .join(" ").to_string() ) ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/common.rs:265:5 [INFO] [stderr] | [INFO] [stderr] 265 | Value(FieldValueExpression), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 265 | Value(Box), [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/common.rs:304:36 [INFO] [stderr] | [INFO] [stderr] 304 | is_alphanumeric(chr) || chr == '_' 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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/common.rs:539:45 [INFO] [stderr] | [INFO] [stderr] 539 | (sep.unwrap_or("".as_bytes())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".as_bytes())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/common.rs:539:55 [INFO] [stderr] | [INFO] [stderr] 539 | (sep.unwrap_or("".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: identical conversion [INFO] [stderr] --> src/common.rs:703:20 [INFO] [stderr] | [INFO] [stderr] 703 | value: l.into(), [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `l` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/common.rs:706:39 [INFO] [stderr] | [INFO] [stderr] 706 | | map!(arithmetic_expression, |ae| FieldValueExpression::Arithmetic(ae)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `FieldValueExpression::Arithmetic` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/common.rs:845:21 [INFO] [stderr] | [INFO] [stderr] 845 | -1 * unpack(mant) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/parser.rs:20:5 [INFO] [stderr] | [INFO] [stderr] 20 | Select(SelectStatement), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 20 | Select(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/common.rs:893:63 [INFO] [stderr] | [INFO] [stderr] 893 | |bytes| Literal::String(String::from_utf8(bytes).unwrap_or("�".to_string())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "�".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/create.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | Simple(SelectStatement), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 55 | Simple(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/arithmetic.rs:113:33 [INFO] [stderr] | [INFO] [stderr] 113 | map!(integer_literal, |il| ArithmeticBase::Scalar(il)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ArithmeticBase::Scalar` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/arithmetic.rs:114:44 [INFO] [stderr] | [INFO] [stderr] 114 | | map!(column_identifier_no_alias, |ci| ArithmeticBase::Column(ci)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `ArithmeticBase::Column` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/column.rs:70:22 [INFO] [stderr] | [INFO] [stderr] 70 | match c.find(".") { [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: redundant closure found [INFO] [stderr] --> src/create.rs:537:40 [INFO] [stderr] | [INFO] [stderr] 537 | map!(compound_selection, |s| SelectSpecification::Compound(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SelectSpecification::Compound` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/create.rs:538:38 [INFO] [stderr] | [INFO] [stderr] 538 | | map!(nested_selection, |s| SelectSpecification::Simple(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SelectSpecification::Simple` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/common.rs:114:38 [INFO] [stderr] | [INFO] [stderr] 114 | Literal::Blob(ref bv) => format!( [INFO] [stderr] | ______________________________________^ [INFO] [stderr] 115 | | "{}", [INFO] [stderr] 116 | | bv.iter() [INFO] [stderr] 117 | | .map(|v| format!("{:x}", v)) [INFO] [stderr] 118 | | .collect::>() [INFO] [stderr] 119 | | .join(" ") [INFO] [stderr] 120 | | ), [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] help: consider using .to_string() [INFO] [stderr] | [INFO] [stderr] 2 | $ crate :: fmt :: format ( bv.iter() [INFO] [stderr] 3 | .map(|v| format!("{:x}", v)) [INFO] [stderr] 4 | .collect::>() [INFO] [stderr] 5 | .join(" ").to_string() ) ) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/common.rs:265:5 [INFO] [stderr] | [INFO] [stderr] 265 | Value(FieldValueExpression), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 265 | Value(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/insert.rs:44:26 [INFO] [stderr] | [INFO] [stderr] 44 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [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/common.rs:304:36 [INFO] [stderr] | [INFO] [stderr] 304 | is_alphanumeric(chr) || chr == '_' 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: length comparison to zero [INFO] [stderr] --> src/select.rs:101:12 [INFO] [stderr] | [INFO] [stderr] 101 | if self.tables.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.tables.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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/common.rs:539:45 [INFO] [stderr] | [INFO] [stderr] 539 | (sep.unwrap_or("".as_bytes())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "".as_bytes())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/common.rs:539:55 [INFO] [stderr] | [INFO] [stderr] 539 | (sep.unwrap_or("".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: length comparison to zero [INFO] [stderr] --> src/update.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | assert!(self.fields.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.fields.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: identical conversion [INFO] [stderr] --> src/common.rs:703:20 [INFO] [stderr] | [INFO] [stderr] 703 | value: l.into(), [INFO] [stderr] | ^^^^^^^^ help: consider removing `.into()`: `l` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/common.rs:706:39 [INFO] [stderr] | [INFO] [stderr] 706 | | map!(arithmetic_expression, |ae| FieldValueExpression::Arithmetic(ae)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `FieldValueExpression::Arithmetic` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/common.rs:845:21 [INFO] [stderr] | [INFO] [stderr] 845 | -1 * unpack(mant) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/common.rs:893:63 [INFO] [stderr] | [INFO] [stderr] 893 | |bytes| Literal::String(String::from_utf8(bytes).unwrap_or("�".to_string())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "�".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/common.rs:1008:48 [INFO] [stderr] | [INFO] [stderr] 1008 | assert!(res_not_ok.into_iter().all(|r| r == false)); [INFO] [stderr] | ^^^^^^^^^^ help: try simplifying it as shown: `!r` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/create.rs:55:5 [INFO] [stderr] | [INFO] [stderr] 55 | Simple(SelectStatement), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 55 | Simple(Box), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/create.rs:537:40 [INFO] [stderr] | [INFO] [stderr] 537 | map!(compound_selection, |s| SelectSpecification::Compound(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SelectSpecification::Compound` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/create.rs:538:38 [INFO] [stderr] | [INFO] [stderr] 538 | | map!(nested_selection, |s| SelectSpecification::Simple(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `SelectSpecification::Simple` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/create.rs:723:19 [INFO] [stderr] | [INFO] [stderr] 723 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_update)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/create.rs:745:19 [INFO] [stderr] | [INFO] [stderr] 745 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/delete.rs:81:19 [INFO] [stderr] | [INFO] [stderr] 81 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/insert.rs:44:26 [INFO] [stderr] | [INFO] [stderr] 44 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/select.rs:101:12 [INFO] [stderr] | [INFO] [stderr] 101 | if self.tables.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.tables.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/update.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | assert!(self.fields.len() > 0); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.fields.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: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/update.rs:127:19 [INFO] [stderr] | [INFO] [stderr] 127 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/update.rs:165:19 [INFO] [stderr] | [INFO] [stderr] 165 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: struct update has no effect, all the fields in the struct have already been specified [INFO] [stderr] --> src/update.rs:195:19 [INFO] [stderr] | [INFO] [stderr] 195 | ..Default::default() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> tests/lib.rs:42:53 [INFO] [stderr] | [INFO] [stderr] 42 | .filter(|l| !l.is_empty() && !l.starts_with("#")) [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] --> tests/lib.rs:44:30 [INFO] [stderr] | [INFO] [stderr] 44 | if !(l.ends_with("\n") || l.ends_with(";")) { [INFO] [stderr] | ^^^^ help: try using a char instead: `'\n'` [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: single-character string constant used as pattern [INFO] [stderr] --> tests/lib.rs:44:51 [INFO] [stderr] | [INFO] [stderr] 44 | if !(l.ends_with("\n") || l.ends_with(";")) { [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: single-character string constant used as pattern [INFO] [stderr] --> tests/lib.rs:70:35 [INFO] [stderr] | [INFO] [stderr] 70 | && !l.starts_with("#") [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: single-character string constant used as pattern [INFO] [stderr] --> tests/lib.rs:78:25 [INFO] [stderr] | [INFO] [stderr] 78 | if !l.ends_with(";") { [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: single-character string constant used as pattern [INFO] [stderr] --> tests/lib.rs:135:45 [INFO] [stderr] | [INFO] [stderr] 135 | !l.is_empty() && !l.starts_with("#") && !l.starts_with("--") && !l.starts_with("DROP") [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: single-character string constant used as pattern [INFO] [stderr] --> tests/lib.rs:141:30 [INFO] [stderr] | [INFO] [stderr] 141 | let l = match l.find("#") { [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: single-character string constant used as pattern [INFO] [stderr] --> tests/lib.rs:145:25 [INFO] [stderr] | [INFO] [stderr] 145 | if !l.ends_with(";") { [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 32.63s [INFO] running `"docker" "inspect" "578941e02cf987c6c09feff0ad683f4751299c4d6fa39ce7a46818fd5cd89db7"` [INFO] running `"docker" "rm" "-f" "578941e02cf987c6c09feff0ad683f4751299c4d6fa39ce7a46818fd5cd89db7"` [INFO] [stdout] 578941e02cf987c6c09feff0ad683f4751299c4d6fa39ce7a46818fd5cd89db7