[INFO] cloning repository https://github.com/speedupmate/di-compiler [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/speedupmate/di-compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspeedupmate%2Fdi-compiler", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspeedupmate%2Fdi-compiler'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 577f3a6e0ca1eae6b29375cc6e8de21269ca44e4 [INFO] linting speedupmate/di-compiler against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fspeedupmate%2Fdi-compiler" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/speedupmate/di-compiler [INFO] finished tweaking git repo https://github.com/speedupmate/di-compiler [INFO] tweaked toml for git repo https://github.com/speedupmate/di-compiler written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/speedupmate/di-compiler 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/speedupmate/di-compiler 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 insta v1.46.3 [INFO] [stderr] Downloaded tree-sitter v0.22.6 [INFO] [stderr] Downloaded tree-sitter-php v0.22.8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 6a323ab773c2cdd456429f37a8105c51f2304b5151232cd83ba672ad8813c1d0 [INFO] running `Command { std: "docker" "start" "-a" "6a323ab773c2cdd456429f37a8105c51f2304b5151232cd83ba672ad8813c1d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6a323ab773c2cdd456429f37a8105c51f2304b5151232cd83ba672ad8813c1d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6a323ab773c2cdd456429f37a8105c51f2304b5151232cd83ba672ad8813c1d0", kill_on_drop: false }` [INFO] [stdout] 6a323ab773c2cdd456429f37a8105c51f2304b5151232cd83ba672ad8813c1d0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 39731461e5bb37e4ed00fc51999b79e66a0b2dce4bed86f38d8360cf35201995 [INFO] running `Command { std: "docker" "start" "-a" "39731461e5bb37e4ed00fc51999b79e66a0b2dce4bed86f38d8360cf35201995", kill_on_drop: false }` [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking bstr v1.12.1 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking linux-raw-sys v0.12.1 [INFO] [stderr] Checking unicode-width v0.2.2 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling tree-sitter v0.22.6 [INFO] [stderr] Compiling tree-sitter-php v0.22.8 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking anstyle v1.0.13 [INFO] [stderr] Checking similar v2.7.0 [INFO] [stderr] Compiling blake3 v1.8.3 [INFO] [stderr] Checking clap_lex v1.0.0 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking constant_time_eq v0.4.2 [INFO] [stderr] Checking jiff v0.2.23 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking number_prefix v0.4.0 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking indicatif v0.17.11 [INFO] [stderr] Checking tempfile v3.26.0 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking globset v0.4.18 [INFO] [stderr] Checking ignore v0.4.25 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking php-extractor v1.0.0 (/opt/rustwide/workdir/crates/php-extractor) [INFO] [stderr] Checking validator v1.0.0 (/opt/rustwide/workdir/crates/validator) [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> crates/php-extractor/src/lexer.rs:436:29 [INFO] [stdout] | [INFO] [stdout] 436 | ... part.split('\\').last().unwrap_or(&part).to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 436 - part.split('\\').last().unwrap_or(&part).to_string() [INFO] [stdout] 436 + part.split('\\').next_back().unwrap_or(&part).to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> crates/php-extractor/src/lexer.rs:465:32 [INFO] [stdout] | [INFO] [stdout] 465 | .unwrap_or_else(|| base.split('\\').last().unwrap_or(&base).to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 465 - .unwrap_or_else(|| base.split('\\').last().unwrap_or(&base).to_string()); [INFO] [stdout] 465 + .unwrap_or_else(|| base.split('\\').next_back().unwrap_or(&base).to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking quick-xml v0.36.2 [INFO] [stderr] Checking insta v1.46.3 [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> crates/php-extractor/src/lexer.rs:436:29 [INFO] [stdout] | [INFO] [stdout] 436 | ... part.split('\\').last().unwrap_or(&part).to_string() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] = note: `#[warn(clippy::double_ended_iterator_last)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 436 - part.split('\\').last().unwrap_or(&part).to_string() [INFO] [stdout] 436 + part.split('\\').next_back().unwrap_or(&part).to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `Iterator::last` on a `DoubleEndedIterator`; this will needlessly iterate the entire iterator [INFO] [stdout] --> crates/php-extractor/src/lexer.rs:465:32 [INFO] [stdout] | [INFO] [stdout] 465 | .unwrap_or_else(|| base.split('\\').last().unwrap_or(&base).to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#double_ended_iterator_last [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 465 - .unwrap_or_else(|| base.split('\\').last().unwrap_or(&base).to_string()); [INFO] [stdout] 465 + .unwrap_or_else(|| base.split('\\').next_back().unwrap_or(&base).to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking di-xml-reader v1.0.0 (/opt/rustwide/workdir/crates/di-xml-reader) [INFO] [stderr] Checking di-resolver v1.0.0 (/opt/rustwide/workdir/crates/di-resolver) [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> crates/di-resolver/src/arguments.rs:883:9 [INFO] [stdout] | [INFO] [stdout] 883 | / let Some(first) = self.peek() else { [INFO] [stdout] 884 | | return None; [INFO] [stdout] 885 | | }; [INFO] [stdout] | |__________^ help: replace it with: `let first = self.peek()?;` [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: this `if` statement can be collapsed [INFO] [stdout] --> crates/di-resolver/src/factory.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / if from_xml && virtual_type_names.contains(factory_fqcn.as_str()) { [INFO] [stdout] 62 | | if global_virtual_type_names.contains(factory_fqcn.as_str()) { [INFO] [stdout] 63 | | return; [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if from_xml && virtual_type_names.contains(factory_fqcn.as_str()) [INFO] [stdout] 62 ~ && global_virtual_type_names.contains(factory_fqcn.as_str()) { [INFO] [stdout] 63 | return; [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/di-resolver/src/interceptor.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | .filter(|m| is_interceptable_method(m)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `is_interceptable_method` [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] [stderr] Checking code-generator v1.0.0 (/opt/rustwide/workdir/crates/code-generator) [INFO] [stdout] warning: this `let...else` may be rewritten with the `?` operator [INFO] [stdout] --> crates/di-resolver/src/arguments.rs:883:9 [INFO] [stdout] | [INFO] [stdout] 883 | / let Some(first) = self.peek() else { [INFO] [stdout] 884 | | return None; [INFO] [stdout] 885 | | }; [INFO] [stdout] | |__________^ help: replace it with: `let first = self.peek()?;` [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: this `if` statement can be collapsed [INFO] [stdout] --> crates/di-resolver/src/factory.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / if from_xml && virtual_type_names.contains(factory_fqcn.as_str()) { [INFO] [stdout] 62 | | if global_virtual_type_names.contains(factory_fqcn.as_str()) { [INFO] [stdout] 63 | | return; [INFO] [stdout] 64 | | } [INFO] [stdout] 65 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 61 ~ if from_xml && virtual_type_names.contains(factory_fqcn.as_str()) [INFO] [stdout] 62 ~ && global_virtual_type_names.contains(factory_fqcn.as_str()) { [INFO] [stdout] 63 | return; [INFO] [stdout] 64 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/di-resolver/src/interceptor.rs:208:17 [INFO] [stdout] | [INFO] [stdout] 208 | .filter(|m| is_interceptable_method(m)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `is_interceptable_method` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> crates/code-generator/src/area_config.rs:262:13 [INFO] [stdout] | [INFO] [stdout] 262 | out.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `out.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/code-generator/src/interceptor.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | .filter_map(|method| render_intercepted_method(method)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `render_intercepted_method` [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: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/code-generator/src/interceptor.rs:219:24 [INFO] [stdout] | [INFO] [stdout] 219 | let has_null = raw_parts.iter().any(|p| *p == "null"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw_parts.contains(&"null")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> crates/code-generator/src/metadata.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | out.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `out.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/code-generator/src/metadata.rs:281:27 [INFO] [stdout] | [INFO] [stdout] 281 | if rest.is_empty() || !rest.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rest.parse::().is_err()` [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: calling `push_str()` using a single-character string literal [INFO] [stdout] --> crates/code-generator/src/area_config.rs:262:13 [INFO] [stdout] | [INFO] [stdout] 262 | out.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `out.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking fast-di-compile v1.0.0 (/opt/rustwide/workdir/crates/cli) [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> crates/code-generator/src/interceptor.rs:52:21 [INFO] [stdout] | [INFO] [stdout] 52 | .filter_map(|method| render_intercepted_method(method)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `render_intercepted_method` [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: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> crates/code-generator/src/interceptor.rs:219:24 [INFO] [stdout] | [INFO] [stdout] 219 | let has_null = raw_parts.iter().any(|p| *p == "null"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw_parts.contains(&"null")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> crates/code-generator/src/metadata.rs:219:13 [INFO] [stdout] | [INFO] [stdout] 219 | out.push_str("\n"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `out.push('\n')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/code-generator/src/metadata.rs:281:27 [INFO] [stdout] | [INFO] [stdout] 281 | if rest.is_empty() || !rest.parse::().is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `rest.parse::().is_err()` [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: deref which would be done by auto-deref [INFO] [stdout] --> crates/cli/src/main.rs:1334:17 [INFO] [stdout] | [INFO] [stdout] 1334 | &**scope_di_config, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `scope_di_config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> crates/cli/src/main.rs:1334:17 [INFO] [stdout] | [INFO] [stdout] 1334 | &**scope_di_config, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `scope_di_config` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/cli/src/main.rs:1756:30 [INFO] [stdout] | [INFO] [stdout] 1756 | let mut modules_by_base: Vec<(String, Vec<(String, Vec)>)> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/cli/src/main.rs:1756:30 [INFO] [stdout] | [INFO] [stdout] 1756 | let mut modules_by_base: Vec<(String, Vec<(String, Vec)>)> = Vec::new(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/cli/src/main.rs:2112:1 [INFO] [stdout] | [INFO] [stdout] 2112 | / fn build_argument_type_names( [INFO] [stdout] 2113 | | base_class_map: &FxHashMap, [INFO] [stdout] 2114 | | _generated_class_map: &FxHashMap, [INFO] [stdout] 2115 | | di_config: &DiConfig, [INFO] [stdout] ... | [INFO] [stdout] 2121 | | extension_specs: &[ExtensionSpec], [INFO] [stdout] 2122 | | ) -> Vec { [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 function has too many arguments (9/7) [INFO] [stdout] --> crates/cli/src/main.rs:2172:1 [INFO] [stdout] | [INFO] [stdout] 2172 | / fn build_interception_type_names( [INFO] [stdout] 2173 | | base_class_map: &FxHashMap, [INFO] [stdout] 2174 | | generated_class_map: &FxHashMap, [INFO] [stdout] 2175 | | di_config: &DiConfig, [INFO] [stdout] ... | [INFO] [stdout] 2181 | | extension_specs: &[ExtensionSpec], [INFO] [stdout] 2182 | | ) -> Vec { [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] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> crates/cli/src/main.rs:2112:1 [INFO] [stdout] | [INFO] [stdout] 2112 | / fn build_argument_type_names( [INFO] [stdout] 2113 | | base_class_map: &FxHashMap, [INFO] [stdout] 2114 | | _generated_class_map: &FxHashMap, [INFO] [stdout] 2115 | | di_config: &DiConfig, [INFO] [stdout] ... | [INFO] [stdout] 2121 | | extension_specs: &[ExtensionSpec], [INFO] [stdout] 2122 | | ) -> Vec { [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 function has too many arguments (9/7) [INFO] [stdout] --> crates/cli/src/main.rs:2172:1 [INFO] [stdout] | [INFO] [stdout] 2172 | / fn build_interception_type_names( [INFO] [stdout] 2173 | | base_class_map: &FxHashMap, [INFO] [stdout] 2174 | | generated_class_map: &FxHashMap, [INFO] [stdout] 2175 | | di_config: &DiConfig, [INFO] [stdout] ... | [INFO] [stdout] 2181 | | extension_specs: &[ExtensionSpec], [INFO] [stdout] 2182 | | ) -> Vec { [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] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> crates/cli/src/main.rs:2638:20 [INFO] [stdout] | [INFO] [stdout] 2638 | return Err(std::io::Error::new( [INFO] [stdout] | ____________________^ [INFO] [stdout] 2639 | | std::io::ErrorKind::Other, [INFO] [stdout] 2640 | | format!( [INFO] [stdout] 2641 | | "failed to normalize metadata {}: {}", [INFO] [stdout] ... | [INFO] [stdout] 2644 | | ), [INFO] [stdout] 2645 | | )); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 2638 ~ return Err(std::io::Error::other( [INFO] [stdout] 2639 ~ format!( [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> crates/cli/src/main.rs:2704:9 [INFO] [stdout] | [INFO] [stdout] 2704 | / std::io::Error::new( [INFO] [stdout] 2705 | | std::io::ErrorKind::Other, [INFO] [stdout] 2706 | | format!("failed to parse archive comparable json for {}: {e}", file), [INFO] [stdout] 2707 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 2704 ~ std::io::Error::other( [INFO] [stdout] 2705 ~ format!("failed to parse archive comparable json for {}: {e}", file), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> crates/cli/src/main.rs:2710:9 [INFO] [stdout] | [INFO] [stdout] 2710 | / std::io::Error::new( [INFO] [stdout] 2711 | | std::io::ErrorKind::Other, [INFO] [stdout] 2712 | | format!("failed to parse output comparable json for {}: {e}", file), [INFO] [stdout] 2713 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 2710 ~ std::io::Error::other( [INFO] [stdout] 2711 ~ format!("failed to parse output comparable json for {}: {e}", file), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> crates/cli/src/main.rs:2638:20 [INFO] [stdout] | [INFO] [stdout] 2638 | return Err(std::io::Error::new( [INFO] [stdout] | ____________________^ [INFO] [stdout] 2639 | | std::io::ErrorKind::Other, [INFO] [stdout] 2640 | | format!( [INFO] [stdout] 2641 | | "failed to normalize metadata {}: {}", [INFO] [stdout] ... | [INFO] [stdout] 2644 | | ), [INFO] [stdout] 2645 | | )); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 2638 ~ return Err(std::io::Error::other( [INFO] [stdout] 2639 ~ format!( [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/cli/src/main.rs:2857:35 [INFO] [stdout] | [INFO] [stdout] 2857 | return if rest.is_empty() { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 2858 | | "list".to_string() [INFO] [stdout] 2859 | | } else { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/cli/src/main.rs:2859:16 [INFO] [stdout] | [INFO] [stdout] 2859 | } else { [INFO] [stdout] | ________________^ [INFO] [stdout] 2860 | | "list".to_string() [INFO] [stdout] 2861 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> crates/cli/src/main.rs:2704:9 [INFO] [stdout] | [INFO] [stdout] 2704 | / std::io::Error::new( [INFO] [stdout] 2705 | | std::io::ErrorKind::Other, [INFO] [stdout] 2706 | | format!("failed to parse archive comparable json for {}: {e}", file), [INFO] [stdout] 2707 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 2704 ~ std::io::Error::other( [INFO] [stdout] 2705 ~ format!("failed to parse archive comparable json for {}: {e}", file), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> crates/cli/src/main.rs:2710:9 [INFO] [stdout] | [INFO] [stdout] 2710 | / std::io::Error::new( [INFO] [stdout] 2711 | | std::io::ErrorKind::Other, [INFO] [stdout] 2712 | | format!("failed to parse output comparable json for {}: {e}", file), [INFO] [stdout] 2713 | | ) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 2710 ~ std::io::Error::other( [INFO] [stdout] 2711 ~ format!("failed to parse output comparable json for {}: {e}", file), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> crates/cli/src/main.rs:2857:35 [INFO] [stdout] | [INFO] [stdout] 2857 | return if rest.is_empty() { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 2858 | | "list".to_string() [INFO] [stdout] 2859 | | } else { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> crates/cli/src/main.rs:2859:16 [INFO] [stdout] | [INFO] [stdout] 2859 | } else { [INFO] [stdout] | ________________^ [INFO] [stdout] 2860 | | "list".to_string() [INFO] [stdout] 2861 | | }; [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> crates/cli/src/main.rs:3987:12 [INFO] [stdout] | [INFO] [stdout] 3987 | items: &mut Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 3987 - items: &mut Vec, [INFO] [stdout] 3987 + items: &mut [di_resolver::ResolvedArrayItem], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> crates/cli/src/main.rs:3987:12 [INFO] [stdout] | [INFO] [stdout] 3987 | items: &mut Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 3987 - items: &mut Vec, [INFO] [stdout] 3987 + items: &mut [di_resolver::ResolvedArrayItem], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/cli/src/main.rs:4570:21 [INFO] [stdout] | [INFO] [stdout] 4570 | / if local_name(e.name().as_ref()) == "attribute" { [INFO] [stdout] 4571 | | maybe_collect_extension_attribute(e, current_for.as_deref(), &mut out); [INFO] [stdout] 4572 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 4569 ~ Ok(Event::Empty(ref e)) [INFO] [stdout] 4570 ~ if local_name(e.name().as_ref()) == "attribute" => { [INFO] [stdout] 4571 | maybe_collect_extension_attribute(e, current_for.as_deref(), &mut out); [INFO] [stdout] 4572 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/cli/src/main.rs:4575:21 [INFO] [stdout] | [INFO] [stdout] 4575 | / if local_name(e.name().as_ref()) == "extension_attributes" { [INFO] [stdout] 4576 | | current_for = None; [INFO] [stdout] 4577 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 4574 ~ Ok(Event::End(ref e)) [INFO] [stdout] 4575 ~ if local_name(e.name().as_ref()) == "extension_attributes" => { [INFO] [stdout] 4576 | current_for = None; [INFO] [stdout] 4577 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/cli/src/main.rs:4570:21 [INFO] [stdout] | [INFO] [stdout] 4570 | / if local_name(e.name().as_ref()) == "attribute" { [INFO] [stdout] 4571 | | maybe_collect_extension_attribute(e, current_for.as_deref(), &mut out); [INFO] [stdout] 4572 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 4569 ~ Ok(Event::Empty(ref e)) [INFO] [stdout] 4570 ~ if local_name(e.name().as_ref()) == "attribute" => { [INFO] [stdout] 4571 | maybe_collect_extension_attribute(e, current_for.as_deref(), &mut out); [INFO] [stdout] 4572 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> crates/cli/src/main.rs:4575:21 [INFO] [stdout] | [INFO] [stdout] 4575 | / if local_name(e.name().as_ref()) == "extension_attributes" { [INFO] [stdout] 4576 | | current_for = None; [INFO] [stdout] 4577 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 4574 ~ Ok(Event::End(ref e)) [INFO] [stdout] 4575 ~ if local_name(e.name().as_ref()) == "extension_attributes" => { [INFO] [stdout] 4576 | current_for = None; [INFO] [stdout] 4577 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.93s [INFO] running `Command { std: "docker" "inspect" "39731461e5bb37e4ed00fc51999b79e66a0b2dce4bed86f38d8360cf35201995", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "39731461e5bb37e4ed00fc51999b79e66a0b2dce4bed86f38d8360cf35201995", kill_on_drop: false }` [INFO] [stdout] 39731461e5bb37e4ed00fc51999b79e66a0b2dce4bed86f38d8360cf35201995