[INFO] cloning repository https://github.com/jimblandy/fxsnapshot [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jimblandy/fxsnapshot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjimblandy%2Ffxsnapshot", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjimblandy%2Ffxsnapshot'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 878370cec5e5a414f13af9bac28a9a252363507a [INFO] linting jimblandy/fxsnapshot against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjimblandy%2Ffxsnapshot" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jimblandy/fxsnapshot [INFO] finished tweaking git repo https://github.com/jimblandy/fxsnapshot [INFO] tweaked toml for git repo https://github.com/jimblandy/fxsnapshot written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jimblandy/fxsnapshot on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/jimblandy/fxsnapshot already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating git repository `https://github.com/sfackler/rust-fallible-iterator.git` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pb-rs v0.9.1 [INFO] [stderr] Downloaded docopt v1.1.1 [INFO] [stderr] Downloaded string_cache v0.7.5 [INFO] [stderr] Downloaded quick-protobuf v0.8.0 [INFO] [stderr] Downloaded string_cache_codegen v0.4.4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 52934b57ace2df323f31cfe1f1eb86bebac0c948fa4fabf3fd7cbca67b7e91da [INFO] running `Command { std: "docker" "start" "-a" "52934b57ace2df323f31cfe1f1eb86bebac0c948fa4fabf3fd7cbca67b7e91da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "52934b57ace2df323f31cfe1f1eb86bebac0c948fa4fabf3fd7cbca67b7e91da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "52934b57ace2df323f31cfe1f1eb86bebac0c948fa4fabf3fd7cbca67b7e91da", kill_on_drop: false }` [INFO] [stdout] 52934b57ace2df323f31cfe1f1eb86bebac0c948fa4fabf3fd7cbca67b7e91da [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] de2ced2ebc35432de348227867b377560defe252893fa61b97d4178aa73d6127 [INFO] running `Command { std: "docker" "start" "-a" "de2ced2ebc35432de348227867b377560defe252893fa61b97d4178aa73d6127", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling autocfg v0.1.8 [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling proc-macro2 v1.0.40 [INFO] [stderr] Compiling quote v1.0.20 [INFO] [stderr] Compiling unicode-ident v1.0.1 [INFO] [stderr] Compiling syn v1.0.98 [INFO] [stderr] Compiling typenum v1.15.0 [INFO] [stderr] Compiling siphasher v0.2.3 [INFO] [stderr] Compiling serde_derive v1.0.137 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling string_cache_shared v0.3.0 [INFO] [stderr] Compiling serde v1.0.137 [INFO] [stderr] Compiling regex-syntax v0.6.26 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling unicode-width v0.1.9 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_jitter v0.1.4 [INFO] [stderr] Compiling phf_shared v0.7.24 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling humantime v1.3.0 [INFO] [stderr] Compiling textwrap v0.11.0 [INFO] [stderr] Compiling ansi_term v0.12.1 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling strsim v0.8.0 [INFO] [stderr] Compiling fake-simd v0.1.2 [INFO] [stderr] Compiling fixedbitset v0.1.9 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling new_debug_unreachable v1.0.4 [INFO] [stderr] Compiling ordermap v0.3.5 [INFO] [stderr] Compiling term v0.4.6 [INFO] [stderr] Compiling vec_map v0.8.2 [INFO] [stderr] Compiling termcolor v1.1.3 [INFO] [stderr] Compiling itertools v0.8.2 [INFO] [stderr] Compiling ena v0.11.0 [INFO] [stderr] Compiling lalrpop-util v0.16.3 [INFO] [stderr] Compiling bit-set v0.5.2 [INFO] [stderr] Compiling diff v0.1.12 [INFO] [stderr] Compiling anyhow v1.0.58 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling memchr v1.0.2 [INFO] [stderr] Compiling clap v2.34.0 [INFO] [stderr] Compiling ascii-canvas v1.0.0 [INFO] [stderr] Compiling petgraph v0.4.13 [INFO] [stderr] Compiling nom v3.2.1 [INFO] [stderr] Checking quick-protobuf v0.8.0 [INFO] [stderr] Checking fallible-iterator v0.2.0 (https://github.com/sfackler/rust-fallible-iterator.git?rev=11ea3bf0e6ad2bc4f4fe220d6c3332942e5dfa35#11ea3bf0) [INFO] [stderr] Compiling generic-array v0.12.4 [INFO] [stderr] Checking memmap v0.6.2 [INFO] [stderr] Compiling block-buffer v0.7.3 [INFO] [stderr] Compiling digest v0.8.1 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Compiling sha2 v0.8.2 [INFO] [stderr] Compiling string_cache_codegen v0.4.4 [INFO] [stderr] Compiling string_cache v0.7.5 [INFO] [stderr] Compiling regex v1.5.6 [INFO] [stderr] Compiling thiserror-impl v1.0.31 [INFO] [stderr] Compiling env_logger v0.7.1 [INFO] [stderr] Checking thiserror v1.0.31 [INFO] [stderr] Compiling pb-rs v0.9.1 [INFO] [stderr] Compiling docopt v1.1.1 [INFO] [stderr] Compiling lalrpop v0.16.3 [INFO] [stderr] Compiling fxsnapshot v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: bound is defined in more than one place [INFO] [stdout] --> src/query/test_utils.rs:42:19 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn lambda<'a, F: 'a>(id: usize, formals: F, body: Box) -> Box [INFO] [stdout] | ^ [INFO] [stdout] 43 | where [INFO] [stdout] 44 | F: IntoIterator, [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#multiple_bound_locations [INFO] [stdout] = note: `#[warn(clippy::multiple_bound_locations)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/dump/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct CoreDump<'buffer> { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub timestamp: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FrameId` is never constructed [INFO] [stdout] --> src/dump/mod.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct FrameId(u64); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/dump/mod.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | assert!(slice.len() % size == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `slice.len().is_multiple_of(size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/query/breadth_first.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 55 | let mut entry = match self.visited.get(&id) { [INFO] [stdout] | _________________________^ [INFO] [stdout] 56 | | Some(e) => e, // We have visited this node, or it is a start node. [INFO] [stdout] 57 | | None => return None, // We have never encountered this node. [INFO] [stdout] 58 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.visited.get(&id)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/query/fun.rs:390:31 [INFO] [stdout] | [INFO] [stdout] 390 | let parent_captured = replace(&mut self.captured, HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.captured)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/query/fun.rs:470:51 [INFO] [stdout] | [INFO] [stdout] 470 | let mut captured = Vec::from_iter(captured.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:152:20 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 470 - let mut captured = Vec::from_iter(captured.into_iter()); [INFO] [stdout] 470 + let mut captured = Vec::from_iter(captured); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/query/run.rs:162:56 [INFO] [stdout] | [INFO] [stdout] 162 | Predicate::Regex(regex) => Plan(Box::new(Regex((&**regex).clone()))), [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `(**regex)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/query/run.rs:223:27 [INFO] [stdout] | [INFO] [stdout] 223 | vec.splice(i..=i, v.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/alloc/src/vec/mod.rs:4087:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 223 - vec.splice(i..=i, v.into_iter()); [INFO] [stdout] 223 + vec.splice(i..=i, v); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/query/run.rs:497:28 [INFO] [stdout] | [INFO] [stdout] 497 | Ok(self.0.is_match(&string)) [INFO] [stdout] | ^^^^^^^ help: change this to: `string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/run.rs:564:20 [INFO] [stdout] | [INFO] [stdout] 564 | if k == !J::CONSONANT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `k != J::CONSONANT` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/query/run.rs:583:9 [INFO] [stdout] | [INFO] [stdout] 583 | Ok(stream.clone().any(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 583 - Ok(stream.clone().any(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] 583 + stream.clone().any(|element| self.0.test(&element, act, cx)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/query/run.rs:592:9 [INFO] [stdout] | [INFO] [stdout] 592 | Ok(stream.clone().all(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 592 - Ok(stream.clone().all(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] 592 + stream.clone().all(|element| self.0.test(&element, act, cx)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: local variable doesn't need to be boxed here [INFO] [stdout] --> src/query/test_utils.rs:30:18 [INFO] [stdout] | [INFO] [stdout] 30 | pub fn expr_pred(expr: Box) -> Box { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stdout] = note: `#[warn(clippy::boxed_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: local variable doesn't need to be boxed here [INFO] [stdout] --> src/query/test_utils.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn and1(pred: Box) -> Box { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/dump/mod.rs:27:9 [INFO] [stdout] | [INFO] [stdout] 22 | pub struct CoreDump<'buffer> { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 27 | pub timestamp: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FrameId` is never constructed [INFO] [stdout] --> src/dump/mod.rs:72:12 [INFO] [stdout] | [INFO] [stdout] 72 | pub struct FrameId(u64); [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/dump/mod.rs:272:13 [INFO] [stdout] | [INFO] [stdout] 272 | assert!(slice.len() % size == 0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `slice.len().is_multiple_of(size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/query/breadth_first.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 55 | let mut entry = match self.visited.get(&id) { [INFO] [stdout] | _________________________^ [INFO] [stdout] 56 | | Some(e) => e, // We have visited this node, or it is a start node. [INFO] [stdout] 57 | | None => return None, // We have never encountered this node. [INFO] [stdout] 58 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.visited.get(&id)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` [INFO] [stdout] --> src/query/fun.rs:390:31 [INFO] [stdout] | [INFO] [stdout] 390 | let parent_captured = replace(&mut self.captured, HashSet::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.captured)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mem_replace_with_default [INFO] [stdout] = note: `#[warn(clippy::mem_replace_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/query/fun.rs:470:51 [INFO] [stdout] | [INFO] [stdout] 470 | let mut captured = Vec::from_iter(captured.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/collect.rs:152:20 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 470 - let mut captured = Vec::from_iter(captured.into_iter()); [INFO] [stdout] 470 + let mut captured = Vec::from_iter(captured); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/query/mod.rs:63:45 [INFO] [stdout] | [INFO] [stdout] 63 | let mut expr = QueryParser::new().parse(&query_text)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `query_text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/query/run.rs:162:56 [INFO] [stdout] | [INFO] [stdout] 162 | Predicate::Regex(regex) => Plan(Box::new(Regex((&**regex).clone()))), [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `(**regex)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/query/run.rs:223:27 [INFO] [stdout] | [INFO] [stdout] 223 | vec.splice(i..=i, v.into_iter()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/alloc/src/vec/mod.rs:4087:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 223 - vec.splice(i..=i, v.into_iter()); [INFO] [stdout] 223 + vec.splice(i..=i, v); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/dump/mod.rs:153:56 [INFO] [stdout] | [INFO] [stdout] 153 | pub fn nodes<'a>(&'a self) -> impl Iterator> + Clone + 'a { [INFO] [stdout] | -- ^^^^^^^^^^^^^^ -- the same lifetime is named here [INFO] [stdout] | | | [INFO] [stdout] | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 153 | pub fn nodes<'a>(&'a self) -> impl Iterator> + Clone + 'a { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/fun.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | fn name(&self) -> Cow { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 172 | fn name(&self) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/run.rs:408:13 [INFO] [stdout] | [INFO] [stdout] 408 | fn name(&self) -> Cow { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 408 | fn name(&self) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/value.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | fn name(&self) -> Cow; [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 53 | fn name(&self) -> Cow<'_, str>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/value.rs:324:13 [INFO] [stdout] | [INFO] [stdout] 324 | fn name(&self) -> Cow { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 324 | fn name(&self) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/query/run.rs:497:28 [INFO] [stdout] | [INFO] [stdout] 497 | Ok(self.0.is_match(&string)) [INFO] [stdout] | ^^^^^^^ help: change this to: `string` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/query/run.rs:564:20 [INFO] [stdout] | [INFO] [stdout] 564 | if k == !J::CONSONANT { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `k != J::CONSONANT` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/query/run.rs:583:9 [INFO] [stdout] | [INFO] [stdout] 583 | Ok(stream.clone().any(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 583 - Ok(stream.clone().any(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] 583 + stream.clone().any(|element| self.0.test(&element, act, cx)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/query/run.rs:592:9 [INFO] [stdout] | [INFO] [stdout] 592 | Ok(stream.clone().all(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 592 - Ok(stream.clone().all(|element| self.0.test(&element, act, cx))?) [INFO] [stdout] 592 + stream.clone().all(|element| self.0.test(&element, act, cx)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/query/mod.rs:63:45 [INFO] [stdout] | [INFO] [stdout] 63 | let mut expr = QueryParser::new().parse(&query_text)?; [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `query_text` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/dump/mod.rs:153:56 [INFO] [stdout] | [INFO] [stdout] 153 | pub fn nodes<'a>(&'a self) -> impl Iterator> + Clone + 'a { [INFO] [stdout] | -- ^^^^^^^^^^^^^^ -- the same lifetime is named here [INFO] [stdout] | | | [INFO] [stdout] | the lifetime is named here the same lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 153 | pub fn nodes<'a>(&'a self) -> impl Iterator> + Clone + 'a { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/fun.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | fn name(&self) -> Cow { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 172 | fn name(&self) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/run.rs:408:13 [INFO] [stdout] | [INFO] [stdout] 408 | fn name(&self) -> Cow { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 408 | fn name(&self) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/value.rs:53:13 [INFO] [stdout] | [INFO] [stdout] 53 | fn name(&self) -> Cow; [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 53 | fn name(&self) -> Cow<'_, str>; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/query/value.rs:324:13 [INFO] [stdout] | [INFO] [stdout] 324 | fn name(&self) -> Cow { [INFO] [stdout] | ^^^^^ ^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 324 | fn name(&self) -> Cow<'_, str> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.59s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lalrpop v0.16.3, nom v3.2.1 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "de2ced2ebc35432de348227867b377560defe252893fa61b97d4178aa73d6127", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "de2ced2ebc35432de348227867b377560defe252893fa61b97d4178aa73d6127", kill_on_drop: false }` [INFO] [stdout] de2ced2ebc35432de348227867b377560defe252893fa61b97d4178aa73d6127