[INFO] fetching crate inktree 0.1.0... [INFO] linting inktree-0.1.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate inktree 0.1.0 into /workspace/builds/worker-6-tc1/source [INFO] started tweaking crates.io crate inktree 0.1.0 [INFO] finished tweaking crates.io crate inktree 0.1.0 [INFO] tweaked toml for crates.io crate inktree 0.1.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate inktree 0.1.0 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 crates.io crate inktree 0.1.0 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded strum v0.27.2 [INFO] [stderr] Downloaded str_indices v0.4.4 [INFO] [stderr] Downloaded strum_macros v0.27.2 [INFO] [stderr] Downloaded snafu-derive v0.8.9 [INFO] [stderr] Downloaded cfg-if v1.0.3 [INFO] [stderr] Downloaded sptr v0.3.2 [INFO] [stderr] Downloaded unicode-ident v1.0.19 [INFO] [stderr] Downloaded fxhash v0.2.1 [INFO] [stderr] Downloaded proc-macro2 v1.0.101 [INFO] [stderr] Downloaded lock_api v0.4.13 [INFO] [stderr] Downloaded text-size v1.1.1 [INFO] [stderr] Downloaded find-msvc-tools v0.1.1 [INFO] [stderr] Downloaded parking_lot_core v0.9.11 [INFO] [stderr] Downloaded lasso v0.7.3 [INFO] [stderr] Downloaded cc v1.2.36 [INFO] [stderr] Downloaded memchr v2.7.5 [INFO] [stderr] Downloaded indexmap v2.11.1 [INFO] [stderr] Downloaded ropey v1.6.1 [INFO] [stderr] Downloaded cstree v0.12.2 [INFO] [stderr] Downloaded chumsky v0.11.0 [INFO] [stderr] Downloaded zerocopy-derive v0.8.27 [INFO] [stderr] Downloaded derive_more v2.0.1 [INFO] [stderr] Downloaded bitflags v2.9.4 [INFO] [stderr] Downloaded zerocopy v0.8.27 [INFO] [stderr] Downloaded derive_more-impl v2.0.1 [INFO] [stderr] Downloaded syn v2.0.106 [INFO] [stderr] Downloaded parking_lot v0.12.4 [INFO] [stderr] Downloaded triomphe v0.1.14 [INFO] [stderr] Downloaded regex-syntax v0.7.5 [INFO] [stderr] Downloaded enum_dispatch v0.3.13 [INFO] [stderr] Downloaded regex-syntax v0.8.6 [INFO] [stderr] Downloaded psm v0.1.26 [INFO] [stderr] Downloaded stacker v0.1.21 [INFO] [stderr] Downloaded dashmap v6.1.0 [INFO] [stderr] Downloaded redox_syscall v0.5.17 [INFO] [stderr] Downloaded snafu v0.8.9 [INFO] [stderr] Downloaded regex-automata v0.3.9 [INFO] [stderr] Downloaded libc v0.2.175 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 2e59568eac0a932ad1daa70d1c6428d7e171aa6e9eb76667638e6c27bdd80726 [INFO] running `Command { std: "docker" "start" "-a" "2e59568eac0a932ad1daa70d1c6428d7e171aa6e9eb76667638e6c27bdd80726", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2e59568eac0a932ad1daa70d1c6428d7e171aa6e9eb76667638e6c27bdd80726", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e59568eac0a932ad1daa70d1c6428d7e171aa6e9eb76667638e6c27bdd80726", kill_on_drop: false }` [INFO] [stdout] 2e59568eac0a932ad1daa70d1c6428d7e171aa6e9eb76667638e6c27bdd80726 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 8552e1de2733722a1670e13cff92a36101a99c192f064512b132e33975c141b6 [INFO] running `Command { std: "docker" "start" "-a" "8552e1de2733722a1670e13cff92a36101a99c192f064512b132e33975c141b6", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling unicode-ident v1.0.19 [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Checking cfg-if v1.0.3 [INFO] [stderr] Compiling find-msvc-tools v0.1.1 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling cc v1.2.36 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Checking foldhash v0.1.5 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Checking triomphe v0.1.14 [INFO] [stderr] Checking indexmap v2.11.1 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking text-size v1.1.1 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking str_indices v0.4.4 [INFO] [stderr] Compiling psm v0.1.26 [INFO] [stderr] Compiling stacker v0.1.21 [INFO] [stderr] Checking sptr v0.3.2 [INFO] [stderr] Checking ropey v1.6.1 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Checking regex-syntax v0.8.6 [INFO] [stderr] Checking chumsky v0.11.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking lasso v0.7.3 [INFO] [stderr] Checking cstree v0.12.2 [INFO] [stderr] Compiling derivative v2.2.0 [INFO] [stderr] Compiling snafu-derive v0.8.9 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Checking snafu v0.8.9 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Checking inktree v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/derive/attributes/rule.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | dsl: dsl, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `dsl` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/derive/attributes/rule.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | dsl: dsl, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `dsl` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/derive/attributes/static_token.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 95 | kind: kind, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `kind` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/derive/attributes/static_token.rs:95:21 [INFO] [stdout] | [INFO] [stdout] 95 | kind: kind, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `kind` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/derive/parser/dsl.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | CallShape::<'a> { callee, args: args } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/derive/parser/dsl.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | CallShape::<'a> { callee, args: args } [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `args` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/incremental/document.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | Self { cache: cache } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `cache` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/incremental/document.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | Self { cache: cache } [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `cache` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `as_*` usually take `self` by reference or `self` by mutable reference [INFO] [stdout] --> src/chumsky_ext/parser.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `as_*` usually take `self` by reference or `self` by mutable reference [INFO] [stdout] --> src/chumsky_ext/parser.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `as_*` usually take `self` by reference or `self` by mutable reference [INFO] [stdout] --> src/chumsky_ext/parser.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.and_then(|x| Ok(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/chumsky_ext/parser.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | / input.parse(&self.inner).and_then(|slice| { [INFO] [stdout] 227 | | let extra = input.state(); [INFO] [stdout] 228 | | Builder::<'cache, 'interner, 'borrow, Sy>::token(extra, self.kind, slice); [INFO] [stdout] 229 | | Ok(()) [INFO] [stdout] 230 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 226 ~ input.parse(&self.inner).map(|slice| { [INFO] [stdout] 227 | let extra = input.state(); [INFO] [stdout] 228 | Builder::<'cache, 'interner, 'borrow, Sy>::token(extra, self.kind, slice); [INFO] [stdout] 229 ~ () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.and_then(|x| Ok(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/chumsky_ext/parser.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | / input.parse(&self.inner).and_then(|checkpoint| { [INFO] [stdout] 265 | | let extra = input.state(); [INFO] [stdout] 266 | | Builder::start_node_at(extra, checkpoint, self.kind); [INFO] [stdout] 267 | | Builder::finish_node(extra); [INFO] [stdout] 268 | | Ok(()) [INFO] [stdout] 269 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 264 ~ input.parse(&self.inner).map(|checkpoint| { [INFO] [stdout] 265 | let extra = input.state(); [INFO] [stdout] 266 | Builder::start_node_at(extra, checkpoint, self.kind); [INFO] [stdout] 267 | Builder::finish_node(extra); [INFO] [stdout] 268 ~ () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PhantomData` which implements the `Copy` trait [INFO] [stdout] --> src/chumsky_ext/parser.rs:286:22 [INFO] [stdout] | [INFO] [stdout] 286 | _output: self._output.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self._output` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/derive/attributes/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod attributes; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> src/derive/attributes/attributes.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/attributes.rs:46:57 [INFO] [stdout] | [INFO] [stdout] 46 | if let Ok(kind) = SyntaxAttributeKind::from_str(&kind.to_string().as_str()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `kind.to_string().as_str()` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/attributes.rs:47:31 [INFO] [stdout] | [INFO] [stdout] 47 | Ok(kind.from_meta(&meta, name)?) [INFO] [stdout] | ^^^^^ help: change this to: `meta` [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: useless conversion to the same type: `derive::parser::dsl::DslExpr` [INFO] [stdout] --> src/derive/attributes/node.rs:27:19 [INFO] [stdout] | [INFO] [stdout] 27 | let dsl = dsl_parser() [INFO] [stdout] | ___________________^ [INFO] [stdout] 28 | | .parse(&tokens) [INFO] [stdout] 29 | | .into_result() [INFO] [stdout] 30 | | .expect("parser error todo") [INFO] [stdout] 31 | | .into(); [INFO] [stdout] | |___________________^ [INFO] [stdout] | [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 `.into()` [INFO] [stdout] | [INFO] [stdout] 27 ~ let dsl = dsl_parser() [INFO] [stdout] 28 + .parse(&tokens) [INFO] [stdout] 29 + .into_result() [INFO] [stdout] 30 ~ .expect("parser error todo"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::node::Node` [INFO] [stdout] --> src/derive/attributes/node.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | Ok(Self::from_string( [INFO] [stdout] | ____________^ [INFO] [stdout] 40 | | input, [INFO] [stdout] 41 | | name.expect("todo name argument is option error handling"), [INFO] [stdout] 42 | | )? [INFO] [stdout] 43 | | .into()) [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 39 ~ Ok(Self::from_string( [INFO] [stdout] 40 + input, [INFO] [stdout] 41 + name.expect("todo name argument is option error handling"), [INFO] [stdout] 42 ~ )?) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/rule.rs:193:54 [INFO] [stdout] | [INFO] [stdout] 193 | Punctuated::parse_separated_nonempty(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [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: useless conversion to the same type: `derive::parser::dsl::DslExpr` [INFO] [stdout] --> src/derive/attributes/rule.rs:210:19 [INFO] [stdout] | [INFO] [stdout] 210 | let dsl = crate::derive::parser::dsl_parser() [INFO] [stdout] | ___________________^ [INFO] [stdout] 211 | | .parse(&tokens) [INFO] [stdout] 212 | | .into_result() [INFO] [stdout] 213 | | .map_err(|_| syn::Error::new(rhs.span(), "failed to parse DSL"))? [INFO] [stdout] 214 | | .into(); [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 210 ~ let dsl = crate::derive::parser::dsl_parser() [INFO] [stdout] 211 + .parse(&tokens) [INFO] [stdout] 212 + .into_result() [INFO] [stdout] 213 ~ .map_err(|_| syn::Error::new(rhs.span(), "failed to parse DSL"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/rule.rs:226:51 [INFO] [stdout] | [INFO] [stdout] 226 | let parser = self.parser(self.parser_body(&language), &language, false); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `language` [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 creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/rule.rs:226:63 [INFO] [stdout] | [INFO] [stdout] 226 | let parser = self.parser(self.parser_body(&language), &language, false); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `language` [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: useless conversion to the same type: `derive::attributes::static_token::StaticToken` [INFO] [stdout] --> src/derive/attributes/static_token.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | Ok(Self { [INFO] [stdout] | ____________^ [INFO] [stdout] 39 | | text: lit.value(), [INFO] [stdout] 40 | | name: name.expect("todo name option").clone(), [INFO] [stdout] 41 | | is_extra: false, [INFO] [stdout] 42 | | } [INFO] [stdout] 43 | | .into()) [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 38 ~ Ok(Self { [INFO] [stdout] 39 + text: lit.value(), [INFO] [stdout] 40 + name: name.expect("todo name option").clone(), [INFO] [stdout] 41 + is_extra: false, [INFO] [stdout] 42 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::static_token::StaticToken` [INFO] [stdout] --> src/derive/attributes/static_token.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 52 | Ok(Self::from_lit(&expr_lit.lit, name.expect("todo name option").clone())?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit(&expr_lit.lit, name.expect("todo name option").clone())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/derive/attributes/token.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn from_lit<'src>(lit: &Lit, name: Ident) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stdout] --> src/derive/attributes/token.rs:55:38 [INFO] [stdout] | [INFO] [stdout] 55 | ... let lo = r.start() as char; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `r.start()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stdout] --> src/derive/attributes/token.rs:56:38 [INFO] [stdout] | [INFO] [stdout] 56 | ... let hi = r.end() as char; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `r.end()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/derive/attributes/token.rs:83:26 [INFO] [stdout] | [INFO] [stdout] 83 | .map(|expr| Self::parser(expr)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Self::parser` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::token::Token` [INFO] [stdout] --> src/derive/attributes/token.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(Self::from_lit(&lit, name.expect("todod name option arg").clone())?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit(&lit, name.expect("todod name option arg").clone())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::token::Token` [INFO] [stdout] --> src/derive/attributes/token.rs:123:44 [INFO] [stdout] | [INFO] [stdout] 123 | syn::Expr::Lit(expr_lit) => Ok(Self::from_lit( [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 124 | | &expr_lit.lit, [INFO] [stdout] 125 | | name.expect("todo name arg option").clone(), [INFO] [stdout] 126 | | )? [INFO] [stdout] 127 | | .into()), [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 123 ~ syn::Expr::Lit(expr_lit) => Ok(Self::from_lit( [INFO] [stdout] 124 + &expr_lit.lit, [INFO] [stdout] 125 + name.expect("todo name arg option").clone(), [INFO] [stdout] 126 ~ )?), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `as_*` usually take `self` by reference or `self` by mutable reference [INFO] [stdout] --> src/chumsky_ext/parser.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] = note: `#[warn(clippy::wrong_self_convention)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `as_*` usually take `self` by reference or `self` by mutable reference [INFO] [stdout] --> src/chumsky_ext/parser.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `as_*` usually take `self` by reference or `self` by mutable reference [INFO] [stdout] --> src/chumsky_ext/parser.rs:40:9 [INFO] [stdout] | [INFO] [stdout] 40 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `map_err` on constructor `Err(_)` [INFO] [stdout] --> src/derive/language/element.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | return Err(syn::Error::new_spanned( [INFO] [stdout] | ________________________^ [INFO] [stdout] 48 | | &variant, [INFO] [stdout] 49 | | "only unit variants supported", [INFO] [stdout] 50 | | )) [INFO] [stdout] 51 | | .map_err(ElementError::from)?; [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_on_constructor [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_on_constructor)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 47 ~ return Err(ElementError::from(syn::Error::new_spanned( [INFO] [stdout] 48 + &variant, [INFO] [stdout] 49 + "only unit variants supported", [INFO] [stdout] 50 ~ )))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/derive/language/element.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | &variant, [INFO] [stdout] | ^^^^^^^^ help: change this to: `variant` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/derive/language/element.rs:74:17 [INFO] [stdout] | [INFO] [stdout] 74 | &list, [INFO] [stdout] | ^^^^^ help: change this to: `list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/derive/language/element.rs:80:18 [INFO] [stdout] | [INFO] [stdout] 80 | .map(|meta| Property::from_meta(meta)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Property::from_meta` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/derive/language/element.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 - return Ok(()); [INFO] [stdout] 145 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.and_then(|x| Ok(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/chumsky_ext/parser.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | / input.parse(&self.inner).and_then(|slice| { [INFO] [stdout] 227 | | let extra = input.state(); [INFO] [stdout] 228 | | Builder::<'cache, 'interner, 'borrow, Sy>::token(extra, self.kind, slice); [INFO] [stdout] 229 | | Ok(()) [INFO] [stdout] 230 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 226 ~ input.parse(&self.inner).map(|slice| { [INFO] [stdout] 227 | let extra = input.state(); [INFO] [stdout] 228 | Builder::<'cache, 'interner, 'borrow, Sy>::token(extra, self.kind, slice); [INFO] [stdout] 229 ~ () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/derive/language/element.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 132 | &self.attribute.name(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.attribute.name()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/derive/language/element.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | Ok(self.attribute.codegen(language)?) [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] 149 - Ok(self.attribute.codegen(language)?) [INFO] [stdout] 149 + self.attribute.codegen(language) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Result.and_then(|x| Ok(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/chumsky_ext/parser.rs:264:9 [INFO] [stdout] | [INFO] [stdout] 264 | / input.parse(&self.inner).and_then(|checkpoint| { [INFO] [stdout] 265 | | let extra = input.state(); [INFO] [stdout] 266 | | Builder::start_node_at(extra, checkpoint, self.kind); [INFO] [stdout] 267 | | Builder::finish_node(extra); [INFO] [stdout] 268 | | Ok(()) [INFO] [stdout] 269 | | }) [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 264 ~ input.parse(&self.inner).map(|checkpoint| { [INFO] [stdout] 265 | let extra = input.state(); [INFO] [stdout] 266 | Builder::start_node_at(extra, checkpoint, self.kind); [INFO] [stdout] 267 | Builder::finish_node(extra); [INFO] [stdout] 268 ~ () [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/derive/language/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod language; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `PhantomData` which implements the `Copy` trait [INFO] [stdout] --> src/chumsky_ext/parser.rs:286:22 [INFO] [stdout] | [INFO] [stdout] 286 | _output: self._output.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self._output` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/derive/attributes/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod attributes; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/derive/language/language.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 - return Ok(()); [INFO] [stdout] 67 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/derive/language/language.rs:96:29 [INFO] [stdout] | [INFO] [stdout] 96 | let variant_count = self.elements.len() as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.elements.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/derive/language/language.rs:97:26 [INFO] [stdout] | [INFO] [stdout] 97 | let root_ident = self.root_idents.iter().next().expect("already checked"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling: `self.root_idents.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `from_*` usually take no `self` [INFO] [stdout] --> src/derive/attributes/attributes.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | self, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/attributes.rs:46:57 [INFO] [stdout] | [INFO] [stdout] 46 | if let Ok(kind) = SyntaxAttributeKind::from_str(&kind.to_string().as_str()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `kind.to_string().as_str()` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/attributes.rs:47:31 [INFO] [stdout] | [INFO] [stdout] 47 | Ok(kind.from_meta(&meta, name)?) [INFO] [stdout] | ^^^^^ help: change this to: `meta` [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: useless conversion to the same type: `derive::parser::dsl::DslExpr` [INFO] [stdout] --> src/derive/attributes/node.rs:27:19 [INFO] [stdout] | [INFO] [stdout] 27 | let dsl = dsl_parser() [INFO] [stdout] | ___________________^ [INFO] [stdout] 28 | | .parse(&tokens) [INFO] [stdout] 29 | | .into_result() [INFO] [stdout] 30 | | .expect("parser error todo") [INFO] [stdout] 31 | | .into(); [INFO] [stdout] | |___________________^ [INFO] [stdout] | [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 `.into()` [INFO] [stdout] | [INFO] [stdout] 27 ~ let dsl = dsl_parser() [INFO] [stdout] 28 + .parse(&tokens) [INFO] [stdout] 29 + .into_result() [INFO] [stdout] 30 ~ .expect("parser error todo"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::node::Node` [INFO] [stdout] --> src/derive/attributes/node.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 39 | Ok(Self::from_string( [INFO] [stdout] | ____________^ [INFO] [stdout] 40 | | input, [INFO] [stdout] 41 | | name.expect("todo name argument is option error handling"), [INFO] [stdout] 42 | | )? [INFO] [stdout] 43 | | .into()) [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 39 ~ Ok(Self::from_string( [INFO] [stdout] 40 + input, [INFO] [stdout] 41 + name.expect("todo name argument is option error handling"), [INFO] [stdout] 42 ~ )?) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/derive/language/language.rs:164:12 [INFO] [stdout] | [INFO] [stdout] 164 | if self [INFO] [stdout] | ____________^ [INFO] [stdout] 165 | | .recursion_info [INFO] [stdout] 166 | | .as_ref() [INFO] [stdout] 167 | | .expect("bug") [INFO] [stdout] 168 | | .left_recursive [INFO] [stdout] 169 | | .len() [INFO] [stdout] 170 | | > 0 [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 164 ~ if !self [INFO] [stdout] 165 + .recursion_info [INFO] [stdout] 166 + .as_ref() [INFO] [stdout] 167 + .expect("bug") [INFO] [stdout] 168 + .left_recursive.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/language/language.rs:201:47 [INFO] [stdout] | [INFO] [stdout] 201 | .map(|variant| Ok(variant.codegen(&self)?)) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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/derive/language/language.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | if !(repr_inner == "u32") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `(repr_inner != "u32")` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/language/language.rs:260:61 [INFO] [stdout] | [INFO] [stdout] 260 | language.handle_element(Element::from_attribute(&attribute).map_err(Error::from)?) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `attribute` [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 creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/rule.rs:193:54 [INFO] [stdout] | [INFO] [stdout] 193 | Punctuated::parse_separated_nonempty(&input)?; [INFO] [stdout] | ^^^^^^ help: change this to: `input` [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: you should consider adding a `Default` implementation for `RuleGraph` [INFO] [stdout] --> src/derive/language/rule_graph.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub fn new() -> Self { [INFO] [stdout] 34 | | Self { [INFO] [stdout] 35 | | adj: HashMap::new(), [INFO] [stdout] 36 | | } [INFO] [stdout] 37 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 32 + impl Default for RuleGraph { [INFO] [stdout] 33 + fn default() -> Self { [INFO] [stdout] 34 + Self::new() [INFO] [stdout] 35 + } [INFO] [stdout] 36 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> src/derive/language/rule_graph.rs:43:39 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) fn into_recursive_info(&mut self, rules: &HashMap) -> RecursionInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::parser::dsl::DslExpr` [INFO] [stdout] --> src/derive/attributes/rule.rs:210:19 [INFO] [stdout] | [INFO] [stdout] 210 | let dsl = crate::derive::parser::dsl_parser() [INFO] [stdout] | ___________________^ [INFO] [stdout] 211 | | .parse(&tokens) [INFO] [stdout] 212 | | .into_result() [INFO] [stdout] 213 | | .map_err(|_| syn::Error::new(rhs.span(), "failed to parse DSL"))? [INFO] [stdout] 214 | | .into(); [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 210 ~ let dsl = crate::derive::parser::dsl_parser() [INFO] [stdout] 211 + .parse(&tokens) [INFO] [stdout] 212 + .into_result() [INFO] [stdout] 213 ~ .map_err(|_| syn::Error::new(rhs.span(), "failed to parse DSL"))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/rule.rs:226:51 [INFO] [stdout] | [INFO] [stdout] 226 | let parser = self.parser(self.parser_body(&language), &language, false); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `language` [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 creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/attributes/rule.rs:226:63 [INFO] [stdout] | [INFO] [stdout] 226 | let parser = self.parser(self.parser_body(&language), &language, false); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `language` [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: useless conversion to the same type: `derive::attributes::static_token::StaticToken` [INFO] [stdout] --> src/derive/attributes/static_token.rs:38:12 [INFO] [stdout] | [INFO] [stdout] 38 | Ok(Self { [INFO] [stdout] | ____________^ [INFO] [stdout] 39 | | text: lit.value(), [INFO] [stdout] 40 | | name: name.expect("todo name option").clone(), [INFO] [stdout] 41 | | is_extra: false, [INFO] [stdout] 42 | | } [INFO] [stdout] 43 | | .into()) [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 38 ~ Ok(Self { [INFO] [stdout] 39 + text: lit.value(), [INFO] [stdout] 40 + name: name.expect("todo name option").clone(), [INFO] [stdout] 41 + is_extra: false, [INFO] [stdout] 42 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/derive/language/rule_graph.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | / fn strongconnect( [INFO] [stdout] 128 | | v: usize, [INFO] [stdout] 129 | | adj: &HashMap>, [INFO] [stdout] 130 | | nodes: &Vec, [INFO] [stdout] ... | [INFO] [stdout] 138 | | node_to_comp: &mut HashMap, [INFO] [stdout] 139 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::static_token::StaticToken` [INFO] [stdout] --> src/derive/attributes/static_token.rs:52:20 [INFO] [stdout] | [INFO] [stdout] 52 | Ok(Self::from_lit(&expr_lit.lit, name.expect("todo name option").clone())?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit(&expr_lit.lit, name.expect("todo name option").clone())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/derive/language/rule_graph.rs:182:29 [INFO] [stdout] | [INFO] [stdout] 182 | let self_loop = adj.get(v_name).map_or(false, |deps| deps.contains(v_name)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 182 - let self_loop = adj.get(v_name).map_or(false, |deps| deps.contains(v_name)); [INFO] [stdout] 182 + let self_loop = adj.get(v_name).is_some_and(|deps| deps.contains(v_name)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/derive/attributes/token.rs:23:21 [INFO] [stdout] | [INFO] [stdout] 23 | pub fn from_lit<'src>(lit: &Lit, name: Ident) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stdout] --> src/derive/attributes/token.rs:55:38 [INFO] [stdout] | [INFO] [stdout] 55 | ... let lo = r.start() as char; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `r.start()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`char` -> `char`) [INFO] [stdout] --> src/derive/attributes/token.rs:56:38 [INFO] [stdout] | [INFO] [stdout] 56 | ... let hi = r.end() as char; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `r.end()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/derive/attributes/token.rs:83:26 [INFO] [stdout] | [INFO] [stdout] 83 | .map(|expr| Self::parser(expr)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Self::parser` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::token::Token` [INFO] [stdout] --> src/derive/attributes/token.rs:115:12 [INFO] [stdout] | [INFO] [stdout] 115 | Ok(Self::from_lit(&lit, name.expect("todod name option arg").clone())?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit(&lit, name.expect("todod name option arg").clone())?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::attributes::token::Token` [INFO] [stdout] --> src/derive/attributes/token.rs:123:44 [INFO] [stdout] | [INFO] [stdout] 123 | syn::Expr::Lit(expr_lit) => Ok(Self::from_lit( [INFO] [stdout] | ____________________________________________^ [INFO] [stdout] 124 | | &expr_lit.lit, [INFO] [stdout] 125 | | name.expect("todo name arg option").clone(), [INFO] [stdout] 126 | | )? [INFO] [stdout] 127 | | .into()), [INFO] [stdout] | |___________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into()` [INFO] [stdout] | [INFO] [stdout] 123 ~ syn::Expr::Lit(expr_lit) => Ok(Self::from_lit( [INFO] [stdout] 124 + &expr_lit.lit, [INFO] [stdout] 125 + name.expect("todo name arg option").clone(), [INFO] [stdout] 126 ~ )?), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Select<{closure@lib.rs:2994:13}, &[DslToken], Ident, Full>` which implements the `Copy` trait [INFO] [stdout] --> src/derive/parser/dsl.rs:260:20 [INFO] [stdout] | [INFO] [stdout] 260 | let call = ident [INFO] [stdout] | ____________________^ [INFO] [stdout] 261 | | .clone() [INFO] [stdout] | |____________________^ help: try removing the `clone` call: `ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `map_err` on constructor `Err(_)` [INFO] [stdout] --> src/derive/language/element.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | return Err(syn::Error::new_spanned( [INFO] [stdout] | ________________________^ [INFO] [stdout] 48 | | &variant, [INFO] [stdout] 49 | | "only unit variants supported", [INFO] [stdout] 50 | | )) [INFO] [stdout] 51 | | .map_err(ElementError::from)?; [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_on_constructor [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_on_constructor)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 47 ~ return Err(ElementError::from(syn::Error::new_spanned( [INFO] [stdout] 48 + &variant, [INFO] [stdout] 49 + "only unit variants supported", [INFO] [stdout] 50 ~ )))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/derive/language/element.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | &variant, [INFO] [stdout] | ^^^^^^^^ help: change this to: `variant` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/derive/language/element.rs:74:17 [INFO] [stdout] | [INFO] [stdout] 74 | &list, [INFO] [stdout] | ^^^^^ help: change this to: `list` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/derive/language/element.rs:80:18 [INFO] [stdout] | [INFO] [stdout] 80 | .map(|meta| Property::from_meta(meta)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Property::from_meta` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/derive/language/element.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 145 - return Ok(()); [INFO] [stdout] 145 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/derive/language/element.rs:132:25 [INFO] [stdout] | [INFO] [stdout] 132 | &self.attribute.name(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.attribute.name()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/derive/language/element.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | Ok(self.attribute.codegen(language)?) [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] 149 - Ok(self.attribute.codegen(language)?) [INFO] [stdout] 149 + self.attribute.codegen(language) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/derive/parser/mir.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 11 | FromHir { source: regex_syntax::Error }, [INFO] [stdout] | --------------------------------------- the largest variant contains at least 128 bytes [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parse(input: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `derive::parser::mir::MirError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/derive/language/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod language; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/derive/properties/extra.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | if let Some(_) = property.try_as_extra() { [INFO] [stdout] | -------^^^^^^^-------------------------- help: try: `if property.try_as_extra().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/derive/language/language.rs:67:9 [INFO] [stdout] | [INFO] [stdout] 67 | return Ok(()); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 67 - return Ok(()); [INFO] [stdout] 67 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> src/derive/language/language.rs:96:29 [INFO] [stdout] | [INFO] [stdout] 96 | let variant_count = self.elements.len() as u32; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.elements.len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `.iter().next()` on an array [INFO] [stdout] --> src/derive/language/language.rs:97:26 [INFO] [stdout] | [INFO] [stdout] 97 | let root_ident = self.root_idents.iter().next().expect("already checked"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try calling: `self.root_idents.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_next_slice [INFO] [stdout] = note: `#[warn(clippy::iter_next_slice)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u16` [INFO] [stdout] --> src/derive/properties/operator.rs:96:17 [INFO] [stdout] | [INFO] [stdout] 96 | Ok(Self(lit.base10_parse::()?.into())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `lit.base10_parse::()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u16` [INFO] [stdout] --> src/derive/properties/operator.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | Ok(Self(lit.base10_parse::()?.into())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `lit.base10_parse::()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::properties::operator::Prefix` [INFO] [stdout] --> src/derive/properties/operator.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | Ok(Self::from_lit_int(lit)?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit_int(lit)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::properties::operator::Postfix` [INFO] [stdout] --> src/derive/properties/operator.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | Ok(Self::from_lit_int(lit)?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit_int(lit)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/properties/mod.rs:57:50 [INFO] [stdout] | [INFO] [stdout] 57 | if let Ok(kind) = PropertyKind::from_str(&kind.to_string().as_str()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `kind.to_string().as_str()` [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: methods called `from_*` usually take no `self` [INFO] [stdout] --> src/derive/properties/mod.rs:66:22 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn from_meta(self, meta: &Meta) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/engine/builder.rs:17:6 [INFO] [stdout] | [INFO] [stdout] 17 | impl<'src, 'cache, 'interner, 'borrow, Sy> Builder<'cache, 'interner, 'borrow, Sy> [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/engine/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod engine; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/derive/language/language.rs:164:12 [INFO] [stdout] | [INFO] [stdout] 164 | if self [INFO] [stdout] | ____________^ [INFO] [stdout] 165 | | .recursion_info [INFO] [stdout] 166 | | .as_ref() [INFO] [stdout] 167 | | .expect("bug") [INFO] [stdout] 168 | | .left_recursive [INFO] [stdout] 169 | | .len() [INFO] [stdout] 170 | | > 0 [INFO] [stdout] | |_______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] help: using `!is_empty` is clearer and more explicit [INFO] [stdout] | [INFO] [stdout] 164 ~ if !self [INFO] [stdout] 165 + .recursion_info [INFO] [stdout] 166 + .as_ref() [INFO] [stdout] 167 + .expect("bug") [INFO] [stdout] 168 + .left_recursive.is_empty() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/language/language.rs:201:47 [INFO] [stdout] | [INFO] [stdout] 201 | .map(|variant| Ok(variant.codegen(&self)?)) [INFO] [stdout] | ^^^^^ help: change this to: `self` [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: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/error.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | / impl Into> for Errors [INFO] [stdout] 56 | | where [INFO] [stdout] 57 | | E: std::error::Error, [INFO] [stdout] ... | [INFO] [stdout] 62 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 55 ~ impl From> for Vec [INFO] [stdout] 56 | where [INFO] [stdout] 57 | E: std::error::Error, [INFO] [stdout] 58 | { [INFO] [stdout] 59 ~ fn from(val: Errors) -> Self { [INFO] [stdout] 60 ~ val.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/incremental/document.rs:17:46 [INFO] [stdout] | [INFO] [stdout] 17 | let cache = NodeCache::from_interner(&*interner); [INFO] [stdout] | ^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `interner` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/derive/language/language.rs:272:8 [INFO] [stdout] | [INFO] [stdout] 272 | if !(repr_inner == "u32") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `(repr_inner != "u32")` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/language/language.rs:260:61 [INFO] [stdout] | [INFO] [stdout] 260 | language.handle_element(Element::from_attribute(&attribute).map_err(Error::from)?) [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `attribute` [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: useless conversion to the same type: `std::vec::Vec` [INFO] [stdout] --> src/util.rs:29:40 [INFO] [stdout] | [INFO] [stdout] 29 | xs.push(xy.map_err(|y| Vec::from(y.0))?); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider removing `Vec::from()`: `y.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FilterMap>) -> std::option::Option> {std::result::Result::>::err}>` [INFO] [stdout] --> src/util.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | / self.filter_map(Result::err) [INFO] [stdout] 35 | | .into_iter() [INFO] [stdout] | |____________________________________^ help: consider removing `.into_iter()`: `self.filter_map(Result::err)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::Vec` [INFO] [stdout] --> src/util.rs:49:40 [INFO] [stdout] | [INFO] [stdout] 49 | xs.push(xy.map_err(|y| Vec::from(y.0))?); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider removing `Vec::from()`: `y.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FilterMap>) -> std::option::Option> {std::result::Result::>::err}>` [INFO] [stdout] --> src/util.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | / self.filter_map(Result::err) [INFO] [stdout] 55 | | .into_iter() [INFO] [stdout] | |____________________________________^ help: consider removing `.into_iter()`: `self.filter_map(Result::err)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `RuleGraph` [INFO] [stdout] --> src/derive/language/rule_graph.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | / pub fn new() -> Self { [INFO] [stdout] 34 | | Self { [INFO] [stdout] 35 | | adj: HashMap::new(), [INFO] [stdout] 36 | | } [INFO] [stdout] 37 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 32 + impl Default for RuleGraph { [INFO] [stdout] 33 + fn default() -> Self { [INFO] [stdout] 34 + Self::new() [INFO] [stdout] 35 + } [INFO] [stdout] 36 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods called `into_*` usually take `self` by value [INFO] [stdout] --> src/derive/language/rule_graph.rs:43:39 [INFO] [stdout] | [INFO] [stdout] 43 | pub(crate) fn into_recursive_info(&mut self, rules: &HashMap) -> RecursionInfo { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (11/7) [INFO] [stdout] --> src/derive/language/rule_graph.rs:127:5 [INFO] [stdout] | [INFO] [stdout] 127 | / fn strongconnect( [INFO] [stdout] 128 | | v: usize, [INFO] [stdout] 129 | | adj: &HashMap>, [INFO] [stdout] 130 | | nodes: &Vec, [INFO] [stdout] ... | [INFO] [stdout] 138 | | node_to_comp: &mut HashMap, [INFO] [stdout] 139 | | ) { [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/derive/language/rule_graph.rs:182:29 [INFO] [stdout] | [INFO] [stdout] 182 | let self_loop = adj.get(v_name).map_or(false, |deps| deps.contains(v_name)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 182 - let self_loop = adj.get(v_name).map_or(false, |deps| deps.contains(v_name)); [INFO] [stdout] 182 + let self_loop = adj.get(v_name).is_some_and(|deps| deps.contains(v_name)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/derive/language/rule_graph.rs:244:13 [INFO] [stdout] | [INFO] [stdout] 244 | fn wrap<'a>(rules: &'a HashMap) -> HashMap { [INFO] [stdout] | ^^ ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 244 - fn wrap<'a>(rules: &'a HashMap) -> HashMap { [INFO] [stdout] 244 + fn wrap(rules: &HashMap) -> HashMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Select<{closure@lib.rs:2994:13}, &[DslToken], Ident, Full>` which implements the `Copy` trait [INFO] [stdout] --> src/derive/parser/dsl.rs:260:20 [INFO] [stdout] | [INFO] [stdout] 260 | let call = ident [INFO] [stdout] | ____________________^ [INFO] [stdout] 261 | | .clone() [INFO] [stdout] | |____________________^ help: try removing the `clone` call: `ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `Err`-variant returned from this function is very large [INFO] [stdout] --> src/derive/parser/mir.rs:36:34 [INFO] [stdout] | [INFO] [stdout] 11 | FromHir { source: regex_syntax::Error }, [INFO] [stdout] | --------------------------------------- the largest variant contains at least 128 bytes [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn parse(input: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `derive::parser::mir::MirError`, for example by boxing large elements or replacing it with `Box` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err [INFO] [stdout] = note: `#[warn(clippy::result_large_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/derive/properties/extra.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | if let Some(_) = property.try_as_extra() { [INFO] [stdout] | -------^^^^^^^-------------------------- help: try: `if property.try_as_extra().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u16` [INFO] [stdout] --> src/derive/properties/operator.rs:96:17 [INFO] [stdout] | [INFO] [stdout] 96 | Ok(Self(lit.base10_parse::()?.into())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `lit.base10_parse::()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `u16` [INFO] [stdout] --> src/derive/properties/operator.rs:102:17 [INFO] [stdout] | [INFO] [stdout] 102 | Ok(Self(lit.base10_parse::()?.into())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `lit.base10_parse::()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::properties::operator::Prefix` [INFO] [stdout] --> src/derive/properties/operator.rs:110:12 [INFO] [stdout] | [INFO] [stdout] 110 | Ok(Self::from_lit_int(lit)?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit_int(lit)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `derive::properties::operator::Postfix` [INFO] [stdout] --> src/derive/properties/operator.rs:117:12 [INFO] [stdout] | [INFO] [stdout] 117 | Ok(Self::from_lit_int(lit)?.into()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into()`: `Self::from_lit_int(lit)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/derive/properties/mod.rs:57:50 [INFO] [stdout] | [INFO] [stdout] 57 | if let Ok(kind) = PropertyKind::from_str(&kind.to_string().as_str()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `kind.to_string().as_str()` [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: methods called `from_*` usually take no `self` [INFO] [stdout] --> src/derive/properties/mod.rs:66:22 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn from_meta(self, meta: &Meta) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider choosing a less ambiguous name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the impl [INFO] [stdout] --> src/engine/builder.rs:17:6 [INFO] [stdout] | [INFO] [stdout] 17 | impl<'src, 'cache, 'interner, 'borrow, Sy> Builder<'cache, 'interner, 'borrow, Sy> [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/engine/mod.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | mod engine; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/error.rs:55:1 [INFO] [stdout] | [INFO] [stdout] 55 | / impl Into> for Errors [INFO] [stdout] 56 | | where [INFO] [stdout] 57 | | E: std::error::Error, [INFO] [stdout] ... | [INFO] [stdout] 62 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From>` [INFO] [stdout] | [INFO] [stdout] 55 ~ impl From> for Vec [INFO] [stdout] 56 | where [INFO] [stdout] 57 | E: std::error::Error, [INFO] [stdout] 58 | { [INFO] [stdout] 59 ~ fn from(val: Errors) -> Self { [INFO] [stdout] 60 ~ val.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/incremental/document.rs:17:46 [INFO] [stdout] | [INFO] [stdout] 17 | let cache = NodeCache::from_interner(&*interner); [INFO] [stdout] | ^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `interner` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::Vec` [INFO] [stdout] --> src/util.rs:29:40 [INFO] [stdout] | [INFO] [stdout] 29 | xs.push(xy.map_err(|y| Vec::from(y.0))?); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider removing `Vec::from()`: `y.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FilterMap>) -> std::option::Option> {std::result::Result::>::err}>` [INFO] [stdout] --> src/util.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | / self.filter_map(Result::err) [INFO] [stdout] 35 | | .into_iter() [INFO] [stdout] | |____________________________________^ help: consider removing `.into_iter()`: `self.filter_map(Result::err)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::Vec` [INFO] [stdout] --> src/util.rs:49:40 [INFO] [stdout] | [INFO] [stdout] 49 | xs.push(xy.map_err(|y| Vec::from(y.0))?); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: consider removing `Vec::from()`: `y.0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FilterMap>) -> std::option::Option> {std::result::Result::>::err}>` [INFO] [stdout] --> src/util.rs:54:21 [INFO] [stdout] | [INFO] [stdout] 54 | / self.filter_map(Result::err) [INFO] [stdout] 55 | | .into_iter() [INFO] [stdout] | |____________________________________^ help: consider removing `.into_iter()`: `self.filter_map(Result::err)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.12s [INFO] running `Command { std: "docker" "inspect" "8552e1de2733722a1670e13cff92a36101a99c192f064512b132e33975c141b6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8552e1de2733722a1670e13cff92a36101a99c192f064512b132e33975c141b6", kill_on_drop: false }` [INFO] [stdout] 8552e1de2733722a1670e13cff92a36101a99c192f064512b132e33975c141b6