[INFO] cloning repository https://github.com/ZoneMix/ostendo [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ZoneMix/ostendo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZoneMix%2Fostendo", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZoneMix%2Fostendo'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4dd20fb0b51f5435bdd465d11434638d3d6eee3a [INFO] linting ZoneMix/ostendo against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FZoneMix%2Fostendo" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ZoneMix/ostendo [INFO] finished tweaking git repo https://github.com/ZoneMix/ostendo [INFO] tweaked toml for git repo https://github.com/ZoneMix/ostendo written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ZoneMix/ostendo 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/ZoneMix/ostendo already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap_lex v1.0.0 [INFO] [stderr] Downloaded phf_generator v0.13.1 [INFO] [stderr] Downloaded phf v0.13.1 [INFO] [stderr] Downloaded figlet-rs v0.1.5 [INFO] [stderr] Downloaded caseless v0.2.2 [INFO] [stderr] Downloaded signal-hook v0.3.18 [INFO] [stderr] Downloaded clap v4.5.60 [INFO] [stderr] Downloaded libyml v0.0.5 [INFO] [stderr] Downloaded zerocopy-derive v0.8.40 [INFO] [stderr] Downloaded tiny-skia-path v0.12.0 [INFO] [stderr] Downloaded crossterm v0.29.0 [INFO] [stderr] Downloaded clap_builder v4.5.60 [INFO] [stderr] Downloaded usvg v0.47.0 [INFO] [stderr] Downloaded resvg v0.47.0 [INFO] [stderr] Downloaded comrak v0.50.0 [INFO] [stderr] Downloaded serial2 v0.2.34 [INFO] [stderr] Downloaded serde_yml v0.0.12 [INFO] [stderr] Downloaded tiny-skia v0.12.0 [INFO] [stderr] Downloaded zerocopy v0.8.40 [INFO] [stderr] Downloaded nix v0.28.0 [INFO] [stderr] Downloaded plist v1.8.0 [INFO] [stderr] Downloaded yaml-rust v0.4.5 [INFO] [stderr] Downloaded entities v1.0.1 [INFO] [stderr] Downloaded jetscii v0.5.3 [INFO] [stderr] Downloaded portable-pty v0.9.0 [INFO] [stderr] Downloaded onig v6.5.1 [INFO] [stderr] Downloaded phf_codegen v0.13.1 [INFO] [stderr] Downloaded phf_shared v0.13.1 [INFO] [stderr] Downloaded signal-hook-mio v0.2.5 [INFO] [stderr] Downloaded filedescriptor v0.8.3 [INFO] [stderr] Downloaded shared_library v0.1.9 [INFO] [stderr] Downloaded shell-words v1.1.1 [INFO] [stderr] Downloaded onig_sys v69.9.1 [INFO] [stderr] Downloaded icy_sixel v0.1.3 [INFO] [stderr] Downloaded syntect v5.3.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] eb5b1aabdc1ff7007a77992172f92ede8effe86320f8e1a1d4a9ff462ea41326 [INFO] running `Command { std: "docker" "start" "-a" "eb5b1aabdc1ff7007a77992172f92ede8effe86320f8e1a1d4a9ff462ea41326", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "eb5b1aabdc1ff7007a77992172f92ede8effe86320f8e1a1d4a9ff462ea41326", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eb5b1aabdc1ff7007a77992172f92ede8effe86320f8e1a1d4a9ff462ea41326", kill_on_drop: false }` [INFO] [stdout] eb5b1aabdc1ff7007a77992172f92ede8effe86320f8e1a1d4a9ff462ea41326 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] fc6c5fec215cee8604449d38c6d9e00622e18b4a5ded7da65e864d163a353322 [INFO] running `Command { std: "docker" "start" "-a" "fc6c5fec215cee8604449d38c6d9e00622e18b4a5ded7da65e864d163a353322", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking simd-adler32 v0.3.8 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Checking crc32fast v1.5.0 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling zerocopy-derive v0.8.40 [INFO] [stderr] Compiling equator-macro v0.4.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Checking tinyvec v1.10.0 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking rayon v1.11.0 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling slotmap v1.1.1 [INFO] [stderr] Checking as-slice v0.2.1 [INFO] [stderr] Compiling av-scenechange v0.14.1 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Compiling built v0.8.0 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Checking aligned v0.4.3 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Compiling arg_enum_proc_macro v0.3.4 [INFO] [stderr] Compiling profiling-procmacros v1.0.17 [INFO] [stderr] Checking core2 v0.4.0 [INFO] [stderr] Checking nom v8.0.0 [INFO] [stderr] Checking weezl v0.1.12 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Checking y4m v0.8.0 [INFO] [stderr] Compiling pastey v0.1.1 [INFO] [stderr] Checking equator v0.4.2 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling cfg_aliases v0.1.1 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Checking png v0.18.1 [INFO] [stderr] Checking core_maths v0.1.1 [INFO] [stderr] Checking aligned-vec v0.6.4 [INFO] [stderr] Compiling rav1e v0.8.1 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Checking v_frame v0.3.9 [INFO] [stderr] Checking tiny-skia-path v0.12.0 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Checking bitstream-io v4.9.0 [INFO] [stderr] Compiling phf_codegen v0.13.1 [INFO] [stderr] Checking rgb v0.8.53 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Compiling fax_derive v0.2.0 [INFO] [stderr] Compiling num-derive v0.4.2 [INFO] [stderr] Checking indexmap v2.13.0 [INFO] [stderr] Compiling simd_helpers v0.1.0 [INFO] [stderr] Checking kurbo v0.13.0 [INFO] [stderr] Checking num-rational v0.4.2 [INFO] [stderr] Checking maybe-rayon v0.1.1 [INFO] [stderr] Checking anstyle-query v1.1.5 [INFO] [stderr] Compiling noop_proc_macro v0.3.0 [INFO] [stderr] Compiling entities v1.0.1 [INFO] [stderr] Checking unicode-properties v0.1.4 [INFO] [stderr] Compiling onig_sys v69.9.1 [INFO] [stderr] Checking zune-core v0.5.1 [INFO] [stderr] Checking linux-raw-sys v0.12.1 [INFO] [stderr] Compiling jetscii v0.5.3 [INFO] [stderr] Checking unicode-ccc v0.4.0 [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking imgref v1.12.0 [INFO] [stderr] Checking unicode-bidi-mirroring v0.4.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Checking num-conv v0.2.0 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking memmap2 v0.9.10 [INFO] [stderr] Checking time-core v0.1.8 [INFO] [stderr] Checking zune-core v0.4.12 [INFO] [stderr] Checking unicode-script v0.5.8 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Checking svgtypes v0.16.1 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking zune-jpeg v0.4.21 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking loop9 v0.1.5 [INFO] [stderr] Checking socket2 v0.6.3 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking gif v0.14.1 [INFO] [stderr] Checking zune-jpeg v0.5.12 [INFO] [stderr] Compiling comrak v0.50.0 [INFO] [stderr] Checking image-webp v0.2.4 [INFO] [stderr] Checking fax v0.2.6 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Checking unicode-normalization v0.1.25 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking simplecss v0.2.2 [INFO] [stderr] Checking avif-serialize v0.8.8 [INFO] [stderr] Checking roxmltree v0.21.1 [INFO] [stderr] Compiling serde_yml v0.0.12 [INFO] [stderr] Checking quick-xml v0.38.4 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking pxfm v0.1.28 [INFO] [stderr] Checking fontdb v0.23.0 [INFO] [stderr] Checking rustybuzz v0.20.1 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Checking unicode-bidi v0.3.18 [INFO] [stderr] Checking futures-sink v0.3.32 [INFO] [stderr] Checking imagesize v0.14.0 [INFO] [stderr] Checking linked-hash-map v0.5.6 [INFO] [stderr] Checking lebe v0.5.3 [INFO] [stderr] Checking xmlwriter v0.1.0 [INFO] [stderr] Checking av1-grain v0.2.5 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking clap_lex v1.0.0 [INFO] [stderr] Checking unicode-vo v0.1.0 [INFO] [stderr] Checking pico-args v0.5.0 [INFO] [stderr] Checking data-url v0.3.2 [INFO] [stderr] Checking bit_field v0.10.3 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking futures-util v0.3.32 [INFO] [stderr] Checking clap_builder v4.5.60 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking caseless v0.2.2 [INFO] [stderr] Checking plist v1.8.0 [INFO] [stderr] Checking phf v0.13.1 [INFO] [stderr] Checking tokio v1.50.0 [INFO] [stderr] Checking filedescriptor v0.8.3 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking serial2 v0.2.34 [INFO] [stderr] Checking tiny-skia v0.12.0 [INFO] [stderr] Checking libyml v0.0.5 [INFO] [stderr] Checking bincode v1.3.3 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking unicode_categories v0.1.1 [INFO] [stderr] Checking shell-words v1.1.1 [INFO] [stderr] Compiling ostendo v0.4.0 (/opt/rustwide/workdir) [INFO] [stderr] Checking typed-arena v2.0.2 [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> build.rs:16:16 [INFO] [stdout] | [INFO] [stdout] 16 | if path.extension().map_or(false, |e| e == "yaml" || e == "yml") { [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] 16 - if path.extension().map_or(false, |e| e == "yaml" || e == "yml") { [INFO] [stdout] 16 + if path.extension().is_some_and(|e| e == "yaml" || e == "yml") { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Checking rustc-hash v2.1.1 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking portable-pty v0.9.0 [INFO] [stderr] Checking tempfile v3.26.0 [INFO] [stderr] Checking crossterm v0.29.0 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking figlet-rs v0.1.5 [INFO] [stderr] Checking unicode-width v0.2.2 [INFO] [stderr] Checking icy_sixel v0.1.3 [INFO] [stderr] Checking usvg v0.47.0 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking half v2.7.1 [INFO] [stderr] Checking clap v4.5.60 [INFO] [stderr] Checking exr v1.74.0 [INFO] [stderr] Checking tiff v0.10.3 [INFO] [stderr] Checking onig v6.5.1 [INFO] [stderr] Checking moxcms v0.7.11 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking syntect v5.3.0 [INFO] [stderr] Checking tungstenite v0.28.0 [INFO] [stderr] Checking resvg v0.47.0 [INFO] [stderr] Checking tokio-tungstenite v0.28.0 [INFO] [stderr] Checking ravif v0.12.0 [INFO] [stderr] Checking image v0.25.9 [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/diagram/render_box.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / /// ``` [INFO] [stdout] 10 | | [INFO] [stdout] | |_^ [INFO] [stdout] 11 | use crossterm::style::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Box-drawing style renderer. [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Produces Unicode box-drawing diagrams: [INFO] [stdout] 4 ~ //! ```text [INFO] [stdout] 5 ~ //! ┌──────────┐ ┌──────────┐ ┌──────────┐ [INFO] [stdout] 6 ~ //! │ Node A │───→│ Node B │───→│ Node C │ [INFO] [stdout] 7 ~ //! └──────────┘ └──────────┘ └──────────┘ [INFO] [stdout] 8 ~ //! annotation annotation annotation [INFO] [stdout] 9 ~ //! ``` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/diagram/render_bracket.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / /// ``` [INFO] [stdout] 8 | | [INFO] [stdout] | |_^ [INFO] [stdout] 9 | use crossterm::style::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Bracket-style renderer. [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Produces compact bracket diagrams: [INFO] [stdout] 4 ~ //! ```text [INFO] [stdout] 5 ~ //! [Node A] → [Node B] → [Node C] [INFO] [stdout] 6 ~ //! note A note B note C [INFO] [stdout] 7 ~ //! ``` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/diagram/render_vertical.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | / /// ``` [INFO] [stdout] 14 | | [INFO] [stdout] | |_^ [INFO] [stdout] 15 | use crossterm::style::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Vertical flow renderer. [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Produces top-to-bottom pipe diagrams: [INFO] [stdout] 4 ~ //! ```text [INFO] [stdout] 5 ~ //! Node A [INFO] [stdout] 6 ~ //! │ [INFO] [stdout] 7 ~ //! ▼ [INFO] [stdout] 8 ~ //! Node B [INFO] [stdout] 9 ~ //! annotation [INFO] [stdout] 10 ~ //! │ [INFO] [stdout] 11 ~ //! ▼ [INFO] [stdout] 12 ~ //! Node C [INFO] [stdout] 13 ~ //! ``` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/diagram/render_box.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | / /// ``` [INFO] [stdout] 10 | | [INFO] [stdout] | |_^ [INFO] [stdout] 11 | use crossterm::style::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Box-drawing style renderer. [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Produces Unicode box-drawing diagrams: [INFO] [stdout] 4 ~ //! ```text [INFO] [stdout] 5 ~ //! ┌──────────┐ ┌──────────┐ ┌──────────┐ [INFO] [stdout] 6 ~ //! │ Node A │───→│ Node B │───→│ Node C │ [INFO] [stdout] 7 ~ //! └──────────┘ └──────────┘ └──────────┘ [INFO] [stdout] 8 ~ //! annotation annotation annotation [INFO] [stdout] 9 ~ //! ``` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/diagram/render_bracket.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / /// ``` [INFO] [stdout] 8 | | [INFO] [stdout] | |_^ [INFO] [stdout] 9 | use crossterm::style::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Bracket-style renderer. [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Produces compact bracket diagrams: [INFO] [stdout] 4 ~ //! ```text [INFO] [stdout] 5 ~ //! [Node A] → [Node B] → [Node C] [INFO] [stdout] 6 ~ //! note A note B note C [INFO] [stdout] 7 ~ //! ``` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/diagram/render_vertical.rs:13:1 [INFO] [stdout] | [INFO] [stdout] 13 | / /// ``` [INFO] [stdout] 14 | | [INFO] [stdout] | |_^ [INFO] [stdout] 15 | use crossterm::style::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Vertical flow renderer. [INFO] [stdout] 2 ~ //! [INFO] [stdout] 3 ~ //! Produces top-to-bottom pipe diagrams: [INFO] [stdout] 4 ~ //! ```text [INFO] [stdout] 5 ~ //! Node A [INFO] [stdout] 6 ~ //! │ [INFO] [stdout] 7 ~ //! ▼ [INFO] [stdout] 8 ~ //! Node B [INFO] [stdout] 9 ~ //! annotation [INFO] [stdout] 10 ~ //! │ [INFO] [stdout] 11 ~ //! ▼ [INFO] [stdout] 12 ~ //! Node C [INFO] [stdout] 13 ~ //! ``` [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/markdown/parser.rs:371:31 [INFO] [stdout] | [INFO] [stdout] 371 | fullscreen = Some(caps.get(1).map_or(true, |m| m.as_str() != "false")); [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_none_or` instead [INFO] [stdout] | [INFO] [stdout] 371 - fullscreen = Some(caps.get(1).map_or(true, |m| m.as_str() != "false")); [INFO] [stdout] 371 + fullscreen = Some(caps.get(1).is_none_or(|m| m.as_str() != "false")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/render/engine/content.rs:444:21 [INFO] [stdout] | [INFO] [stdout] 444 | / let mut spans = Vec::new(); [INFO] [stdout] 445 | | spans.push(StyledSpan::new(" ").with_bg(self.code_bg_color)); [INFO] [stdout] | |____________________________________________________________________________________^ help: consider using the `vec![]` macro: `let mut spans = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/render/engine/input.rs:298:20 [INFO] [stdout] | [INFO] [stdout] 298 | || slide.columns.as_ref().map_or(false, |cols| [INFO] [stdout] | ____________________^ [INFO] [stdout] 299 | | cols.contents.iter().any(|c| c.code_blocks.iter().any(|cb| cb.exec_mode.is_some())) [INFO] [stdout] 300 | | )); [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] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 298 - || slide.columns.as_ref().map_or(false, |cols| [INFO] [stdout] 298 + || slide.columns.as_ref().is_some_and(|cols| [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/render/engine/input.rs:365:25 [INFO] [stdout] | [INFO] [stdout] 365 | if self.current < self.slides.len() - 1 { self.current += 1; } [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] 364 ~ KeyCode::Char('j') | KeyCode::Down [INFO] [stdout] 365 ~ if self.current < self.slides.len() - 1 => { self.current += 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/render/engine/input.rs:368:25 [INFO] [stdout] | [INFO] [stdout] 368 | if self.current > 0 { self.current -= 1; } [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] 367 ~ KeyCode::Char('k') | KeyCode::Up [INFO] [stdout] 368 ~ if self.current > 0 => { self.current -= 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/render/engine/rendering.rs:1054:17 [INFO] [stdout] | [INFO] [stdout] 1054 | / match self.font_capability { [INFO] [stdout] 1055 | | FontSizeCapability::KittyRemote => { [INFO] [stdout] 1056 | | let stdout = io::stdout(); [INFO] [stdout] 1057 | | let mut pre = stdout.lock(); [INFO] [stdout] ... | [INFO] [stdout] 1061 | | _ => {} // Ghostty keystrokes already sent above [INFO] [stdout] 1062 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1054 ~ if self.font_capability == FontSizeCapability::KittyRemote { [INFO] [stdout] 1055 + let stdout = io::stdout(); [INFO] [stdout] 1056 + let mut pre = stdout.lock(); [INFO] [stdout] 1057 + pre.write_all(kitty_font_escape(target).as_bytes())?; [INFO] [stdout] 1058 + pre.flush()?; [INFO] [stdout] 1059 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/render/engine/mod.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 476 | / pub fn new( [INFO] [stdout] 477 | | slides: Vec, [INFO] [stdout] 478 | | meta: PresentationMeta, [INFO] [stdout] 479 | | theme: Theme, [INFO] [stdout] ... | [INFO] [stdout] 488 | | remote_exec: bool, [INFO] [stdout] 489 | | ) -> Self { [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: the loop variable `i` is used to index `slides` [INFO] [stdout] --> src/render/engine/mod.rs:527:18 [INFO] [stdout] | [INFO] [stdout] 527 | for i in 0..slides.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 527 - for i in 0..slides.len() { [INFO] [stdout] 527 + for (i, ) in slides.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/render/animation/loops.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn render_loop_frame( [INFO] [stdout] 30 | | buffer: &[StyledLine], [INFO] [stdout] 31 | | animation: LoopAnimation, [INFO] [stdout] 32 | | frame: u64, [INFO] [stdout] ... | [INFO] [stdout] 37 | | target: Option<&str>, [INFO] [stdout] 38 | | ) -> 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: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/remote/server.rs:134:75 [INFO] [stdout] | [INFO] [stdout] 134 | ... let ws_stream = match tokio_tungstenite::accept_hdr_async(stream, move |_req: &tokio_tungstenite::tungstenite::http::Reques... [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 135 | | ... if let Some(ref tok) = matched_token { [INFO] [stdout] 136 | | ... resp.headers_mut().insert( [INFO] [stdout] 137 | | ... "Sec-WebSocket-Protocol", [INFO] [stdout] ... | [INFO] [stdout] 141 | | ... Ok(resp) [INFO] [stdout] 142 | | ... }).await { [INFO] [stdout] | |_______^ the `Err`-variant is at least 136 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `tokio_tungstenite::tungstenite::http::Response>`, 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: this `map_or` can be simplified [INFO] [stdout] --> src/markdown/parser.rs:371:31 [INFO] [stdout] | [INFO] [stdout] 371 | fullscreen = Some(caps.get(1).map_or(true, |m| m.as_str() != "false")); [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_none_or` instead [INFO] [stdout] | [INFO] [stdout] 371 - fullscreen = Some(caps.get(1).map_or(true, |m| m.as_str() != "false")); [INFO] [stdout] 371 + fullscreen = Some(caps.get(1).is_none_or(|m| m.as_str() != "false")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to one [INFO] [stdout] --> src/markdown/parser.rs:930:21 [INFO] [stdout] | [INFO] [stdout] 930 | assert!(quote_slides.len() >= 1, "Expected at least 1 slide with block quotes"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!quote_slides.is_empty()` [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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | return run_with_timeout("python3", &["-c", &code], working_dir); [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] 78 - return run_with_timeout("python3", &["-c", &code], working_dir); [INFO] [stdout] 78 + run_with_timeout("python3", &["-c", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | return run_with_timeout("bash", &["-c", &code], working_dir); [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] 81 - return run_with_timeout("bash", &["-c", &code], working_dir); [INFO] [stdout] 81 + run_with_timeout("bash", &["-c", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | return run_with_timeout("node", &["-e", &code], working_dir); [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] 84 - return run_with_timeout("node", &["-e", &code], working_dir); [INFO] [stdout] 84 + run_with_timeout("node", &["-e", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | return run_with_timeout("ruby", &["-e", &code], working_dir); [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] 87 - return run_with_timeout("ruby", &["-e", &code], working_dir); [INFO] [stdout] 87 + run_with_timeout("ruby", &["-e", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:106:13 [INFO] [stdout] | [INFO] [stdout] 106 | return run_with_timeout(&bin_str, &[], working_dir); [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] 106 - return run_with_timeout(&bin_str, &[], working_dir); [INFO] [stdout] 106 + run_with_timeout(&bin_str, &[], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | return compile_and_run(&code, detect_c_compiler(), &["-x", "c", "-o"], working_dir); [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] 109 - return compile_and_run(&code, detect_c_compiler(), &["-x", "c", "-o"], working_dir); [INFO] [stdout] 109 + compile_and_run(&code, detect_c_compiler(), &["-x", "c", "-o"], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | return compile_and_run(&code, detect_cpp_compiler(), &["-x", "c++", "-std=c++17", "-o"], working_dir); [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] 112 - return compile_and_run(&code, detect_cpp_compiler(), &["-x", "c++", "-std=c++17", "-o"], working_dir); [INFO] [stdout] 112 + compile_and_run(&code, detect_cpp_compiler(), &["-x", "c++", "-std=c++17", "-o"], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | return run_with_timeout("go", &["run", &src_str], working_dir); [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] 119 - return run_with_timeout("go", &["run", &src_str], working_dir); [INFO] [stdout] 119 + run_with_timeout("go", &["run", &src_str], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | return run_with_timeout("sh", &["-c", &code], working_dir); [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] 123 - return run_with_timeout("sh", &["-c", &code], working_dir); [INFO] [stdout] 123 + run_with_timeout("sh", &["-c", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/image_util/render.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | / pub fn render_slide_image( [INFO] [stdout] 107 | | image: &SlideImage, [INFO] [stdout] 108 | | content_width: usize, [INFO] [stdout] 109 | | max_height: usize, [INFO] [stdout] ... | [INFO] [stdout] 116 | | preloaded: Option<&image::RgbaImage>, [INFO] [stdout] 117 | | ) -> RenderedImage { [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: manual checked division [INFO] [stdout] --> src/image_util/mod.rs:88:27 [INFO] [stdout] | [INFO] [stdout] 88 | let delay_ms = if denom > 0 { numer / denom } else { 100 }; [INFO] [stdout] | ^^^^^^^^^ ------------- division performed here [INFO] [stdout] | | [INFO] [stdout] | check performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] = note: `#[warn(clippy::manual_checked_ops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/diagram/mod.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / pub fn render_adaptive( [INFO] [stdout] 32 | | graph: &DiagramGraph, [INFO] [stdout] 33 | | style: DiagramStyle, [INFO] [stdout] 34 | | content_width: usize, [INFO] [stdout] ... | [INFO] [stdout] 39 | | pad: &str, [INFO] [stdout] 40 | | ) -> 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: manual checked division [INFO] [stdout] --> src/diagram/mod.rs:99:28 [INFO] [stdout] | [INFO] [stdout] 99 | let max_label = if n > 0 { available / n } else { available }; [INFO] [stdout] | ^^^^^ ------------- division performed here [INFO] [stdout] | | [INFO] [stdout] | check performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/render/engine/content.rs:444:21 [INFO] [stdout] | [INFO] [stdout] 444 | / let mut spans = Vec::new(); [INFO] [stdout] 445 | | spans.push(StyledSpan::new(" ").with_bg(self.code_bg_color)); [INFO] [stdout] | |____________________________________________________________________________________^ help: consider using the `vec![]` macro: `let mut spans = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/render/engine/input.rs:298:20 [INFO] [stdout] | [INFO] [stdout] 298 | || slide.columns.as_ref().map_or(false, |cols| [INFO] [stdout] | ____________________^ [INFO] [stdout] 299 | | cols.contents.iter().any(|c| c.code_blocks.iter().any(|cb| cb.exec_mode.is_some())) [INFO] [stdout] 300 | | )); [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] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 298 - || slide.columns.as_ref().map_or(false, |cols| [INFO] [stdout] 298 + || slide.columns.as_ref().is_some_and(|cols| [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/render/engine/input.rs:365:25 [INFO] [stdout] | [INFO] [stdout] 365 | if self.current < self.slides.len() - 1 { self.current += 1; } [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] 364 ~ KeyCode::Char('j') | KeyCode::Down [INFO] [stdout] 365 ~ if self.current < self.slides.len() - 1 => { self.current += 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/render/engine/input.rs:368:25 [INFO] [stdout] | [INFO] [stdout] 368 | if self.current > 0 { self.current -= 1; } [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] 367 ~ KeyCode::Char('k') | KeyCode::Up [INFO] [stdout] 368 ~ if self.current > 0 => { self.current -= 1; } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/render/engine/rendering.rs:1054:17 [INFO] [stdout] | [INFO] [stdout] 1054 | / match self.font_capability { [INFO] [stdout] 1055 | | FontSizeCapability::KittyRemote => { [INFO] [stdout] 1056 | | let stdout = io::stdout(); [INFO] [stdout] 1057 | | let mut pre = stdout.lock(); [INFO] [stdout] ... | [INFO] [stdout] 1061 | | _ => {} // Ghostty keystrokes already sent above [INFO] [stdout] 1062 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1054 ~ if self.font_capability == FontSizeCapability::KittyRemote { [INFO] [stdout] 1055 + let stdout = io::stdout(); [INFO] [stdout] 1056 + let mut pre = stdout.lock(); [INFO] [stdout] 1057 + pre.write_all(kitty_font_escape(target).as_bytes())?; [INFO] [stdout] 1058 + pre.flush()?; [INFO] [stdout] 1059 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/render/engine/mod.rs:476:5 [INFO] [stdout] | [INFO] [stdout] 476 | / pub fn new( [INFO] [stdout] 477 | | slides: Vec, [INFO] [stdout] 478 | | meta: PresentationMeta, [INFO] [stdout] 479 | | theme: Theme, [INFO] [stdout] ... | [INFO] [stdout] 488 | | remote_exec: bool, [INFO] [stdout] 489 | | ) -> Self { [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: the loop variable `i` is used to index `slides` [INFO] [stdout] --> src/render/engine/mod.rs:527:18 [INFO] [stdout] | [INFO] [stdout] 527 | for i in 0..slides.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 527 - for i in 0..slides.len() { [INFO] [stdout] 527 + for (i, ) in slides.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/render/engine/mod.rs:1291:9 [INFO] [stdout] | [INFO] [stdout] 1291 | / let mut spans: Vec = Vec::new(); [INFO] [stdout] 1292 | | spans.push(StyledSpan::new(" ")); // left padding [INFO] [stdout] | |____________________________________________^ help: consider using the `vec![]` macro: `let mut spans: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/render/engine/mod.rs:1350:9 [INFO] [stdout] | [INFO] [stdout] 1350 | / let mut current_spans: Vec = Vec::new(); [INFO] [stdout] 1351 | | current_spans.push(StyledSpan::new(" ")); // left padding [INFO] [stdout] | |____________________________________________________^ help: consider using the `vec![]` macro: `let mut current_spans: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/render/animation/loops.rs:29:1 [INFO] [stdout] | [INFO] [stdout] 29 | / pub fn render_loop_frame( [INFO] [stdout] 30 | | buffer: &[StyledLine], [INFO] [stdout] 31 | | animation: LoopAnimation, [INFO] [stdout] 32 | | frame: u64, [INFO] [stdout] ... | [INFO] [stdout] 37 | | target: Option<&str>, [INFO] [stdout] 38 | | ) -> 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: the `Err`-variant returned from this closure is very large [INFO] [stdout] --> src/remote/server.rs:134:75 [INFO] [stdout] | [INFO] [stdout] 134 | ... let ws_stream = match tokio_tungstenite::accept_hdr_async(stream, move |_req: &tokio_tungstenite::tungstenite::http::Reques... [INFO] [stdout] | _________________________________________________________________________^ [INFO] [stdout] 135 | | ... if let Some(ref tok) = matched_token { [INFO] [stdout] 136 | | ... resp.headers_mut().insert( [INFO] [stdout] 137 | | ... "Sec-WebSocket-Protocol", [INFO] [stdout] ... | [INFO] [stdout] 141 | | ... Ok(resp) [INFO] [stdout] 142 | | ... }).await { [INFO] [stdout] | |_______^ the `Err`-variant is at least 136 bytes [INFO] [stdout] | [INFO] [stdout] = help: try reducing the size of `tokio_tungstenite::tungstenite::http::Response>`, 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: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:78:13 [INFO] [stdout] | [INFO] [stdout] 78 | return run_with_timeout("python3", &["-c", &code], working_dir); [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] 78 - return run_with_timeout("python3", &["-c", &code], working_dir); [INFO] [stdout] 78 + run_with_timeout("python3", &["-c", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 81 | return run_with_timeout("bash", &["-c", &code], working_dir); [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] 81 - return run_with_timeout("bash", &["-c", &code], working_dir); [INFO] [stdout] 81 + run_with_timeout("bash", &["-c", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:84:13 [INFO] [stdout] | [INFO] [stdout] 84 | return run_with_timeout("node", &["-e", &code], working_dir); [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] 84 - return run_with_timeout("node", &["-e", &code], working_dir); [INFO] [stdout] 84 + run_with_timeout("node", &["-e", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:87:13 [INFO] [stdout] | [INFO] [stdout] 87 | return run_with_timeout("ruby", &["-e", &code], working_dir); [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] 87 - return run_with_timeout("ruby", &["-e", &code], working_dir); [INFO] [stdout] 87 + run_with_timeout("ruby", &["-e", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:106:13 [INFO] [stdout] | [INFO] [stdout] 106 | return run_with_timeout(&bin_str, &[], working_dir); [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] 106 - return run_with_timeout(&bin_str, &[], working_dir); [INFO] [stdout] 106 + run_with_timeout(&bin_str, &[], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:109:13 [INFO] [stdout] | [INFO] [stdout] 109 | return compile_and_run(&code, detect_c_compiler(), &["-x", "c", "-o"], working_dir); [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] 109 - return compile_and_run(&code, detect_c_compiler(), &["-x", "c", "-o"], working_dir); [INFO] [stdout] 109 + compile_and_run(&code, detect_c_compiler(), &["-x", "c", "-o"], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | return compile_and_run(&code, detect_cpp_compiler(), &["-x", "c++", "-std=c++17", "-o"], working_dir); [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] 112 - return compile_and_run(&code, detect_cpp_compiler(), &["-x", "c++", "-std=c++17", "-o"], working_dir); [INFO] [stdout] 112 + compile_and_run(&code, detect_cpp_compiler(), &["-x", "c++", "-std=c++17", "-o"], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:119:13 [INFO] [stdout] | [INFO] [stdout] 119 | return run_with_timeout("go", &["run", &src_str], working_dir); [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] 119 - return run_with_timeout("go", &["run", &src_str], working_dir); [INFO] [stdout] 119 + run_with_timeout("go", &["run", &src_str], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/code/executor.rs:123:13 [INFO] [stdout] | [INFO] [stdout] 123 | return run_with_timeout("sh", &["-c", &code], working_dir); [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] 123 - return run_with_timeout("sh", &["-c", &code], working_dir); [INFO] [stdout] 123 + run_with_timeout("sh", &["-c", &code], working_dir) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/image_util/render.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | / pub fn render_slide_image( [INFO] [stdout] 107 | | image: &SlideImage, [INFO] [stdout] 108 | | content_width: usize, [INFO] [stdout] 109 | | max_height: usize, [INFO] [stdout] ... | [INFO] [stdout] 116 | | preloaded: Option<&image::RgbaImage>, [INFO] [stdout] 117 | | ) -> RenderedImage { [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: manual checked division [INFO] [stdout] --> src/image_util/mod.rs:88:27 [INFO] [stdout] | [INFO] [stdout] 88 | let delay_ms = if denom > 0 { numer / denom } else { 100 }; [INFO] [stdout] | ^^^^^^^^^ ------------- division performed here [INFO] [stdout] | | [INFO] [stdout] | check performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] = note: `#[warn(clippy::manual_checked_ops)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/diagram/mod.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | / pub fn render_adaptive( [INFO] [stdout] 32 | | graph: &DiagramGraph, [INFO] [stdout] 33 | | style: DiagramStyle, [INFO] [stdout] 34 | | content_width: usize, [INFO] [stdout] ... | [INFO] [stdout] 39 | | pad: &str, [INFO] [stdout] 40 | | ) -> 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: manual checked division [INFO] [stdout] --> src/diagram/mod.rs:99:28 [INFO] [stdout] | [INFO] [stdout] 99 | let max_label = if n > 0 { available / n } else { available }; [INFO] [stdout] | ^^^^^ ------------- division performed here [INFO] [stdout] | | [INFO] [stdout] | check performed here [INFO] [stdout] | [INFO] [stdout] = help: consider using `checked_div` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_checked_ops [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "fc6c5fec215cee8604449d38c6d9e00622e18b4a5ded7da65e864d163a353322", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fc6c5fec215cee8604449d38c6d9e00622e18b4a5ded7da65e864d163a353322", kill_on_drop: false }` [INFO] [stdout] fc6c5fec215cee8604449d38c6d9e00622e18b4a5ded7da65e864d163a353322