[INFO] crate wrapcenum-derive 0.3.0 is already in cache [INFO] extracting crate wrapcenum-derive 0.3.0 into work/ex/clippy-test-run/sources/stable/reg/wrapcenum-derive/0.3.0 [INFO] extracting crate wrapcenum-derive 0.3.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wrapcenum-derive/0.3.0 [INFO] validating manifest of wrapcenum-derive-0.3.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 wrapcenum-derive-0.3.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 wrapcenum-derive-0.3.0 [INFO] finished frobbing wrapcenum-derive-0.3.0 [INFO] frobbed toml for wrapcenum-derive-0.3.0 written to work/ex/clippy-test-run/sources/stable/reg/wrapcenum-derive/0.3.0/Cargo.toml [INFO] started frobbing wrapcenum-derive-0.3.0 [INFO] finished frobbing wrapcenum-derive-0.3.0 [INFO] frobbed toml for wrapcenum-derive-0.3.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wrapcenum-derive/0.3.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 wrapcenum-derive-0.3.0 against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/wrapcenum-derive/0.3.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 -Dclippy::into_iter_on_array" "-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] 5f67a7794c0eda3d1adde031fc107a4c45de822157131a9048e36fb780b57c3c [INFO] running `"docker" "start" "-a" "5f67a7794c0eda3d1adde031fc107a4c45de822157131a9048e36fb780b57c3c"` [INFO] [stderr] Checking syn v0.11.11 [INFO] [stderr] Checking wrapcenum-derive v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | rust_name: rust_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rust_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | c_name: c_name, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `c_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | c_variant: c_variant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `c_variant` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:55:13 [INFO] [stderr] | [INFO] [stderr] 55 | rust_name: rust_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rust_name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:57:13 [INFO] [stderr] | [INFO] [stderr] 57 | c_name: c_name, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `c_name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | c_variant: c_variant, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `c_variant` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | let ref rust_name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let rust_name = &self.rust_name;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | let ref rust_variant = self.rust_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------- help: try: `let rust_variant = &self.rust_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | let ref c_name = self.c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let c_name = &self.c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | let ref c_variant = self.c_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let c_variant = &self.c_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | let ref rust_name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let rust_name = &self.rust_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | let ref rust_variant = self.rust_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------- help: try: `let rust_variant = &self.rust_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | let ref c_name = self.c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let c_name = &self.c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | let ref c_variant = self.c_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let c_variant = &self.c_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | let ref rust_name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let rust_name = &self.rust_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let ref rust_variant = self.rust_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------- help: try: `let rust_variant = &self.rust_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | let ref c_name = self.c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let c_name = &self.c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | let ref c_variant = self.c_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let c_variant = &self.c_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | let ref c_name = variant_slice[0].c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------------------- help: try: `let c_name = &variant_slice[0].c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | let ref rust_name = variant_slice[0].rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------------------ help: try: `let rust_name = &variant_slice[0].rust_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:208:65 [INFO] [stderr] | [INFO] [stderr] 208 | let item = nested_items_vec.iter().find(|ref i| match i { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 209 | | // If it's another MetaItem [INFO] [stderr] 210 | | &&&MetaItem(ref item) => match item { [INFO] [stderr] 211 | | // If it's a name value pair [INFO] [stderr] ... | [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | }); [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] 208 | let item = nested_items_vec.iter().find(|ref i| match *i { [INFO] [stderr] 209 | // If it's another MetaItem [INFO] [stderr] 210 | &&MetaItem(ref item) => match item { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:210:46 [INFO] [stderr] | [INFO] [stderr] 210 | &&&MetaItem(ref item) => match item { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 211 | | // If it's a name value pair [INFO] [stderr] 212 | | &NameValue(ref ident, ref lit) => { [INFO] [stderr] 213 | | let mut return_val = false; [INFO] [stderr] ... | [INFO] [stderr] 227 | | _ => panic!("Attribute was was not a namevalue"), [INFO] [stderr] 228 | | }, [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] 210 | &&&MetaItem(ref item) => match *item { [INFO] [stderr] 211 | // If it's a name value pair [INFO] [stderr] 212 | NameValue(ref ident, ref lit) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lib.rs:213:29 [INFO] [stderr] | [INFO] [stderr] 213 | / let mut return_val = false; [INFO] [stderr] 214 | | // If the name matches what was passed in for us to look for [INFO] [stderr] 215 | | if ident == string.as_ref() { [INFO] [stderr] 216 | | // Match on the value paired with the name [INFO] [stderr] ... | [INFO] [stderr] 223 | | return_val = true; [INFO] [stderr] 224 | | } [INFO] [stderr] | |_____________________________^ help: it is more idiomatic to write: `let return_val = if ident == string.as_ref() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:217:49 [INFO] [stderr] | [INFO] [stderr] 217 | return_string = match lit { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 218 | | // If it's a string, return it. Then go beg for mercy after [INFO] [stderr] 219 | | // having read through this code. [INFO] [stderr] 220 | | &Str(ref the_value, _) => Some(the_value.to_string()), [INFO] [stderr] 221 | | _ => panic!("Attribute value was not a string") [INFO] [stderr] 222 | | }; [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] 217 | return_string = match *lit { [INFO] [stderr] 218 | // If it's a string, return it. Then go beg for mercy after [INFO] [stderr] 219 | // having read through this code. [INFO] [stderr] 220 | Str(ref the_value, _) => Some(the_value.to_string()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:232:24 [INFO] [stderr] | [INFO] [stderr] 232 | if let Some(_) = item { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 233 | | real_return_val = true; [INFO] [stderr] 234 | | } [INFO] [stderr] | |_________________- help: try this: `if item.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:251:65 [INFO] [stderr] | [INFO] [stderr] 251 | let item = nested_items_vec.iter().find(|ref i| match i { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 252 | | &&&MetaItem(ref item) => match item { [INFO] [stderr] 253 | | &NameValue(ref ident, ref lit) => { [INFO] [stderr] 254 | | let mut return_val = false; [INFO] [stderr] ... | [INFO] [stderr] 266 | | _ => false, [INFO] [stderr] 267 | | }); [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] 251 | let item = nested_items_vec.iter().find(|ref i| match *i { [INFO] [stderr] 252 | &&MetaItem(ref item) => match item { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:252:46 [INFO] [stderr] | [INFO] [stderr] 252 | &&&MetaItem(ref item) => match item { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 253 | | &NameValue(ref ident, ref lit) => { [INFO] [stderr] 254 | | let mut return_val = false; [INFO] [stderr] 255 | | if ident == string.as_ref() { [INFO] [stderr] ... | [INFO] [stderr] 264 | | _ => panic!("Attribute was was not a namevalue"), [INFO] [stderr] 265 | | }, [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] 252 | &&&MetaItem(ref item) => match *item { [INFO] [stderr] 253 | NameValue(ref ident, ref lit) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lib.rs:254:29 [INFO] [stderr] | [INFO] [stderr] 254 | / let mut return_val = false; [INFO] [stderr] 255 | | if ident == string.as_ref() { [INFO] [stderr] 256 | | return_string = match lit { [INFO] [stderr] 257 | | &Str(ref the_value, _) => the_value.to_string(), [INFO] [stderr] ... | [INFO] [stderr] 260 | | return_val = true; [INFO] [stderr] 261 | | } [INFO] [stderr] | |_____________________________^ help: it is more idiomatic to write: `let return_val = if ident == string.as_ref() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:256:49 [INFO] [stderr] | [INFO] [stderr] 256 | return_string = match lit { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 257 | | &Str(ref the_value, _) => the_value.to_string(), [INFO] [stderr] 258 | | _ => panic!("Attribute value was not a string") [INFO] [stderr] 259 | | }; [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] 256 | return_string = match *lit { [INFO] [stderr] 257 | Str(ref the_value, _) => the_value.to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:269:24 [INFO] [stderr] | [INFO] [stderr] 269 | if let Some(_) = item { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 270 | | real_return_val = true; [INFO] [stderr] 271 | | } [INFO] [stderr] | |_________________- help: try this: `if item.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | let ref rust_name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let rust_name = &self.rust_name;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | let ref rust_variant = self.rust_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------- help: try: `let rust_variant = &self.rust_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | let ref c_name = self.c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let c_name = &self.c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | let ref c_variant = self.c_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let c_variant = &self.c_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | let ref rust_name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let rust_name = &self.rust_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | let ref rust_variant = self.rust_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------- help: try: `let rust_variant = &self.rust_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:79:13 [INFO] [stderr] | [INFO] [stderr] 79 | let ref c_name = self.c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let c_name = &self.c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:80:13 [INFO] [stderr] | [INFO] [stderr] 80 | let ref c_variant = self.c_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let c_variant = &self.c_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:91:13 [INFO] [stderr] | [INFO] [stderr] 91 | let ref rust_name = self.rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let rust_name = &self.rust_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | let ref rust_variant = self.rust_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^^^^--------------------- help: try: `let rust_variant = &self.rust_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:93:13 [INFO] [stderr] | [INFO] [stderr] 93 | let ref c_name = self.c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------- help: try: `let c_name = &self.c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:94:13 [INFO] [stderr] | [INFO] [stderr] 94 | let ref c_variant = self.c_variant; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------ help: try: `let c_variant = &self.c_variant;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:138:9 [INFO] [stderr] | [INFO] [stderr] 138 | let ref c_name = variant_slice[0].c_name; [INFO] [stderr] | ----^^^^^^^^^^--------------------------- help: try: `let c_name = &variant_slice[0].c_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | let ref rust_name = variant_slice[0].rust_name; [INFO] [stderr] | ----^^^^^^^^^^^^^------------------------------ help: try: `let rust_name = &variant_slice[0].rust_name;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:208:65 [INFO] [stderr] | [INFO] [stderr] 208 | let item = nested_items_vec.iter().find(|ref i| match i { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 209 | | // If it's another MetaItem [INFO] [stderr] 210 | | &&&MetaItem(ref item) => match item { [INFO] [stderr] 211 | | // If it's a name value pair [INFO] [stderr] ... | [INFO] [stderr] 229 | | _ => false, [INFO] [stderr] 230 | | }); [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] 208 | let item = nested_items_vec.iter().find(|ref i| match *i { [INFO] [stderr] 209 | // If it's another MetaItem [INFO] [stderr] 210 | &&MetaItem(ref item) => match item { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:210:46 [INFO] [stderr] | [INFO] [stderr] 210 | &&&MetaItem(ref item) => match item { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 211 | | // If it's a name value pair [INFO] [stderr] 212 | | &NameValue(ref ident, ref lit) => { [INFO] [stderr] 213 | | let mut return_val = false; [INFO] [stderr] ... | [INFO] [stderr] 227 | | _ => panic!("Attribute was was not a namevalue"), [INFO] [stderr] 228 | | }, [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] 210 | &&&MetaItem(ref item) => match *item { [INFO] [stderr] 211 | // If it's a name value pair [INFO] [stderr] 212 | NameValue(ref ident, ref lit) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lib.rs:213:29 [INFO] [stderr] | [INFO] [stderr] 213 | / let mut return_val = false; [INFO] [stderr] 214 | | // If the name matches what was passed in for us to look for [INFO] [stderr] 215 | | if ident == string.as_ref() { [INFO] [stderr] 216 | | // Match on the value paired with the name [INFO] [stderr] ... | [INFO] [stderr] 223 | | return_val = true; [INFO] [stderr] 224 | | } [INFO] [stderr] | |_____________________________^ help: it is more idiomatic to write: `let return_val = if ident == string.as_ref() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:217:49 [INFO] [stderr] | [INFO] [stderr] 217 | return_string = match lit { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 218 | | // If it's a string, return it. Then go beg for mercy after [INFO] [stderr] 219 | | // having read through this code. [INFO] [stderr] 220 | | &Str(ref the_value, _) => Some(the_value.to_string()), [INFO] [stderr] 221 | | _ => panic!("Attribute value was not a string") [INFO] [stderr] 222 | | }; [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] 217 | return_string = match *lit { [INFO] [stderr] 218 | // If it's a string, return it. Then go beg for mercy after [INFO] [stderr] 219 | // having read through this code. [INFO] [stderr] 220 | Str(ref the_value, _) => Some(the_value.to_string()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:232:24 [INFO] [stderr] | [INFO] [stderr] 232 | if let Some(_) = item { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 233 | | real_return_val = true; [INFO] [stderr] 234 | | } [INFO] [stderr] | |_________________- help: try this: `if item.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:251:65 [INFO] [stderr] | [INFO] [stderr] 251 | let item = nested_items_vec.iter().find(|ref i| match i { [INFO] [stderr] | _________________________________________________________________^ [INFO] [stderr] 252 | | &&&MetaItem(ref item) => match item { [INFO] [stderr] 253 | | &NameValue(ref ident, ref lit) => { [INFO] [stderr] 254 | | let mut return_val = false; [INFO] [stderr] ... | [INFO] [stderr] 266 | | _ => false, [INFO] [stderr] 267 | | }); [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] 251 | let item = nested_items_vec.iter().find(|ref i| match *i { [INFO] [stderr] 252 | &&MetaItem(ref item) => match item { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:252:46 [INFO] [stderr] | [INFO] [stderr] 252 | &&&MetaItem(ref item) => match item { [INFO] [stderr] | ______________________________________________^ [INFO] [stderr] 253 | | &NameValue(ref ident, ref lit) => { [INFO] [stderr] 254 | | let mut return_val = false; [INFO] [stderr] 255 | | if ident == string.as_ref() { [INFO] [stderr] ... | [INFO] [stderr] 264 | | _ => panic!("Attribute was was not a namevalue"), [INFO] [stderr] 265 | | }, [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] 252 | &&&MetaItem(ref item) => match *item { [INFO] [stderr] 253 | NameValue(ref ident, ref lit) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/lib.rs:254:29 [INFO] [stderr] | [INFO] [stderr] 254 | / let mut return_val = false; [INFO] [stderr] 255 | | if ident == string.as_ref() { [INFO] [stderr] 256 | | return_string = match lit { [INFO] [stderr] 257 | | &Str(ref the_value, _) => the_value.to_string(), [INFO] [stderr] ... | [INFO] [stderr] 260 | | return_val = true; [INFO] [stderr] 261 | | } [INFO] [stderr] | |_____________________________^ help: it is more idiomatic to write: `let return_val = if ident == string.as_ref() { ..; true } else { false };` [INFO] [stderr] | [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:256:49 [INFO] [stderr] | [INFO] [stderr] 256 | return_string = match lit { [INFO] [stderr] | _________________________________________________^ [INFO] [stderr] 257 | | &Str(ref the_value, _) => the_value.to_string(), [INFO] [stderr] 258 | | _ => panic!("Attribute value was not a string") [INFO] [stderr] 259 | | }; [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] 256 | return_string = match *lit { [INFO] [stderr] 257 | Str(ref the_value, _) => the_value.to_string(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/lib.rs:269:24 [INFO] [stderr] | [INFO] [stderr] 269 | if let Some(_) = item { [INFO] [stderr] | _________________- ^^^^^^^ [INFO] [stderr] 270 | | real_return_val = true; [INFO] [stderr] 271 | | } [INFO] [stderr] | |_________________- help: try this: `if item.is_some()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 3.17s [INFO] running `"docker" "inspect" "5f67a7794c0eda3d1adde031fc107a4c45de822157131a9048e36fb780b57c3c"` [INFO] running `"docker" "rm" "-f" "5f67a7794c0eda3d1adde031fc107a4c45de822157131a9048e36fb780b57c3c"` [INFO] [stdout] 5f67a7794c0eda3d1adde031fc107a4c45de822157131a9048e36fb780b57c3c