[INFO] cloning repository https://github.com/computer-graphics-tools/metal-analyzer [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/computer-graphics-tools/metal-analyzer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcomputer-graphics-tools%2Fmetal-analyzer", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcomputer-graphics-tools%2Fmetal-analyzer'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 7f0ad2ea2e92df3de6930c7e65fd716519118778 [INFO] linting computer-graphics-tools/metal-analyzer against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcomputer-graphics-tools%2Fmetal-analyzer" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/computer-graphics-tools/metal-analyzer [INFO] finished tweaking git repo https://github.com/computer-graphics-tools/metal-analyzer [INFO] tweaked toml for git repo https://github.com/computer-graphics-tools/metal-analyzer written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/computer-graphics-tools/metal-analyzer 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/computer-graphics-tools/metal-analyzer 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 tracing-appender v0.2.4 [INFO] [stderr] Downloaded tower-lsp v0.20.0 [INFO] [stderr] Downloaded toml v1.0.3+spec-1.1.0 [INFO] [stderr] Downloaded alloca v0.4.0 [INFO] [stderr] Downloaded expect-test v1.5.1 [INFO] [stderr] Downloaded fluent-uri v0.1.4 [INFO] [stderr] Downloaded clang-ast v0.1.35 [INFO] [stderr] Downloaded dissimilar v1.0.10 [INFO] [stderr] Downloaded criterion v0.8.2 [INFO] [stderr] Downloaded logos-codegen v0.16.1 [INFO] [stderr] Downloaded lsp-types v0.94.1 [INFO] [stderr] Downloaded criterion-plot v0.8.2 [INFO] [stderr] Downloaded logos v0.16.1 [INFO] [stderr] Downloaded lsp-types v0.97.0 [INFO] [stderr] Downloaded logos-derive v0.16.1 [INFO] [stderr] Downloaded tower-lsp-macros v0.9.0 [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] 2473c340749f04ca9c8c49e081ce91d5b6cc8539edc8fa0115888c26af734169 [INFO] running `Command { std: "docker" "start" "-a" "2473c340749f04ca9c8c49e081ce91d5b6cc8539edc8fa0115888c26af734169", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2473c340749f04ca9c8c49e081ce91d5b6cc8539edc8fa0115888c26af734169", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2473c340749f04ca9c8c49e081ce91d5b6cc8539edc8fa0115888c26af734169", kill_on_drop: false }` [INFO] [stdout] 2473c340749f04ca9c8c49e081ce91d5b6cc8539edc8fa0115888c26af734169 [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] 14c64d6662008d8956af1bd098989c840d1d3889663854e534df0ab0fda9cdf0 [INFO] running `Command { std: "docker" "start" "-a" "14c64d6662008d8956af1bd098989c840d1d3889663854e534df0ab0fda9cdf0", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Checking futures-channel v0.3.32 [INFO] [stderr] Checking tracing-core v0.1.36 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling zerocopy-derive v0.8.39 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Checking icu_normalizer v2.1.1 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking clap_lex v1.0.0 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Checking tokio v1.49.0 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking time-core v0.1.8 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking winnow v0.7.14 [INFO] [stderr] Checking num-conv v0.2.0 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tower-lsp-macros v0.9.0 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Compiling auto_impl v1.3.0 [INFO] [stderr] Checking fluent-uri v0.1.4 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking ciborium-io v0.2.2 [INFO] [stderr] Checking countme v3.0.1 [INFO] [stderr] Checking text-size v1.1.1 [INFO] [stderr] Checking foldhash v0.2.0 [INFO] [stderr] Checking toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Checking rowan v0.16.1 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Checking serde_spanned v1.0.4 [INFO] [stderr] Checking toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Checking clang-ast v0.1.35 [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking futures-executor v0.3.32 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking dashmap v6.1.0 [INFO] [stderr] Checking futures v0.3.32 [INFO] [stderr] Checking plotters v0.3.7 [INFO] [stderr] Checking page_size v0.6.0 [INFO] [stderr] Checking oorandom v11.1.5 [INFO] [stderr] Checking anes v0.1.6 [INFO] [stderr] Checking dissimilar v1.0.10 [INFO] [stderr] Checking url v2.5.8 [INFO] [stderr] Checking tower v0.5.3 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Checking lsp-types v0.97.0 [INFO] [stderr] Checking tinytemplate v1.2.1 [INFO] [stderr] Checking expect-test v1.5.1 [INFO] [stderr] Checking matchers v0.2.0 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Compiling wasmparser v0.227.1 [INFO] [stderr] Checking tracing-subscriber v0.3.22 [INFO] [stderr] Checking lsp-types v0.94.1 [INFO] [stderr] Checking toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Checking criterion-plot v0.8.2 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling wasm-encoder v0.227.1 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Checking toml v1.0.3+spec-1.1.0 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling id-arena v2.3.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling topological-sort v0.2.2 [INFO] [stderr] Compiling leb128fmt v0.1.0 [INFO] [stderr] Compiling spdx v0.10.9 [INFO] [stderr] Compiling wit-bindgen-rust v0.41.0 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling wit-bindgen-rt v0.41.0 [INFO] [stderr] Compiling wit-bindgen-rust-macro v0.41.0 [INFO] [stderr] Compiling zed_extension_api v0.7.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Checking tracing-appender v0.2.4 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Compiling logos-codegen v0.16.1 [INFO] [stderr] Checking ciborium-ll v0.2.2 [INFO] [stderr] Checking tokio-util v0.7.18 [INFO] [stderr] Checking ciborium v0.2.2 [INFO] [stderr] Compiling auditable-serde v0.8.0 [INFO] [stderr] Checking criterion v0.8.2 [INFO] [stderr] Compiling logos-derive v0.16.1 [INFO] [stderr] Checking logos v0.16.1 [INFO] [stderr] Checking tower-lsp v0.20.0 [INFO] [stderr] Compiling wit-parser v0.227.1 [INFO] [stderr] Compiling wasm-metadata v0.227.1 [INFO] [stderr] Checking metal-analyzer v0.1.18 (/opt/rustwide/workdir/crates/metal-analyzer) [INFO] [stderr] Compiling wit-bindgen-core v0.41.0 [INFO] [stderr] Compiling wit-component v0.227.1 [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> crates/metal-analyzer/src/config/mod.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | / impl Default for ServerSettings { [INFO] [stdout] 54 | | fn default() -> Self { [INFO] [stdout] 55 | | Self { [INFO] [stdout] 56 | | formatting: FormattingSettings::default(), [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 44 + #[derive(Default)] [INFO] [stdout] 45 | pub struct ServerSettings { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/definition/fallback_lookup.rs:133:1 [INFO] [stdout] | [INFO] [stdout] 133 | / pub(super) fn resolve_from_project_index( [INFO] [stdout] 134 | | project_index: &ProjectIndex, [INFO] [stdout] 135 | | project_graph: &ProjectGraph, [INFO] [stdout] 136 | | source_file: &str, [INFO] [stdout] ... | [INFO] [stdout] 141 | | position: Position, [INFO] [stdout] 142 | | ) -> Option { [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/metal-analyzer/src/definition/perf.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | if requests % 200 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `requests.is_multiple_of(200)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/definition/provider.rs:164:5 [INFO] [stdout] | [INFO] [stdout] 164 | / fn provide_inner( [INFO] [stdout] 165 | | &self, [INFO] [stdout] 166 | | uri: &Url, [INFO] [stdout] 167 | | position: Position, [INFO] [stdout] ... | [INFO] [stdout] 172 | | is_cancelled: &dyn Fn() -> bool, [INFO] [stdout] 173 | | ) -> Option { [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 `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/definition/provider.rs:195:21 [INFO] [stdout] | [INFO] [stdout] 195 | / if is_system { [INFO] [stdout] 196 | | if let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) { [INFO] [stdout] 197 | | if let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | | return Some(loc); [INFO] [stdout] ... | [INFO] [stdout] 201 | | } [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] 195 ~ if is_system [INFO] [stdout] 196 ~ && let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) { [INFO] [stdout] 197 | if let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | return Some(loc); [INFO] [stdout] 199 | } [INFO] [stdout] 200 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/definition/provider.rs:196:25 [INFO] [stdout] | [INFO] [stdout] 196 | / if let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) { [INFO] [stdout] 197 | | if let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | | return Some(loc); [INFO] [stdout] 199 | | } [INFO] [stdout] 200 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 196 ~ if let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) [INFO] [stdout] 197 ~ && let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | return Some(loc); [INFO] [stdout] 199 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/hover/provider.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / if let Some(index) = self.definition_provider.get_cached_index(uri) { [INFO] [stdout] 104 | | if let Some(indices) = index.name_to_defs.get(word) { [INFO] [stdout] 105 | | for &i in indices { [INFO] [stdout] 106 | | let def = &index.defs[i]; [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ if let Some(index) = self.definition_provider.get_cached_index(uri) [INFO] [stdout] 104 ~ && let Some(indices) = index.name_to_defs.get(word) { [INFO] [stdout] 105 | for &i in indices { [INFO] [stdout] ... [INFO] [stdout] 110 | } [INFO] [stdout] 111 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | if done % 5 == 0 || done == total { [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `done.is_multiple_of(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:309:20 [INFO] [stdout] | [INFO] [stdout] 309 | if done % 5 == 0 || done == total { [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `done.is_multiple_of(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:360:20 [INFO] [stdout] | [INFO] [stdout] 360 | if !path.extension().is_some_and(|ext| ext == "metal") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `path.extension().is_none_or(|ext| ext != "metal")` [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 function has too many arguments (10/7) [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:388:1 [INFO] [stdout] | [INFO] [stdout] 388 | / async fn publish_workspace_diagnostics_for_file( [INFO] [stdout] 389 | | client: &tower_lsp::Client, [INFO] [stdout] 390 | | compiler: &crate::metal::compiler::MetalCompiler, [INFO] [stdout] 391 | | workspace_roots: &[PathBuf], [INFO] [stdout] ... | [INFO] [stdout] 398 | | path: PathBuf, [INFO] [stdout] 399 | | ) -> WorkspaceDiagnosticsFileResult { [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: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:528:11 [INFO] [stdout] | [INFO] [stdout] 528 | file: &PathBuf, [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] 528 - file: &PathBuf, [INFO] [stdout] 528 + file: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:564:1 [INFO] [stdout] | [INFO] [stdout] 564 | / pub(super) async fn compile_filtered_diagnostics_for_document( [INFO] [stdout] 565 | | compiler: &crate::metal::compiler::MetalCompiler, [INFO] [stdout] 566 | | workspace_roots: &[PathBuf], [INFO] [stdout] 567 | | header_owners: &DashMap>, [INFO] [stdout] ... | [INFO] [stdout] 572 | | text: &str, [INFO] [stdout] 573 | | ) -> 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 (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:608:1 [INFO] [stdout] | [INFO] [stdout] 608 | / async fn compile_header_owner_diagnostics( [INFO] [stdout] 609 | | compiler: &crate::metal::compiler::MetalCompiler, [INFO] [stdout] 610 | | workspace_roots: &[PathBuf], [INFO] [stdout] 611 | | header_owners: &DashMap>, [INFO] [stdout] ... | [INFO] [stdout] 616 | | header_path: &Path, [INFO] [stdout] 617 | | ) -> 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 boolean expression can be simplified [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:668:16 [INFO] [stdout] | [INFO] [stdout] 668 | if !path.extension().is_some_and(|ext| ext == "metal") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `path.extension().is_none_or(|ext| ext != "metal")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/server/handler.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | / if let Some(generation) = diagnostics_generation_value { [INFO] [stdout] 239 | | if let Some(doc) = document_store.get(&uri) { [INFO] [stdout] 240 | | let diagnostics = compile_filtered_diagnostics_for_document( [INFO] [stdout] 241 | | &compiler, [INFO] [stdout] ... | [INFO] [stdout] 263 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 238 ~ if let Some(generation) = diagnostics_generation_value [INFO] [stdout] 239 ~ && let Some(doc) = document_store.get(&uri) { [INFO] [stdout] 240 | let diagnostics = compile_filtered_diagnostics_for_document( [INFO] [stdout] ... [INFO] [stdout] 261 | } [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking wit-bindgen v0.41.0 [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> crates/metal-analyzer/src/config/mod.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | / impl Default for ServerSettings { [INFO] [stdout] 54 | | fn default() -> Self { [INFO] [stdout] 55 | | Self { [INFO] [stdout] 56 | | formatting: FormattingSettings::default(), [INFO] [stdout] ... | [INFO] [stdout] 64 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 44 + #[derive(Default)] [INFO] [stdout] 45 | pub struct ServerSettings { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking zed_metal v0.1.18 (/opt/rustwide/workdir/editors/zed) [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/definition/fallback_lookup.rs:133:1 [INFO] [stdout] | [INFO] [stdout] 133 | / pub(super) fn resolve_from_project_index( [INFO] [stdout] 134 | | project_index: &ProjectIndex, [INFO] [stdout] 135 | | project_graph: &ProjectGraph, [INFO] [stdout] 136 | | source_file: &str, [INFO] [stdout] ... | [INFO] [stdout] 141 | | position: Position, [INFO] [stdout] 142 | | ) -> Option { [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: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/metal-analyzer/src/definition/perf.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | if requests % 200 == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: replace with: `requests.is_multiple_of(200)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/definition/provider.rs:164:5 [INFO] [stdout] | [INFO] [stdout] 164 | / fn provide_inner( [INFO] [stdout] 165 | | &self, [INFO] [stdout] 166 | | uri: &Url, [INFO] [stdout] 167 | | position: Position, [INFO] [stdout] ... | [INFO] [stdout] 172 | | is_cancelled: &dyn Fn() -> bool, [INFO] [stdout] 173 | | ) -> Option { [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 `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/definition/provider.rs:195:21 [INFO] [stdout] | [INFO] [stdout] 195 | / if is_system { [INFO] [stdout] 196 | | if let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) { [INFO] [stdout] 197 | | if let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | | return Some(loc); [INFO] [stdout] ... | [INFO] [stdout] 201 | | } [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] 195 ~ if is_system [INFO] [stdout] 196 ~ && let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) { [INFO] [stdout] 197 | if let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | return Some(loc); [INFO] [stdout] 199 | } [INFO] [stdout] 200 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/definition/provider.rs:196:25 [INFO] [stdout] | [INFO] [stdout] 196 | / if let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) { [INFO] [stdout] 197 | | if let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | | return Some(loc); [INFO] [stdout] 199 | | } [INFO] [stdout] 200 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 196 ~ if let Some(resolved) = crate::server::header_owners::resolve_framework_include(framework_root, &path) [INFO] [stdout] 197 ~ && let Some(loc) = check_path(resolved) { [INFO] [stdout] 198 | return Some(loc); [INFO] [stdout] 199 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | .map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] = note: `#[warn(clippy::manual_inspect)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 50 ~ .inspect_err(|error| { [INFO] [stdout] 51 | zed::set_language_server_installation_status( [INFO] [stdout] 52 | language_server_id, [INFO] [stdout] 53 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 54 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:96:14 [INFO] [stdout] | [INFO] [stdout] 96 | .map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 96 ~ .inspect_err(|error| { [INFO] [stdout] 97 | zed::set_language_server_installation_status( [INFO] [stdout] 98 | language_server_id, [INFO] [stdout] 99 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 100 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:50:10 [INFO] [stdout] | [INFO] [stdout] 50 | .map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] = note: `#[warn(clippy::manual_inspect)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 50 ~ .inspect_err(|error| { [INFO] [stdout] 51 | zed::set_language_server_installation_status( [INFO] [stdout] 52 | language_server_id, [INFO] [stdout] 53 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 54 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:108:92 [INFO] [stdout] | [INFO] [stdout] 108 | zed::download_file(&asset.download_url, &version_dir, DownloadedFileType::GzipTar).map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 108 ~ zed::download_file(&asset.download_url, &version_dir, DownloadedFileType::GzipTar).inspect_err(|error| { [INFO] [stdout] 109 | zed::set_language_server_installation_status( [INFO] [stdout] 110 | language_server_id, [INFO] [stdout] 111 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 112 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:115:49 [INFO] [stdout] | [INFO] [stdout] 115 | zed::make_file_executable(&binary_path).map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 115 ~ zed::make_file_executable(&binary_path).inspect_err(|error| { [INFO] [stdout] 116 | zed::set_language_server_installation_status( [INFO] [stdout] 117 | language_server_id, [INFO] [stdout] 118 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 119 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:96:14 [INFO] [stdout] | [INFO] [stdout] 96 | .map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 96 ~ .inspect_err(|error| { [INFO] [stdout] 97 | zed::set_language_server_installation_status( [INFO] [stdout] 98 | language_server_id, [INFO] [stdout] 99 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 100 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:108:92 [INFO] [stdout] | [INFO] [stdout] 108 | zed::download_file(&asset.download_url, &version_dir, DownloadedFileType::GzipTar).map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 108 ~ zed::download_file(&asset.download_url, &version_dir, DownloadedFileType::GzipTar).inspect_err(|error| { [INFO] [stdout] 109 | zed::set_language_server_installation_status( [INFO] [stdout] 110 | language_server_id, [INFO] [stdout] 111 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 112 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `map_err` over `inspect_err` [INFO] [stdout] --> editors/zed/src/metal.rs:115:49 [INFO] [stdout] | [INFO] [stdout] 115 | zed::make_file_executable(&binary_path).map_err(|error| { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_inspect [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 115 ~ zed::make_file_executable(&binary_path).inspect_err(|error| { [INFO] [stdout] 116 | zed::set_language_server_installation_status( [INFO] [stdout] 117 | language_server_id, [INFO] [stdout] 118 | &zed::LanguageServerInstallationStatus::None, [INFO] [stdout] 119 ~ ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/metal-analyzer/tests/definition_exhaustive.rs:273:12 [INFO] [stdout] | [INFO] [stdout] 273 | if !file.extension().is_some_and(|e| e == "metal") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `file.extension().is_none_or(|e| e != "metal")` [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 boolean expression can be simplified [INFO] [stdout] --> crates/metal-analyzer/tests/definition_exhaustive.rs:354:12 [INFO] [stdout] | [INFO] [stdout] 354 | if !file.extension().is_some_and(|e| e == "metal") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `file.extension().is_none_or(|e| e != "metal")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/hover/provider.rs:103:9 [INFO] [stdout] | [INFO] [stdout] 103 | / if let Some(index) = self.definition_provider.get_cached_index(uri) { [INFO] [stdout] 104 | | if let Some(indices) = index.name_to_defs.get(word) { [INFO] [stdout] 105 | | for &i in indices { [INFO] [stdout] 106 | | let def = &index.defs[i]; [INFO] [stdout] ... | [INFO] [stdout] 112 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 103 ~ if let Some(index) = self.definition_provider.get_cached_index(uri) [INFO] [stdout] 104 ~ && let Some(indices) = index.name_to_defs.get(word) { [INFO] [stdout] 105 | for &i in indices { [INFO] [stdout] ... [INFO] [stdout] 110 | } [INFO] [stdout] 111 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this call to `clone` can be replaced with `std::slice::from_ref` [INFO] [stdout] --> crates/metal-analyzer/src/metal/../../tests/src/metal/compiler_tests.rs:380:51 [INFO] [stdout] | [INFO] [stdout] 380 | let paths = compute_include_paths(&file, Some(&[temp_dir.clone()])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&temp_dir)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs [INFO] [stdout] = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:243:20 [INFO] [stdout] | [INFO] [stdout] 243 | if done % 5 == 0 || done == total { [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `done.is_multiple_of(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/metal-analyzer/src/main.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | let _ = futures::executor::block_on(client.show_message(MessageType::ERROR, message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 236 - let _ = futures::executor::block_on(client.show_message(MessageType::ERROR, message)); [INFO] [stdout] 236 + futures::executor::block_on(client.show_message(MessageType::ERROR, message)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:309:20 [INFO] [stdout] | [INFO] [stdout] 309 | if done % 5 == 0 || done == total { [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `done.is_multiple_of(5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:360:20 [INFO] [stdout] | [INFO] [stdout] 360 | if !path.extension().is_some_and(|ext| ext == "metal") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `path.extension().is_none_or(|ext| ext != "metal")` [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 function has too many arguments (10/7) [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:388:1 [INFO] [stdout] | [INFO] [stdout] 388 | / async fn publish_workspace_diagnostics_for_file( [INFO] [stdout] 389 | | client: &tower_lsp::Client, [INFO] [stdout] 390 | | compiler: &crate::metal::compiler::MetalCompiler, [INFO] [stdout] 391 | | workspace_roots: &[PathBuf], [INFO] [stdout] ... | [INFO] [stdout] 398 | | path: PathBuf, [INFO] [stdout] 399 | | ) -> WorkspaceDiagnosticsFileResult { [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: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:528:11 [INFO] [stdout] | [INFO] [stdout] 528 | file: &PathBuf, [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] 528 - file: &PathBuf, [INFO] [stdout] 528 + file: &Path, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:564:1 [INFO] [stdout] | [INFO] [stdout] 564 | / pub(super) async fn compile_filtered_diagnostics_for_document( [INFO] [stdout] 565 | | compiler: &crate::metal::compiler::MetalCompiler, [INFO] [stdout] 566 | | workspace_roots: &[PathBuf], [INFO] [stdout] 567 | | header_owners: &DashMap>, [INFO] [stdout] ... | [INFO] [stdout] 572 | | text: &str, [INFO] [stdout] 573 | | ) -> 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 (8/7) [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:608:1 [INFO] [stdout] | [INFO] [stdout] 608 | / async fn compile_header_owner_diagnostics( [INFO] [stdout] 609 | | compiler: &crate::metal::compiler::MetalCompiler, [INFO] [stdout] 610 | | workspace_roots: &[PathBuf], [INFO] [stdout] 611 | | header_owners: &DashMap>, [INFO] [stdout] ... | [INFO] [stdout] 616 | | header_path: &Path, [INFO] [stdout] 617 | | ) -> 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 boolean expression can be simplified [INFO] [stdout] --> crates/metal-analyzer/src/server/diagnostics.rs:668:16 [INFO] [stdout] | [INFO] [stdout] 668 | if !path.extension().is_some_and(|ext| ext == "metal") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `path.extension().is_none_or(|ext| ext != "metal")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> crates/metal-analyzer/src/server/handler.rs:238:13 [INFO] [stdout] | [INFO] [stdout] 238 | / if let Some(generation) = diagnostics_generation_value { [INFO] [stdout] 239 | | if let Some(doc) = document_store.get(&uri) { [INFO] [stdout] 240 | | let diagnostics = compile_filtered_diagnostics_for_document( [INFO] [stdout] 241 | | &compiler, [INFO] [stdout] ... | [INFO] [stdout] 263 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 238 ~ if let Some(generation) = diagnostics_generation_value [INFO] [stdout] 239 ~ && let Some(doc) = document_store.get(&uri) { [INFO] [stdout] 240 | let diagnostics = compile_filtered_diagnostics_for_document( [INFO] [stdout] ... [INFO] [stdout] 261 | } [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> crates/metal-analyzer/src/main.rs:236:13 [INFO] [stdout] | [INFO] [stdout] 236 | let _ = futures::executor::block_on(client.show_message(MessageType::ERROR, message)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 236 - let _ = futures::executor::block_on(client.show_message(MessageType::ERROR, message)); [INFO] [stdout] 236 + futures::executor::block_on(client.show_message(MessageType::ERROR, message)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> crates/metal-analyzer/src/server/../../tests/src/server/formatting_tests.rs:23:34 [INFO] [stdout] | [INFO] [stdout] 23 | let args = clang_format_args(&vec!["--sort-includes=false".to_string()], "/tmp/shader.metal".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&["--sort-includes=false".to_string()]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.82s [INFO] running `Command { std: "docker" "inspect" "14c64d6662008d8956af1bd098989c840d1d3889663854e534df0ab0fda9cdf0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "14c64d6662008d8956af1bd098989c840d1d3889663854e534df0ab0fda9cdf0", kill_on_drop: false }` [INFO] [stdout] 14c64d6662008d8956af1bd098989c840d1d3889663854e534df0ab0fda9cdf0