[INFO] crate jlens 0.0.1 is already in cache [INFO] extracting crate jlens 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/jlens/0.0.1 [INFO] extracting crate jlens 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/jlens/0.0.1 [INFO] validating manifest of jlens-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 jlens-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 jlens-0.0.1 [INFO] finished frobbing jlens-0.0.1 [INFO] frobbed toml for jlens-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/jlens/0.0.1/Cargo.toml [INFO] started frobbing jlens-0.0.1 [INFO] finished frobbing jlens-0.0.1 [INFO] frobbed toml for jlens-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/jlens/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 jlens-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-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/jlens/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] b67d12fd48ab5432de46b29842f6a08013d81b10eda1ebbe9c310faf372c5b2b [INFO] running `"docker" "start" "-a" "b67d12fd48ab5432de46b29842f6a08013d81b10eda1ebbe9c310faf372c5b2b"` [INFO] [stderr] Checking jlens v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:187:27 [INFO] [stderr] | [INFO] [stderr] 187 | At { inner: self, index: index } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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:197:28 [INFO] [stderr] | [INFO] [stderr] 197 | Key { inner: self, name: name } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `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:243:32 [INFO] [stderr] | [INFO] [stderr] 243 | Wherein { inner: self, filter: filter } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `filter` [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:252:30 [INFO] [stderr] | [INFO] [stderr] 252 | Union { inner: self, left: left, right: right } [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/lib.rs:252:42 [INFO] [stderr] | [INFO] [stderr] 252 | Union { inner: self, left: left, 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/lib.rs:261:34 [INFO] [stderr] | [INFO] [stderr] 261 | Intersect { inner: self, left: left, right: right } [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/lib.rs:261:46 [INFO] [stderr] | [INFO] [stderr] 261 | Intersect { inner: self, left: left, 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/lib.rs:274:29 [INFO] [stderr] | [INFO] [stderr] 274 | Diff { inner: self, left: left, right: right } [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/lib.rs:274:41 [INFO] [stderr] | [INFO] [stderr] 274 | Diff { inner: self, left: left, 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/lib.rs:285:31 [INFO] [stderr] | [INFO] [stderr] 285 | AndSel { inner: self, left: left, right: right } [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/lib.rs:285:43 [INFO] [stderr] | [INFO] [stderr] 285 | AndSel { inner: self, left: left, 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/lib.rs:296:30 [INFO] [stderr] | [INFO] [stderr] 296 | OrSel { inner: self, left: left, right: right } [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/lib.rs:296:42 [INFO] [stderr] | [INFO] [stderr] 296 | OrSel { inner: self, left: left, 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/lib.rs:358:24 [INFO] [stderr] | [INFO] [stderr] 358 | StringEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:358:38 [INFO] [stderr] | [INFO] [stderr] 358 | StringEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:400:25 [INFO] [stderr] | [INFO] [stderr] 400 | BooleanEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:400:39 [INFO] [stderr] | [INFO] [stderr] 400 | BooleanEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:441:21 [INFO] [stderr] | [INFO] [stderr] 441 | U64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:441:35 [INFO] [stderr] | [INFO] [stderr] 441 | U64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:187:27 [INFO] [stderr] | [INFO] [stderr] 187 | At { inner: self, index: index } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [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:197:28 [INFO] [stderr] | [INFO] [stderr] 197 | Key { inner: self, name: name } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:483:21 [INFO] [stderr] | [INFO] [stderr] 483 | I64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [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] = 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:483:35 [INFO] [stderr] | [INFO] [stderr] 483 | I64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:243:32 [INFO] [stderr] | [INFO] [stderr] 243 | Wherein { inner: self, filter: filter } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `filter` [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:525:21 [INFO] [stderr] | [INFO] [stderr] 525 | F64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [INFO] [stderr] | [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] = 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:525:35 [INFO] [stderr] | [INFO] [stderr] 525 | F64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:252:30 [INFO] [stderr] | [INFO] [stderr] 252 | Union { inner: self, left: left, right: right } [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/lib.rs:252:42 [INFO] [stderr] | [INFO] [stderr] 252 | Union { inner: self, left: left, 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/lib.rs:261:34 [INFO] [stderr] | [INFO] [stderr] 261 | Intersect { inner: self, left: left, right: right } [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/lib.rs:261:46 [INFO] [stderr] | [INFO] [stderr] 261 | Intersect { inner: self, left: left, 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/lib.rs:274:29 [INFO] [stderr] | [INFO] [stderr] 274 | Diff { inner: self, left: left, right: right } [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/lib.rs:274:41 [INFO] [stderr] | [INFO] [stderr] 274 | Diff { inner: self, left: left, 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/lib.rs:285:31 [INFO] [stderr] | [INFO] [stderr] 285 | AndSel { inner: self, left: left, right: right } [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/lib.rs:285:43 [INFO] [stderr] | [INFO] [stderr] 285 | AndSel { inner: self, left: left, 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/lib.rs:296:30 [INFO] [stderr] | [INFO] [stderr] 296 | OrSel { inner: self, left: left, right: right } [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/lib.rs:296:42 [INFO] [stderr] | [INFO] [stderr] 296 | OrSel { inner: self, left: left, 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/lib.rs:358:24 [INFO] [stderr] | [INFO] [stderr] 358 | StringEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:358:38 [INFO] [stderr] | [INFO] [stderr] 358 | StringEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:400:25 [INFO] [stderr] | [INFO] [stderr] 400 | BooleanEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:400:39 [INFO] [stderr] | [INFO] [stderr] 400 | BooleanEquals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:441:21 [INFO] [stderr] | [INFO] [stderr] 441 | U64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:441:35 [INFO] [stderr] | [INFO] [stderr] 441 | U64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:483:21 [INFO] [stderr] | [INFO] [stderr] 483 | I64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:483:35 [INFO] [stderr] | [INFO] [stderr] 483 | I64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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:525:21 [INFO] [stderr] | [INFO] [stderr] 525 | F64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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:525:35 [INFO] [stderr] | [INFO] [stderr] 525 | F64Equals { inner: inner, comp: comp } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `comp` [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: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/lib.rs:129:56 [INFO] [stderr] | [INFO] [stderr] 129 | fn select<'a,'b,F>(&self, input: &JsonPath<'a,'b>, mut f: F) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(patterns_in_fns_without_body)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/lib.rs:129:56 [INFO] [stderr] | [INFO] [stderr] 129 | fn select<'a,'b,F>(&self, input: &JsonPath<'a,'b>, mut f: F) [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(patterns_in_fns_without_body)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:320:13 [INFO] [stderr] | [INFO] [stderr] 320 | / match x.node() { [INFO] [stderr] 321 | | &Json::Object(..) => f(x), [INFO] [stderr] 322 | | _ => () [INFO] [stderr] 323 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Object(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:320:13 [INFO] [stderr] | [INFO] [stderr] 320 | / match x.node() { [INFO] [stderr] 321 | | &Json::Object(..) => f(x), [INFO] [stderr] 322 | | _ => () [INFO] [stderr] 323 | | } [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] 320 | match *x.node() { [INFO] [stderr] 321 | Json::Object(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | / match x.node() { [INFO] [stderr] 337 | | &Json::Array(..) => f(x), [INFO] [stderr] 338 | | _ => () [INFO] [stderr] 339 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Array(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | / match x.node() { [INFO] [stderr] 337 | | &Json::Array(..) => f(x), [INFO] [stderr] 338 | | _ => () [INFO] [stderr] 339 | | } [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] 336 | match *x.node() { [INFO] [stderr] 337 | Json::Array(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:366:13 [INFO] [stderr] | [INFO] [stderr] 366 | / match x.node() { [INFO] [stderr] 367 | | &Json::String(..) => f(x), [INFO] [stderr] 368 | | _ => () [INFO] [stderr] 369 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::String(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:366:13 [INFO] [stderr] | [INFO] [stderr] 366 | / match x.node() { [INFO] [stderr] 367 | | &Json::String(..) => f(x), [INFO] [stderr] 368 | | _ => () [INFO] [stderr] 369 | | } [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] 366 | match *x.node() { [INFO] [stderr] 367 | Json::String(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:378:13 [INFO] [stderr] | [INFO] [stderr] 378 | / match x.node() { [INFO] [stderr] 379 | | &Json::String(ref s) if self.comp == *s => f(x), [INFO] [stderr] 380 | | _ => () [INFO] [stderr] 381 | | } [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] 378 | match *x.node() { [INFO] [stderr] 379 | Json::String(ref s) if self.comp == *s => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | / match x.node() { [INFO] [stderr] 409 | | &Json::Boolean(..) => f(x), [INFO] [stderr] 410 | | _ => () [INFO] [stderr] 411 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Boolean(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | / match x.node() { [INFO] [stderr] 409 | | &Json::Boolean(..) => f(x), [INFO] [stderr] 410 | | _ => () [INFO] [stderr] 411 | | } [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] 408 | match *x.node() { [INFO] [stderr] 409 | Json::Boolean(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:420:13 [INFO] [stderr] | [INFO] [stderr] 420 | / match x.node() { [INFO] [stderr] 421 | | &Json::Boolean(b) if b == self.comp => f(x), [INFO] [stderr] 422 | | _ => () [INFO] [stderr] 423 | | } [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] 420 | match *x.node() { [INFO] [stderr] 421 | Json::Boolean(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:450:13 [INFO] [stderr] | [INFO] [stderr] 450 | / match x.node() { [INFO] [stderr] 451 | | &Json::U64(..) => f(x), [INFO] [stderr] 452 | | _ => () [INFO] [stderr] 453 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::U64(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:450:13 [INFO] [stderr] | [INFO] [stderr] 450 | / match x.node() { [INFO] [stderr] 451 | | &Json::U64(..) => f(x), [INFO] [stderr] 452 | | _ => () [INFO] [stderr] 453 | | } [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] 450 | match *x.node() { [INFO] [stderr] 451 | Json::U64(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:462:13 [INFO] [stderr] | [INFO] [stderr] 462 | / match x.node() { [INFO] [stderr] 463 | | &Json::U64(b) if b == self.comp => f(x), [INFO] [stderr] 464 | | _ => () [INFO] [stderr] 465 | | } [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] 462 | match *x.node() { [INFO] [stderr] 463 | Json::U64(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:492:13 [INFO] [stderr] | [INFO] [stderr] 492 | / match x.node() { [INFO] [stderr] 493 | | &Json::I64(..) => f(x), [INFO] [stderr] 494 | | _ => () [INFO] [stderr] 495 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::I64(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:492:13 [INFO] [stderr] | [INFO] [stderr] 492 | / match x.node() { [INFO] [stderr] 493 | | &Json::I64(..) => f(x), [INFO] [stderr] 494 | | _ => () [INFO] [stderr] 495 | | } [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] 492 | match *x.node() { [INFO] [stderr] 493 | Json::I64(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:504:13 [INFO] [stderr] | [INFO] [stderr] 504 | / match x.node() { [INFO] [stderr] 505 | | &Json::I64(b) if b == self.comp => f(x), [INFO] [stderr] 506 | | _ => () [INFO] [stderr] 507 | | } [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] 504 | match *x.node() { [INFO] [stderr] 505 | Json::I64(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:534:13 [INFO] [stderr] | [INFO] [stderr] 534 | / match x.node() { [INFO] [stderr] 535 | | &Json::F64(..) => f(x), [INFO] [stderr] 536 | | _ => () [INFO] [stderr] 537 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::F64(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:534:13 [INFO] [stderr] | [INFO] [stderr] 534 | / match x.node() { [INFO] [stderr] 535 | | &Json::F64(..) => f(x), [INFO] [stderr] 536 | | _ => () [INFO] [stderr] 537 | | } [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] 534 | match *x.node() { [INFO] [stderr] 535 | Json::F64(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:546:13 [INFO] [stderr] | [INFO] [stderr] 546 | / match x.node() { [INFO] [stderr] 547 | | &Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] 548 | | _ => () [INFO] [stderr] 549 | | } [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] 546 | match *x.node() { [INFO] [stderr] 547 | Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:547:34 [INFO] [stderr] | [INFO] [stderr] 547 | &Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(b - self.comp).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:547:34 [INFO] [stderr] | [INFO] [stderr] 547 | &Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:562:13 [INFO] [stderr] | [INFO] [stderr] 562 | / match x.node() { [INFO] [stderr] 563 | | &Json::Null => f(x), [INFO] [stderr] 564 | | _ => () [INFO] [stderr] 565 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Null = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:562:13 [INFO] [stderr] | [INFO] [stderr] 562 | / match x.node() { [INFO] [stderr] 563 | | &Json::Null => f(x), [INFO] [stderr] 564 | | _ => () [INFO] [stderr] 565 | | } [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] 562 | match *x.node() { [INFO] [stderr] 563 | Json::Null => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:579:13 [INFO] [stderr] | [INFO] [stderr] 579 | / match x.node() { [INFO] [stderr] 580 | | &Json::Array(ref v) => { [INFO] [stderr] 581 | | if v.len() > self.index { [INFO] [stderr] 582 | | f(&x.descendant(&v[self.index])) [INFO] [stderr] ... | [INFO] [stderr] 585 | | _ => () [INFO] [stderr] 586 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 579 | if let &Json::Array(ref v) = x.node() { [INFO] [stderr] 580 | if v.len() > self.index { [INFO] [stderr] 581 | f(&x.descendant(&v[self.index])) [INFO] [stderr] 582 | } [INFO] [stderr] 583 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:579:13 [INFO] [stderr] | [INFO] [stderr] 579 | / match x.node() { [INFO] [stderr] 580 | | &Json::Array(ref v) => { [INFO] [stderr] 581 | | if v.len() > self.index { [INFO] [stderr] 582 | | f(&x.descendant(&v[self.index])) [INFO] [stderr] ... | [INFO] [stderr] 585 | | _ => () [INFO] [stderr] 586 | | } [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] 579 | match *x.node() { [INFO] [stderr] 580 | Json::Array(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:600:13 [INFO] [stderr] | [INFO] [stderr] 600 | / match x.node() { [INFO] [stderr] 601 | | &Json::Object(ref m) => { [INFO] [stderr] 602 | | match m.get(self.name) { [INFO] [stderr] 603 | | Some(e) => f(&x.descendant(e)), [INFO] [stderr] ... | [INFO] [stderr] 607 | | _ => () [INFO] [stderr] 608 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 600 | if let &Json::Object(ref m) = x.node() { [INFO] [stderr] 601 | match m.get(self.name) { [INFO] [stderr] 602 | Some(e) => f(&x.descendant(e)), [INFO] [stderr] 603 | _ => () [INFO] [stderr] 604 | } [INFO] [stderr] 605 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:600:13 [INFO] [stderr] | [INFO] [stderr] 600 | / match x.node() { [INFO] [stderr] 601 | | &Json::Object(ref m) => { [INFO] [stderr] 602 | | match m.get(self.name) { [INFO] [stderr] 603 | | Some(e) => f(&x.descendant(e)), [INFO] [stderr] ... | [INFO] [stderr] 607 | | _ => () [INFO] [stderr] 608 | | } [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] 600 | match *x.node() { [INFO] [stderr] 601 | Json::Object(ref m) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:602:21 [INFO] [stderr] | [INFO] [stderr] 602 | / match m.get(self.name) { [INFO] [stderr] 603 | | Some(e) => f(&x.descendant(e)), [INFO] [stderr] 604 | | _ => () [INFO] [stderr] 605 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Some(e) = m.get(self.name) { f(&x.descendant(e)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:621:13 [INFO] [stderr] | [INFO] [stderr] 621 | / match x.node() { [INFO] [stderr] 622 | | &Json::Object(ref m) => { [INFO] [stderr] 623 | | for (_,child) in m.iter() { [INFO] [stderr] 624 | | f(&x.descendant(child)) [INFO] [stderr] ... | [INFO] [stderr] 632 | | _ => () [INFO] [stderr] 633 | | } [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] 621 | match *x.node() { [INFO] [stderr] 622 | Json::Object(ref m) => { [INFO] [stderr] 623 | for (_,child) in m.iter() { [INFO] [stderr] 624 | f(&x.descendant(child)) [INFO] [stderr] 625 | } [INFO] [stderr] 626 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:647:13 [INFO] [stderr] | [INFO] [stderr] 647 | / match x.parent() { [INFO] [stderr] 648 | | Some(&p) => { [INFO] [stderr] 649 | | let j = p.node(); [INFO] [stderr] 650 | | if !seen.contains(&(j as *const Json)) { [INFO] [stderr] ... | [INFO] [stderr] 655 | | _ => () [INFO] [stderr] 656 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 647 | if let Some(&p) = x.parent() { [INFO] [stderr] 648 | let j = p.node(); [INFO] [stderr] 649 | if !seen.contains(&(j as *const Json)) { [INFO] [stderr] 650 | seen.insert(j as *const Json); [INFO] [stderr] 651 | f(&p) [INFO] [stderr] 652 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:672:9 [INFO] [stderr] | [INFO] [stderr] 672 | / match j { [INFO] [stderr] 673 | | &Json::Object(ref m) => { [INFO] [stderr] 674 | | for (_,c) in m.iter() { [INFO] [stderr] 675 | | let inner = input.descendant(c); [INFO] [stderr] ... | [INFO] [stderr] 687 | | _ => () [INFO] [stderr] 688 | | } [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] 672 | match *j { [INFO] [stderr] 673 | Json::Object(ref m) => { [INFO] [stderr] 674 | for (_,c) in m.iter() { [INFO] [stderr] 675 | let inner = input.descendant(c); [INFO] [stderr] 676 | f(&inner); [INFO] [stderr] 677 | descend_helper(&inner, seen, |x| f(x)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:711:5 [INFO] [stderr] | [INFO] [stderr] 711 | / loop { [INFO] [stderr] 712 | | match current.parent() { [INFO] [stderr] 713 | | Some(x) => { [INFO] [stderr] 714 | | let j = x.node(); [INFO] [stderr] ... | [INFO] [stderr] 724 | | } [INFO] [stderr] 725 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(x) = current.parent() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:1002:1 [INFO] [stderr] | [INFO] [stderr] 1002 | / pub fn key<'a>(name: &'a str) -> Key<'a, Node> { [INFO] [stderr] 1003 | | node().key(name) [INFO] [stderr] 1004 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `jlens`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:320:13 [INFO] [stderr] | [INFO] [stderr] 320 | / match x.node() { [INFO] [stderr] 321 | | &Json::Object(..) => f(x), [INFO] [stderr] 322 | | _ => () [INFO] [stderr] 323 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Object(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:320:13 [INFO] [stderr] | [INFO] [stderr] 320 | / match x.node() { [INFO] [stderr] 321 | | &Json::Object(..) => f(x), [INFO] [stderr] 322 | | _ => () [INFO] [stderr] 323 | | } [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] 320 | match *x.node() { [INFO] [stderr] 321 | Json::Object(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | / match x.node() { [INFO] [stderr] 337 | | &Json::Array(..) => f(x), [INFO] [stderr] 338 | | _ => () [INFO] [stderr] 339 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Array(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:336:13 [INFO] [stderr] | [INFO] [stderr] 336 | / match x.node() { [INFO] [stderr] 337 | | &Json::Array(..) => f(x), [INFO] [stderr] 338 | | _ => () [INFO] [stderr] 339 | | } [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] 336 | match *x.node() { [INFO] [stderr] 337 | Json::Array(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:366:13 [INFO] [stderr] | [INFO] [stderr] 366 | / match x.node() { [INFO] [stderr] 367 | | &Json::String(..) => f(x), [INFO] [stderr] 368 | | _ => () [INFO] [stderr] 369 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::String(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:366:13 [INFO] [stderr] | [INFO] [stderr] 366 | / match x.node() { [INFO] [stderr] 367 | | &Json::String(..) => f(x), [INFO] [stderr] 368 | | _ => () [INFO] [stderr] 369 | | } [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] 366 | match *x.node() { [INFO] [stderr] 367 | Json::String(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:378:13 [INFO] [stderr] | [INFO] [stderr] 378 | / match x.node() { [INFO] [stderr] 379 | | &Json::String(ref s) if self.comp == *s => f(x), [INFO] [stderr] 380 | | _ => () [INFO] [stderr] 381 | | } [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] 378 | match *x.node() { [INFO] [stderr] 379 | Json::String(ref s) if self.comp == *s => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | / match x.node() { [INFO] [stderr] 409 | | &Json::Boolean(..) => f(x), [INFO] [stderr] 410 | | _ => () [INFO] [stderr] 411 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Boolean(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:408:13 [INFO] [stderr] | [INFO] [stderr] 408 | / match x.node() { [INFO] [stderr] 409 | | &Json::Boolean(..) => f(x), [INFO] [stderr] 410 | | _ => () [INFO] [stderr] 411 | | } [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] 408 | match *x.node() { [INFO] [stderr] 409 | Json::Boolean(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:420:13 [INFO] [stderr] | [INFO] [stderr] 420 | / match x.node() { [INFO] [stderr] 421 | | &Json::Boolean(b) if b == self.comp => f(x), [INFO] [stderr] 422 | | _ => () [INFO] [stderr] 423 | | } [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] 420 | match *x.node() { [INFO] [stderr] 421 | Json::Boolean(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:450:13 [INFO] [stderr] | [INFO] [stderr] 450 | / match x.node() { [INFO] [stderr] 451 | | &Json::U64(..) => f(x), [INFO] [stderr] 452 | | _ => () [INFO] [stderr] 453 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::U64(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:450:13 [INFO] [stderr] | [INFO] [stderr] 450 | / match x.node() { [INFO] [stderr] 451 | | &Json::U64(..) => f(x), [INFO] [stderr] 452 | | _ => () [INFO] [stderr] 453 | | } [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] 450 | match *x.node() { [INFO] [stderr] 451 | Json::U64(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:462:13 [INFO] [stderr] | [INFO] [stderr] 462 | / match x.node() { [INFO] [stderr] 463 | | &Json::U64(b) if b == self.comp => f(x), [INFO] [stderr] 464 | | _ => () [INFO] [stderr] 465 | | } [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] 462 | match *x.node() { [INFO] [stderr] 463 | Json::U64(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:492:13 [INFO] [stderr] | [INFO] [stderr] 492 | / match x.node() { [INFO] [stderr] 493 | | &Json::I64(..) => f(x), [INFO] [stderr] 494 | | _ => () [INFO] [stderr] 495 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::I64(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:492:13 [INFO] [stderr] | [INFO] [stderr] 492 | / match x.node() { [INFO] [stderr] 493 | | &Json::I64(..) => f(x), [INFO] [stderr] 494 | | _ => () [INFO] [stderr] 495 | | } [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] 492 | match *x.node() { [INFO] [stderr] 493 | Json::I64(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:504:13 [INFO] [stderr] | [INFO] [stderr] 504 | / match x.node() { [INFO] [stderr] 505 | | &Json::I64(b) if b == self.comp => f(x), [INFO] [stderr] 506 | | _ => () [INFO] [stderr] 507 | | } [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] 504 | match *x.node() { [INFO] [stderr] 505 | Json::I64(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:534:13 [INFO] [stderr] | [INFO] [stderr] 534 | / match x.node() { [INFO] [stderr] 535 | | &Json::F64(..) => f(x), [INFO] [stderr] 536 | | _ => () [INFO] [stderr] 537 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::F64(..) = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:534:13 [INFO] [stderr] | [INFO] [stderr] 534 | / match x.node() { [INFO] [stderr] 535 | | &Json::F64(..) => f(x), [INFO] [stderr] 536 | | _ => () [INFO] [stderr] 537 | | } [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] 534 | match *x.node() { [INFO] [stderr] 535 | Json::F64(..) => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:546:13 [INFO] [stderr] | [INFO] [stderr] 546 | / match x.node() { [INFO] [stderr] 547 | | &Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] 548 | | _ => () [INFO] [stderr] 549 | | } [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] 546 | match *x.node() { [INFO] [stderr] 547 | Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/lib.rs:547:34 [INFO] [stderr] | [INFO] [stderr] 547 | &Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider comparing them within some error: `(b - self.comp).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/lib.rs:547:34 [INFO] [stderr] | [INFO] [stderr] 547 | &Json::F64(b) if b == self.comp => f(x), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:562:13 [INFO] [stderr] | [INFO] [stderr] 562 | / match x.node() { [INFO] [stderr] 563 | | &Json::Null => f(x), [INFO] [stderr] 564 | | _ => () [INFO] [stderr] 565 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Json::Null = x.node() { f(x) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:562:13 [INFO] [stderr] | [INFO] [stderr] 562 | / match x.node() { [INFO] [stderr] 563 | | &Json::Null => f(x), [INFO] [stderr] 564 | | _ => () [INFO] [stderr] 565 | | } [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] 562 | match *x.node() { [INFO] [stderr] 563 | Json::Null => f(x), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:579:13 [INFO] [stderr] | [INFO] [stderr] 579 | / match x.node() { [INFO] [stderr] 580 | | &Json::Array(ref v) => { [INFO] [stderr] 581 | | if v.len() > self.index { [INFO] [stderr] 582 | | f(&x.descendant(&v[self.index])) [INFO] [stderr] ... | [INFO] [stderr] 585 | | _ => () [INFO] [stderr] 586 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 579 | if let &Json::Array(ref v) = x.node() { [INFO] [stderr] 580 | if v.len() > self.index { [INFO] [stderr] 581 | f(&x.descendant(&v[self.index])) [INFO] [stderr] 582 | } [INFO] [stderr] 583 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:579:13 [INFO] [stderr] | [INFO] [stderr] 579 | / match x.node() { [INFO] [stderr] 580 | | &Json::Array(ref v) => { [INFO] [stderr] 581 | | if v.len() > self.index { [INFO] [stderr] 582 | | f(&x.descendant(&v[self.index])) [INFO] [stderr] ... | [INFO] [stderr] 585 | | _ => () [INFO] [stderr] 586 | | } [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] 579 | match *x.node() { [INFO] [stderr] 580 | Json::Array(ref v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:600:13 [INFO] [stderr] | [INFO] [stderr] 600 | / match x.node() { [INFO] [stderr] 601 | | &Json::Object(ref m) => { [INFO] [stderr] 602 | | match m.get(self.name) { [INFO] [stderr] 603 | | Some(e) => f(&x.descendant(e)), [INFO] [stderr] ... | [INFO] [stderr] 607 | | _ => () [INFO] [stderr] 608 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 600 | if let &Json::Object(ref m) = x.node() { [INFO] [stderr] 601 | match m.get(self.name) { [INFO] [stderr] 602 | Some(e) => f(&x.descendant(e)), [INFO] [stderr] 603 | _ => () [INFO] [stderr] 604 | } [INFO] [stderr] 605 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:600:13 [INFO] [stderr] | [INFO] [stderr] 600 | / match x.node() { [INFO] [stderr] 601 | | &Json::Object(ref m) => { [INFO] [stderr] 602 | | match m.get(self.name) { [INFO] [stderr] 603 | | Some(e) => f(&x.descendant(e)), [INFO] [stderr] ... | [INFO] [stderr] 607 | | _ => () [INFO] [stderr] 608 | | } [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] 600 | match *x.node() { [INFO] [stderr] 601 | Json::Object(ref m) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:602:21 [INFO] [stderr] | [INFO] [stderr] 602 | / match m.get(self.name) { [INFO] [stderr] 603 | | Some(e) => f(&x.descendant(e)), [INFO] [stderr] 604 | | _ => () [INFO] [stderr] 605 | | } [INFO] [stderr] | |_____________________^ help: try this: `if let Some(e) = m.get(self.name) { f(&x.descendant(e)) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:621:13 [INFO] [stderr] | [INFO] [stderr] 621 | / match x.node() { [INFO] [stderr] 622 | | &Json::Object(ref m) => { [INFO] [stderr] 623 | | for (_,child) in m.iter() { [INFO] [stderr] 624 | | f(&x.descendant(child)) [INFO] [stderr] ... | [INFO] [stderr] 632 | | _ => () [INFO] [stderr] 633 | | } [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] 621 | match *x.node() { [INFO] [stderr] 622 | Json::Object(ref m) => { [INFO] [stderr] 623 | for (_,child) in m.iter() { [INFO] [stderr] 624 | f(&x.descendant(child)) [INFO] [stderr] 625 | } [INFO] [stderr] 626 | }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:647:13 [INFO] [stderr] | [INFO] [stderr] 647 | / match x.parent() { [INFO] [stderr] 648 | | Some(&p) => { [INFO] [stderr] 649 | | let j = p.node(); [INFO] [stderr] 650 | | if !seen.contains(&(j as *const Json)) { [INFO] [stderr] ... | [INFO] [stderr] 655 | | _ => () [INFO] [stderr] 656 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 647 | if let Some(&p) = x.parent() { [INFO] [stderr] 648 | let j = p.node(); [INFO] [stderr] 649 | if !seen.contains(&(j as *const Json)) { [INFO] [stderr] 650 | seen.insert(j as *const Json); [INFO] [stderr] 651 | f(&p) [INFO] [stderr] 652 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/lib.rs:672:9 [INFO] [stderr] | [INFO] [stderr] 672 | / match j { [INFO] [stderr] 673 | | &Json::Object(ref m) => { [INFO] [stderr] 674 | | for (_,c) in m.iter() { [INFO] [stderr] 675 | | let inner = input.descendant(c); [INFO] [stderr] ... | [INFO] [stderr] 687 | | _ => () [INFO] [stderr] 688 | | } [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] 672 | match *j { [INFO] [stderr] 673 | Json::Object(ref m) => { [INFO] [stderr] 674 | for (_,c) in m.iter() { [INFO] [stderr] 675 | let inner = input.descendant(c); [INFO] [stderr] 676 | f(&inner); [INFO] [stderr] 677 | descend_helper(&inner, seen, |x| f(x)) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/lib.rs:711:5 [INFO] [stderr] | [INFO] [stderr] 711 | / loop { [INFO] [stderr] 712 | | match current.parent() { [INFO] [stderr] 713 | | Some(x) => { [INFO] [stderr] 714 | | let j = x.node(); [INFO] [stderr] ... | [INFO] [stderr] 724 | | } [INFO] [stderr] 725 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(x) = current.parent() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/lib.rs:1002:1 [INFO] [stderr] | [INFO] [stderr] 1002 | / pub fn key<'a>(name: &'a str) -> Key<'a, Node> { [INFO] [stderr] 1003 | | node().key(name) [INFO] [stderr] 1004 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `jlens`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "b67d12fd48ab5432de46b29842f6a08013d81b10eda1ebbe9c310faf372c5b2b"` [INFO] running `"docker" "rm" "-f" "b67d12fd48ab5432de46b29842f6a08013d81b10eda1ebbe9c310faf372c5b2b"` [INFO] [stdout] b67d12fd48ab5432de46b29842f6a08013d81b10eda1ebbe9c310faf372c5b2b