[INFO] crate tmkms-prost-derive 0.0.1 is already in cache [INFO] extracting crate tmkms-prost-derive 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/tmkms-prost-derive/0.0.1 [INFO] extracting crate tmkms-prost-derive 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tmkms-prost-derive/0.0.1 [INFO] validating manifest of tmkms-prost-derive-0.0.1 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of tmkms-prost-derive-0.0.1 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing tmkms-prost-derive-0.0.1 [INFO] finished frobbing tmkms-prost-derive-0.0.1 [INFO] frobbed toml for tmkms-prost-derive-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/tmkms-prost-derive/0.0.1/Cargo.toml [INFO] started frobbing tmkms-prost-derive-0.0.1 [INFO] finished frobbing tmkms-prost-derive-0.0.1 [INFO] frobbed toml for tmkms-prost-derive-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tmkms-prost-derive/0.0.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting tmkms-prost-derive-0.0.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/tmkms-prost-derive/0.0.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 60f0a40d2f999c859c3a036c97b6b870517e3128e1808154d6c61b61c0c26f9f [INFO] running `"docker" "start" "-a" "60f0a40d2f999c859c3a036c97b6b870517e3128e1808154d6c61b61c0c26f9f"` [INFO] [stderr] Checking syn v0.14.9 [INFO] [stderr] Checking failure v0.1.5 [INFO] [stderr] Checking tmkms-prost-derive v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/field/map.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | map_ty: map_ty, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `map_ty` [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/field/map.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | key_ty: key_ty, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `key_ty` [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/field/map.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | tag: tag [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/field/message.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | tag: tag, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/field/message.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | amino_prefix: amino_prefix, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `amino_prefix` [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/field/oneof.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/field/oneof.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | tags: tags, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tags` [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/field/scalar.rs:121:13 [INFO] [stderr] | [INFO] [stderr] 121 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/field/scalar.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/field/scalar.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | tag: tag, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/field/scalar.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | amino_prefix: amino_prefix, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `amino_prefix` [INFO] [stderr] warning: redundant field names in struct initialization [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] --> src/field/map.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | map_ty: map_ty, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `map_ty` [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/field/map.rs:114:21 [INFO] [stderr] | [INFO] [stderr] 114 | key_ty: key_ty, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `key_ty` [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/field/map.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | tag: tag [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/field/message.rs:75:13 [INFO] [stderr] | [INFO] [stderr] 75 | tag: tag, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/field/message.rs:76:13 [INFO] [stderr] | [INFO] [stderr] 76 | amino_prefix: amino_prefix, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `amino_prefix` [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/field/oneof.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/field/oneof.rs:71:13 [INFO] [stderr] | [INFO] [stderr] 71 | tags: tags, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `tags` [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/field/scalar.rs:121:13 [INFO] [stderr] | [INFO] [stderr] 121 | ty: ty, [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/field/scalar.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | kind: kind, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `kind` [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/field/scalar.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | tag: tag, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tag` [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/field/scalar.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | amino_prefix: amino_prefix, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `amino_prefix` [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: unneeded return statement [INFO] [stderr] --> src/field/scalar.rs:613:13 [INFO] [stderr] | [INFO] [stderr] 613 | return Ok(None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(None)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/field/scalar.rs:741:42 [INFO] [stderr] | [INFO] [stderr] 741 | Ty::Enumeration(ref path) => return DefaultValue::Enumeration(quote!(#path::default())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `DefaultValue::Enumeration(quote!(#path::default()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/field/mod.rs:195:26 [INFO] [stderr] | [INFO] [stderr] 195 | const VARIANTS: &'static [Label] = &[ [INFO] [stderr] | -^^^^^^^-------- help: consider removing `'static`: `&[Label]` [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: unneeded return statement [INFO] [stderr] --> src/field/scalar.rs:613:13 [INFO] [stderr] | [INFO] [stderr] 613 | return Ok(None); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(None)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/field/mod.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | return Ok(Some(tags)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(tags))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/field/scalar.rs:741:42 [INFO] [stderr] | [INFO] [stderr] 741 | Ty::Enumeration(ref path) => return DefaultValue::Enumeration(quote!(#path::default())), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `DefaultValue::Enumeration(quote!(#path::default()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/field/mod.rs:195:26 [INFO] [stderr] | [INFO] [stderr] 195 | const VARIANTS: &'static [Label] = &[ [INFO] [stderr] | -^^^^^^^-------- help: consider removing `'static`: `&[Label]` [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: unneeded return statement [INFO] [stderr] --> src/field/mod.rs:359:13 [INFO] [stderr] | [INFO] [stderr] 359 | return Ok(Some(tags)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(Some(tags))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:575:5 [INFO] [stderr] | [INFO] [stderr] 575 | return (disamb_bytes, prefix_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(disamb_bytes, prefix_bytes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/lib.rs:575:5 [INFO] [stderr] | [INFO] [stderr] 575 | return (disamb_bytes, prefix_bytes); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(disamb_bytes, prefix_bytes)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt` [INFO] [stderr] --> src/lib.rs:582:9 [INFO] [stderr] | [INFO] [stderr] 582 | use std::fmt; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::error` [INFO] [stderr] --> src/lib.rs:584:9 [INFO] [stderr] | [INFO] [stderr] 584 | use std::error; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/field/map.rs:91:33 [INFO] [stderr] | [INFO] [stderr] 91 | let k = match &meta_list.nested[0] { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 92 | | &NestedMeta::Meta(Meta::Word(ref k)) => k.to_string(), [INFO] [stderr] 93 | | _ => bail!("invalid map attribute: key must be an identifier"), [INFO] [stderr] 94 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 91 | let k = match meta_list.nested[0] { [INFO] [stderr] 92 | NestedMeta::Meta(Meta::Word(ref k)) => k.to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/field/map.rs:95:33 [INFO] [stderr] | [INFO] [stderr] 95 | let v = match &meta_list.nested[1] { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 96 | | &NestedMeta::Meta(Meta::Word(ref v)) => v.to_string(), [INFO] [stderr] 97 | | _ => bail!("invalid map attribute: value must be an identifier"), [INFO] [stderr] 98 | | }; [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] 95 | let v = match meta_list.nested[1] { [INFO] [stderr] 96 | NestedMeta::Meta(Meta::Word(ref v)) => v.to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/field/scalar.rs:109:62 [INFO] [stderr] | [INFO] [stderr] 109 | (Some(Label::Repeated), packed, false) if packed.unwrap_or(ty.is_numeric()) => Kind::Packed, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| ty.is_numeric())` [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: length comparison to zero [INFO] [stderr] --> src/field/scalar.rs:148:20 [INFO] [stderr] | [INFO] [stderr] 148 | if self.amino_prefix.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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/field/scalar.rs:163:20 [INFO] [stderr] | [INFO] [stderr] 163 | if self.amino_prefix.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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: length comparison to zero [INFO] [stderr] --> src/field/scalar.rs:197:29 [INFO] [stderr] | [INFO] [stderr] 197 | let is_registered = self.amino_prefix.len() > 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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: this creates an owned instance just for comparison [INFO] [stderr] --> src/field/scalar.rs:198:51 [INFO] [stderr] | [INFO] [stderr] 198 | let decode_with_prefix = is_registered && module.to_string() == "bytes"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `*module` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/field/scalar.rs:235:33 [INFO] [stderr] | [INFO] [stderr] 235 | let is_amino_prefixed = self.amino_prefix.len() > 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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 both the expression and the patterns [INFO] [stderr] --> src/field/map.rs:91:33 [INFO] [stderr] | [INFO] [stderr] 91 | let k = match &meta_list.nested[0] { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 92 | | &NestedMeta::Meta(Meta::Word(ref k)) => k.to_string(), [INFO] [stderr] 93 | | _ => bail!("invalid map attribute: key must be an identifier"), [INFO] [stderr] 94 | | }; [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: try [INFO] [stderr] | [INFO] [stderr] 91 | let k = match meta_list.nested[0] { [INFO] [stderr] 92 | NestedMeta::Meta(Meta::Word(ref k)) => k.to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/field/map.rs:95:33 [INFO] [stderr] | [INFO] [stderr] 95 | let v = match &meta_list.nested[1] { [INFO] [stderr] | _________________________________^ [INFO] [stderr] 96 | | &NestedMeta::Meta(Meta::Word(ref v)) => v.to_string(), [INFO] [stderr] 97 | | _ => bail!("invalid map attribute: value must be an identifier"), [INFO] [stderr] 98 | | }; [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] 95 | let v = match meta_list.nested[1] { [INFO] [stderr] 96 | NestedMeta::Meta(Meta::Word(ref v)) => v.to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should use the `starts_with` method [INFO] [stderr] --> src/field/scalar.rs:685:20 [INFO] [stderr] | [INFO] [stderr] 685 | if value.chars().next() == Some('-') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `value.starts_with('-')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_next_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_next_cmp [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/field/scalar.rs:109:62 [INFO] [stderr] | [INFO] [stderr] 109 | (Some(Label::Repeated), packed, false) if packed.unwrap_or(ty.is_numeric()) => Kind::Packed, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| ty.is_numeric())` [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: length comparison to zero [INFO] [stderr] --> src/field/scalar.rs:148:20 [INFO] [stderr] | [INFO] [stderr] 148 | if self.amino_prefix.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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/field/scalar.rs:163:20 [INFO] [stderr] | [INFO] [stderr] 163 | if self.amino_prefix.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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: length comparison to zero [INFO] [stderr] --> src/field/scalar.rs:197:29 [INFO] [stderr] | [INFO] [stderr] 197 | let is_registered = self.amino_prefix.len() > 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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: this creates an owned instance just for comparison [INFO] [stderr] --> src/field/scalar.rs:198:51 [INFO] [stderr] | [INFO] [stderr] 198 | let decode_with_prefix = is_registered && module.to_string() == "bytes"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `*module` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/field/mod.rs:186:15 [INFO] [stderr] | [INFO] [stderr] 186 | fn as_str(&self) -> &'static str { [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: length comparison to zero [INFO] [stderr] --> src/field/scalar.rs:235:33 [INFO] [stderr] | [INFO] [stderr] 235 | let is_amino_prefixed = self.amino_prefix.len() > 0; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.amino_prefix.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: redundant closure found [INFO] [stderr] --> src/field/mod.rs:366:21 [INFO] [stderr] | [INFO] [stderr] 366 | .map(|tags| Some(tags)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Some` [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: you should use the `starts_with` method [INFO] [stderr] --> src/field/scalar.rs:685:20 [INFO] [stderr] | [INFO] [stderr] 685 | if value.chars().next() == Some('-') { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: like this: `value.starts_with('-')` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::chars_next_cmp)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#chars_next_cmp [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/field/mod.rs:186:15 [INFO] [stderr] | [INFO] [stderr] 186 | fn as_str(&self) -> &'static str { [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: redundant closure found [INFO] [stderr] --> src/field/mod.rs:366:21 [INFO] [stderr] | [INFO] [stderr] 366 | .map(|tags| Some(tags)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Some` [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] Finished dev [unoptimized + debuginfo] target(s) in 10.25s [INFO] running `"docker" "inspect" "60f0a40d2f999c859c3a036c97b6b870517e3128e1808154d6c61b61c0c26f9f"` [INFO] running `"docker" "rm" "-f" "60f0a40d2f999c859c3a036c97b6b870517e3128e1808154d6c61b61c0c26f9f"` [INFO] [stdout] 60f0a40d2f999c859c3a036c97b6b870517e3128e1808154d6c61b61c0c26f9f