[INFO] cloning repository https://github.com/itsasync/AsyncHerald
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/itsasync/AsyncHerald" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitsasync%2FAsyncHerald", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitsasync%2FAsyncHerald'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8fb2ea521e999c6ece03ce9547903967cbf74760
[INFO] checking itsasync/AsyncHerald against try#50f413885985a8b0a0b6ca0766a0aedd45304953 for pr-155657
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fitsasync%2FAsyncHerald" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/itsasync/AsyncHerald
[INFO] finished tweaking git repo https://github.com/itsasync/AsyncHerald
[INFO] tweaked toml for git repo https://github.com/itsasync/AsyncHerald written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/itsasync/AsyncHerald on toolchain 50f413885985a8b0a0b6ca0766a0aedd45304953
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/itsasync/AsyncHerald 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" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c32be9c7c67d57ae3bdea572c881dbbfd40a5c066ba8a60d977ec0be2694c8ea
[INFO] running `Command { std: "docker" "start" "-a" "c32be9c7c67d57ae3bdea572c881dbbfd40a5c066ba8a60d977ec0be2694c8ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c32be9c7c67d57ae3bdea572c881dbbfd40a5c066ba8a60d977ec0be2694c8ea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c32be9c7c67d57ae3bdea572c881dbbfd40a5c066ba8a60d977ec0be2694c8ea", kill_on_drop: false }`
[INFO] [stdout] c32be9c7c67d57ae3bdea572c881dbbfd40a5c066ba8a60d977ec0be2694c8ea
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/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" "+50f413885985a8b0a0b6ca0766a0aedd45304953" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e4dc1967bab9d3394d7fa4baf9410ac4672e8965316d1a4836ce99ed1a051af4
[INFO] running `Command { std: "docker" "start" "-a" "e4dc1967bab9d3394d7fa4baf9410ac4672e8965316d1a4836ce99ed1a051af4", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking litemap v0.8.1
[INFO] [stderr]     Checking writeable v0.6.2
[INFO] [stderr]     Checking zlib-rs v0.6.3
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking siphasher v1.0.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]     Checking vsimd v0.8.0
[INFO] [stderr]     Checking outref v0.5.2
[INFO] [stderr]     Checking rustc-hash v2.1.2
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking unicode-properties v0.1.4
[INFO] [stderr]     Checking kurbo v0.12.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking zune-core v0.4.12
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]     Checking zune-jpeg v0.4.21
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]     Checking base64-simd v0.8.0
[INFO] [stderr]     Checking unicode-bidi v0.3.18
[INFO] [stderr]    Compiling rust_decimal v1.41.0
[INFO] [stderr]     Checking unicode-normalization v0.1.25
[INFO] [stderr]    Compiling phf_shared v0.13.1
[INFO] [stderr]    Compiling proc-macro-hack v0.5.20+deprecated
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking quick-error v2.0.1
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]    Compiling slotmap v1.1.1
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]    Compiling phf_generator v0.13.1
[INFO] [stderr]     Checking unicode-script v0.5.8
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.4.0
[INFO] [stderr]     Checking zune-jpeg v0.5.15
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]     Checking unicode-ccc v0.4.0
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]     Checking fontconfig-parser v0.5.8
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]     Checking hayro-syntax v0.4.0
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stderr]     Checking kurbo v0.11.3
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking openssl-probe v0.2.1
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]     Checking der v0.6.1
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking gif v0.14.1
[INFO] [stderr]     Checking simplecss v0.2.2
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking data-url v0.3.2
[INFO] [stderr]     Checking svgtypes v0.15.3
[INFO] [stderr]     Checking unscanny v0.1.0
[INFO] [stderr]     Checking toml_write v0.1.2
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking imagesize v0.13.0
[INFO] [stderr]    Compiling wasmparser v0.228.0
[INFO] [stderr]     Checking yaml-rust v0.4.5
[INFO] [stderr]     Checking walkdir v2.5.0
[INFO] [stderr]     Checking wasmi_core v0.51.5
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]     Checking spki v0.6.0
[INFO] [stderr]    Compiling codex v0.2.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling by_address v1.2.1
[INFO] [stderr]     Checking thin-vec v0.2.14
[INFO] [stderr]     Checking unicode-math-class v0.1.0
[INFO] [stderr]     Checking bumpalo v3.20.2
[INFO] [stderr]     Checking roman-numerals-rs v3.1.0
[INFO] [stderr]    Compiling palette v0.7.6
[INFO] [stderr]     Checking pkcs8 v0.9.0
[INFO] [stderr]     Checking crypto-bigint v0.4.9
[INFO] [stderr]     Checking ff v0.12.1
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking wasmi_ir v0.51.5
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling aws-lc-sys v0.39.1
[INFO] [stderr]     Checking fast-srgb8 v1.0.0
[INFO] [stderr]     Checking chinese-variant v1.1.5
[INFO] [stderr]     Checking wasmi_collections v0.51.5
[INFO] [stderr]     Checking unicode-ident v1.0.24
[INFO] [stderr]     Checking fontdb v0.23.0
[INFO] [stderr]     Checking mutate_once v0.1.2
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking base16ct v0.1.1
[INFO] [stderr]     Checking kamadak-exif v0.6.1
[INFO] [stderr]     Checking sec1 v0.3.0
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking group v0.12.1
[INFO] [stderr]    Compiling openssl-src v300.5.5+3.5.5
[INFO] [stderr]     Checking typst-assets v0.14.2
[INFO] [stderr]     Checking qcms v0.3.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]     Checking az v1.3.0
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking glidesort v0.1.2
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]     Checking elliptic-curve v0.12.3
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking rfc6979 v0.3.1
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]     Checking signature v1.6.4
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling aws-types v1.3.14
[INFO] [stderr]     Checking ecdsa v0.14.8
[INFO] [stderr]     Checking xmlparser v0.13.6
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking p256 v0.11.1
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]     Checking bigdecimal v0.3.1
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]     Checking unicode_categories v0.1.1
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking fancy-regex v0.16.2
[INFO] [stderr]    Compiling icu_segmenter_data v1.5.1
[INFO] [stderr]    Compiling stacker v0.1.23
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking futures-intrusive v0.5.0
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking atoi v2.0.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking regex-lite v0.1.9
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking pdf-writer v0.14.0
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking stringprep v0.1.5
[INFO] [stderr]    Compiling proc-macro-error-attr2 v2.0.0
[INFO] [stderr]     Checking sqlformat v0.2.6
[INFO] [stderr]     Checking home v0.5.12
[INFO] [stderr]     Checking whoami v1.6.1
[INFO] [stderr]     Checking aws-smithy-xml v0.60.15
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking ordered-float v3.9.2
[INFO] [stderr]     Checking float-cmp v0.10.0
[INFO] [stderr]    Compiling proc-macro-error2 v2.0.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling multer v3.1.0
[INFO] [stderr]     Checking urlencoding v2.1.3
[INFO] [stderr]     Checking hypher v0.1.6
[INFO] [stderr]     Checking imagesize v0.14.0
[INFO] [stderr]     Checking xmp-writer v0.3.2
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]    Compiling tree-sitter-python v0.23.6
[INFO] [stderr]    Compiling tree-sitter-rust v0.23.3
[INFO] [stderr]    Compiling tree-sitter v0.24.7
[INFO] [stderr]    Compiling tree-sitter-javascript v0.23.1
[INFO] [stderr]    Compiling tree-sitter-go v0.23.4
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking aliasable v0.1.3
[INFO] [stderr]     Checking hayro-write v0.3.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking zerocopy v0.8.48
[INFO] [stderr]    Compiling unic-langid-impl v0.9.6
[INFO] [stderr]    Compiling phf_macros v0.13.1
[INFO] [stderr]     Checking cobs v0.3.0
[INFO] [stderr]     Checking font-types v0.10.1
[INFO] [stderr]     Checking rustybuzz v0.20.1
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling unic-langid-macros-impl v0.9.6
[INFO] [stderr]    Compiling comemo-macros v0.5.1
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking read-fonts v0.35.0
[INFO] [stderr]     Checking phf v0.13.1
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking comemo v0.5.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling enum-ordinalize-derive v4.3.2
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]    Compiling typst-macros v0.14.2
[INFO] [stderr]     Checking enum-ordinalize v4.3.2
[INFO] [stderr]     Checking chinese-number v0.7.8
[INFO] [stderr]     Checking hayro-font v0.3.0
[INFO] [stderr]    Compiling ar_archive_writer v0.5.1
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking bytes-utils v0.1.4
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]     Checking postcard v1.1.3
[INFO] [stderr]     Checking quick-xml v0.38.4
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking unic-langid-macros v0.9.6
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking aws-smithy-async v1.2.14
[INFO] [stderr]     Checking unic-langid v0.9.6
[INFO] [stderr]     Checking usvg v0.45.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking biblatex v0.11.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking typst-timing v0.14.2
[INFO] [stderr]     Checking aws-smithy-types v1.4.7
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking plist v1.8.0
[INFO] [stderr]     Checking citationberg v0.6.1
[INFO] [stderr]     Checking ecow v0.2.6
[INFO] [stderr]     Checking wasmi v0.51.5
[INFO] [stderr]     Checking typst-utils v0.14.2
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking zerotrie v0.1.3
[INFO] [stderr]     Checking aws-smithy-runtime-api v1.11.6
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking syntect v5.3.0
[INFO] [stderr]     Checking typst-syntax v0.14.2
[INFO] [stderr]     Checking aws-smithy-eventstream v0.60.20
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]    Compiling psm v0.1.30
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking aws-smithy-http v0.63.6
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking icu_provider_blob v1.5.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking aws-credential-types v1.2.14
[INFO] [stderr]     Checking two-face v0.4.5
[INFO] [stderr]     Checking aws-smithy-observability v0.2.6
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking aws-sigv4 v1.4.2
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking lipsum v0.9.1
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking aws-smithy-json v0.62.5
[INFO] [stderr]     Checking icu_provider_adapters v1.5.0
[INFO] [stderr]     Checking hayagriva v0.9.1
[INFO] [stderr]     Checking icu_segmenter v1.5.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling inherent v1.0.13
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking aws-smithy-http v0.62.6
[INFO] [stderr]     Checking aws-smithy-query v0.60.15
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking crc-fast v1.6.0
[INFO] [stderr]     Checking sqlx-core v0.7.4
[INFO] [stderr]     Checking skrifa v0.37.0
[INFO] [stderr]     Checking write-fonts v0.43.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]    Compiling ouroboros_macro v0.17.2
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling sea-bae v0.2.1
[INFO] [stderr]     Checking resvg v0.45.1
[INFO] [stderr]     Checking aws-smithy-checksums v0.63.12
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]    Compiling sea-orm-macros v0.12.15
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking aws-smithy-json v0.61.9
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking simple_asn1 v0.6.4
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking infer v0.19.0
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking streaming-iterator v0.1.9
[INFO] [stderr]     Checking strum v0.25.0
[INFO] [stderr]     Checking jsonwebtoken v9.3.1
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking ouroboros v0.17.2
[INFO] [stderr]     Checking sea-query v0.30.7
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking sqlx-postgres v0.7.4
[INFO] [stderr]     Checking typst-library v0.14.2
[INFO] [stderr]     Checking hayro-interpret v0.4.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking subsetter v0.2.3
[INFO] [stderr]     Checking sqlx v0.7.4
[INFO] [stderr]     Checking sea-query-binder v0.5.0
[INFO] [stderr]     Checking sea-orm v0.12.15
[INFO] [stderr]     Checking krilla v0.6.0
[INFO] [stderr]     Checking hayro-svg v0.2.0
[INFO] [stderr]     Checking hayro v0.4.0
[INFO] [stderr]     Checking krilla-svg v0.3.0
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking aws-smithy-http-client v1.1.12
[INFO] [stderr]     Checking aws-smithy-runtime v1.10.3
[INFO] [stderr]     Checking aws-runtime v1.7.2
[INFO] [stderr]     Checking aws-sdk-sso v1.97.0
[INFO] [stderr]     Checking aws-sdk-sts v1.101.0
[INFO] [stderr]     Checking aws-sdk-ssooidc v1.99.0
[INFO] [stderr]     Checking aws-sdk-s3 v1.119.0
[INFO] [stderr]     Checking aws-config v1.8.15
[INFO] [stderr]     Checking typst-svg v0.14.2
[INFO] [stderr]     Checking typst-eval v0.14.2
[INFO] [stderr]     Checking typst-layout v0.14.2
[INFO] [stderr]     Checking typst-realize v0.14.2
[INFO] [stderr]     Checking typst-kit v0.14.2
[INFO] [stderr]     Checking typst-pdf v0.14.2
[INFO] [stderr]     Checking typst-html v0.14.2
[INFO] [stderr]     Checking typst v0.14.2
[INFO] [stderr]     Checking typst-as-lib v0.15.4
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking async_herald v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Category` and `HeraldRulesConfig`
[INFO] [stdout]  --> src/herald/service.rs:7:50
[INFO] [stdout]   |
[INFO] [stdout] 7 |     AnalysisContext, AnalysisResult, CommitInfo, Category, Family, FamilyGroup,
[INFO] [stdout]   |                                                  ^^^^^^^^
[INFO] [stdout] 8 |     FileContent, GroupedAnalysisResult, HeraldConfig, HeraldRulesConfig, Issue, RepoContent,
[INFO] [stdout]   |                                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Category`
[INFO] [stdout]  --> src/herald/rules/core/semantic_quality_tests.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use crate::herald::types::{AnalysisContext, Category, RepoInfo, Severity};
[INFO] [stdout]   |                                                 ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Category`
[INFO] [stdout]  --> src/herald/rules/domain/infrastructure_tests.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::herald::types::{AnalysisContext, Category, FileContent, RepoInfo, Severity};
[INFO] [stdout]   |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Category`
[INFO] [stdout]  --> src/herald/rules/domain/test_quality_tests.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 |     use crate::herald::types::{AnalysisContext, Category, RepoInfo, Severity};
[INFO] [stdout]   |                                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Category`
[INFO] [stdout]  --> src/herald/rules/languages/csharp_tests.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::herald::types::{AnalysisContext, Category, FileContent, RepoInfo, Severity};
[INFO] [stdout]   |                                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/herald/plantuml.rs:767:40
[INFO] [stdout]     |
[INFO] [stdout] 767 | fn extract_class_fields(content: &str, class_name: &str, ext: &str) -> Vec<String> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `first_code` is assigned to, but never used
[INFO] [stdout]    --> src/herald/rules/domain/deadcode.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     let mut first_code = String::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_first_code` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `first_code` is never read
[INFO] [stdout]    --> src/herald/rules/domain/deadcode.rs:276:17
[INFO] [stdout]     |
[INFO] [stdout] 276 |                 first_code = line_content;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_name`
[INFO] [stdout]    --> src/herald/plantuml.rs:767:40
[INFO] [stdout]     |
[INFO] [stdout] 767 | fn extract_class_fields(content: &str, class_name: &str, ext: &str) -> Vec<String> {
[INFO] [stdout]     |                                        ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_name`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `first_code` is assigned to, but never used
[INFO] [stdout]    --> src/herald/rules/domain/deadcode.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |     let mut first_code = String::new();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_first_code` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `first_code` is never read
[INFO] [stdout]    --> src/herald/rules/domain/deadcode.rs:276:17
[INFO] [stdout]     |
[INFO] [stdout] 276 |                 first_code = line_content;
[INFO] [stdout]     |                 ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `has_partial`
[INFO] [stdout]    --> src/herald/rules/domain/test_quality_tests.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |         let has_partial = issues
[INFO] [stdout]     |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_has_partial`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthResponse` is never constructed
[INFO] [stdout]   --> src/auth/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct AuthResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TokenUser` is never constructed
[INFO] [stdout]   --> src/auth/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct TokenUser {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_jwt` is never used
[INFO] [stdout]   --> src/auth/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn generate_jwt(user_id: i32, email: &str) -> Result<String, jsonwebtoken::errors::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_optional_user_id` is never used
[INFO] [stdout]    --> src/auth/mod.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn extract_optional_user_id(headers: &HeaderMap) -> Option<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> src/controllers/herald_auth.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct AuthorizeQuery {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 56 |     pub state: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AuthorizeQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_details`, `too_many_requests`, and `validation` are never used
[INFO] [stdout]   --> src/error.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ApiError {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn with_details(mut self, details: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn too_many_requests(message: impl Into<String>) -> (StatusCode, Json<Self>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn validation(message: impl Into<String>, details: impl Into<String>) -> (StatusCode, Json<Self>) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_js_console_log_ast` is never used
[INFO] [stdout]   --> src/herald/ast.rs:98:8
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn analyze_js_console_log_ast(file: &FileContent) -> Vec<Issue> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_DUPLICATE_LINES` is never used
[INFO] [stdout]   --> src/herald/duplication.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const MIN_DUPLICATE_LINES: usize = 5;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MIN_DUPLICATE_TOKENS` is never used
[INFO] [stdout]   --> src/herald/duplication.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const MIN_DUPLICATE_TOKENS: usize = 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DuplicateBlock` is never constructed
[INFO] [stdout]   --> src/herald/duplication.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct DuplicateBlock {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DuplicateLocation` is never constructed
[INFO] [stdout]   --> src/herald/duplication.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct DuplicateLocation {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DuplicationResult` is never constructed
[INFO] [stdout]   --> src/herald/duplication.rs:51:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct DuplicationResult {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NormalizedLine` is never constructed
[INFO] [stdout]   --> src/herald/duplication.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | struct NormalizedLine {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FileLines` is never constructed
[INFO] [stdout]   --> src/herald/duplication.rs:79:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | struct FileLines {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_duplicates` is never used
[INFO] [stdout]   --> src/herald/duplication.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn detect_duplicates(files: &[FileContent]) -> DuplicationResult {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_code_file` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn is_code_file(extension: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_file` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:151:4
[INFO] [stdout]     |
[INFO] [stdout] 151 | fn normalize_file(file: &FileContent) -> FileLines {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_line` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:178:4
[INFO] [stdout]     |
[INFO] [stdout] 178 | fn normalize_line(line: &str, extension: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_boilerplate` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn is_boilerplate(normalized: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `count_tokens` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn count_tokens(line: &str) -> usize {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hash_string` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn hash_string(s: &str) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sequence_hash` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:263:4
[INFO] [stdout]     |
[INFO] [stdout] 263 | fn sequence_hash(line_hashes: &[u64]) -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_hash_index` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:277:4
[INFO] [stdout]     |
[INFO] [stdout] 277 | fn build_hash_index(file_lines: &[FileLines]) -> HashMap<u64, Vec<(usize, usize)>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_duplicate_blocks` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:293:4
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn find_duplicate_blocks(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_match` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:418:4
[INFO] [stdout]     |
[INFO] [stdout] 418 | fn expand_match(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_pair_key` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:444:4
[INFO] [stdout]     |
[INFO] [stdout] 444 | fn create_pair_key(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_snippet` is never used
[INFO] [stdout]    --> src/herald/duplication.rs:460:4
[INFO] [stdout]     |
[INFO] [stdout] 460 | fn get_snippet(file: &FileLines, start: usize, len: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_dead_code` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn detect_dead_code(files: &[FileContent]) -> Vec<DeadCode> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_dead_code_with_semantic` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn detect_dead_code_with_semantic(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_dead_code_in_file` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn detect_dead_code_in_file(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VAR_DECL` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 228 | static VAR_DECL: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FUNC_DECL` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | static FUNC_DECL: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNUSED_IMPORT` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | static UNUSED_IMPORT: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_js_dead_code` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn detect_js_dead_code(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNUSED_VAR` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:297:8
[INFO] [stdout]     |
[INFO] [stdout] 297 | static UNUSED_VAR: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ALLOW_UNUSED` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | static ALLOW_UNUSED: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_rust_dead_code` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:304:4
[INFO] [stdout]     |
[INFO] [stdout] 304 | fn detect_rust_dead_code(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VAR_ASSIGN` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:349:8
[INFO] [stdout]     |
[INFO] [stdout] 349 | static VAR_ASSIGN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"^\s*(\w+)\s*=\s*[^=]").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FUNC_DEF` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:350:8
[INFO] [stdout]     |
[INFO] [stdout] 350 | static FUNC_DEF: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"^\s*def\s+(\w+)\s*\(").unwrap());
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `IMPORT_PY` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | static IMPORT_PY: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(?:from\s+\S+\s+)?import\s+(\w+)").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_python_dead_code` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:353:4
[INFO] [stdout]     |
[INFO] [stdout] 353 | fn detect_python_dead_code(file: &FileContent) -> Vec<DeadCode> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RELATION_ATTR` is never used
[INFO] [stdout]    --> src/herald/plantuml.rs:411:8
[INFO] [stdout]     |
[INFO] [stdout] 411 | static RELATION_ATTR: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MONGOOSE_SCHEMA` is never used
[INFO] [stdout]    --> src/herald/plantuml.rs:485:8
[INFO] [stdout]     |
[INFO] [stdout] 485 | static MONGOOSE_SCHEMA: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"new\s+(?:mongoose\.)?Schema\s*\(\s*\{").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line_content_raw` is never used
[INFO] [stdout]   --> src/herald/rules/helpers.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn get_line_content_raw(content: &str, line_number: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_python_file` is never used
[INFO] [stdout]   --> src/herald/rules/helpers.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn is_python_file(ext: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rust_file` is never used
[INFO] [stdout]   --> src/herald/rules/helpers.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn is_rust_file(ext: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_go_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn is_go_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_java_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn is_java_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kotlin_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn is_kotlin_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_swift_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn is_swift_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_dart_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn is_dart_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_php_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:135:8
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn is_php_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_cpp_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn is_cpp_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_comment_line` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub fn is_comment_line(line: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `issue_for_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn issue_for_file(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SECRET_PATTERNS_COMMON` is never used
[INFO] [stdout]   --> src/herald/rules/patterns.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub static SECRET_PATTERNS_COMMON: LazyLock<Vec<(Regex, &'static str)>> = LazyLock::new(|| vec![
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ENV_LOOKUP_PATTERNS` is never used
[INFO] [stdout]   --> src/herald/rules/patterns.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub static ENV_LOOKUP_PATTERNS: &[&str] = &[
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_env_lookup` is never used
[INFO] [stdout]   --> src/herald/rules/patterns.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn is_env_lookup(line: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `STRING_CONCAT_PATTERN` is never used
[INFO] [stdout]     --> src/herald/rules/core/quality.rs:2049:8
[INFO] [stdout]      |
[INFO] [stdout] 2049 | static STRING_CONCAT_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_empty_catch_ast` is never used
[INFO] [stdout]    --> src/herald/rules/core/semantic_quality.rs:322:15
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub(crate) fn analyze_empty_catch_ast(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `EMPTY_CATCH_AST` is never used
[INFO] [stdout]    --> src/herald/rules/core/semantic_quality.rs:422:12
[INFO] [stdout]     |
[INFO] [stdout] 422 | pub static EMPTY_CATCH_AST: Rule = Rule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COMMENT_STYLE_HASH` is never used
[INFO] [stdout]   --> src/herald/rules/domain/documentation.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | static COMMENT_STYLE_HASH: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"#").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COVERAGE_PERCENT` is never used
[INFO] [stdout]  --> src/herald/rules/domain/tests.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | static COVERAGE_PERCENT: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(?i)coverage:\s*(\d+\.?\d*)%").unwrap());
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEREF_PATTERN` is never used
[INFO] [stdout]    --> src/herald/rules/languages/cpp.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | static DEREF_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"\*\s*\w+\s*=").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `IGNORED_ERR_PATTERN` is never used
[INFO] [stdout]  --> src/herald/rules/languages/go.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | static IGNORED_ERR_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"\w+,\s*_\s*:=").unwrap());
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TYPE_PATTERN` is never used
[INFO] [stdout]   --> src/herald/rules/languages/graphql.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static TYPE_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(?i)__type\s*\(").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ALIAS_PATTERN` is never used
[INFO] [stdout]    --> src/herald/rules/languages/graphql.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | static ALIAS_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(\w+\s*:\s*\w+\s*\{[^}]*\}\s*){5,}").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FIND_BY_PATTERN` is never used
[INFO] [stdout]   --> src/herald/rules/languages/java.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | static FIND_BY_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"repository\.find\w+\([^)]+\)\.\w+\(").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PRIVATE_PATTERN` is never used
[INFO] [stdout]   --> src/herald/rules/languages/kotlin.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | static PRIVATE_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"private\s+(?:val|var)").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BROAD_EXCEPT_PATTERN` is never used
[INFO] [stdout]    --> src/herald/rules/languages/python.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | static BROAD_EXCEPT_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"except\s+Exception\s*:").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SARIF_VERSION` is never used
[INFO] [stdout]   --> src/herald/sarif.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const SARIF_VERSION: &str = "2.1.0";
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SARIF_SCHEMA` is never used
[INFO] [stdout]   --> src/herald/sarif.rs:19:7
[INFO] [stdout]    |
[INFO] [stdout] 19 | const SARIF_SCHEMA: &str = "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json";
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HERALD_VERSION` is never used
[INFO] [stdout]   --> src/herald/sarif.rs:20:7
[INFO] [stdout]    |
[INFO] [stdout] 20 | const HERALD_VERSION: &str = "1.0.0";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifReport` is never constructed
[INFO] [stdout]   --> src/herald/sarif.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SarifReport {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifRun` is never constructed
[INFO] [stdout]   --> src/herald/sarif.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct SarifRun {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifTool` is never constructed
[INFO] [stdout]   --> src/herald/sarif.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct SarifTool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifDriver` is never constructed
[INFO] [stdout]   --> src/herald/sarif.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct SarifDriver {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifRule` is never constructed
[INFO] [stdout]   --> src/herald/sarif.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct SarifRule {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifRuleConfiguration` is never constructed
[INFO] [stdout]   --> src/herald/sarif.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct SarifRuleConfiguration {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifRuleProperties` is never constructed
[INFO] [stdout]   --> src/herald/sarif.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub struct SarifRuleProperties {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifRelationship` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct SarifRelationship {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifRelationshipTarget` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct SarifRelationshipTarget {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifToolComponentRef` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:115:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub struct SarifToolComponentRef {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifTaxonomy` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct SarifTaxonomy {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifTaxon` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct SarifTaxon {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifMessage` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct SarifMessage {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifResult` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:147:12
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub struct SarifResult {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifLocation` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 158 | pub struct SarifLocation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifPhysicalLocation` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct SarifPhysicalLocation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifArtifactLocation` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub struct SarifArtifactLocation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifRegion` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub struct SarifRegion {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifSnippet` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub struct SarifSnippet {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifFix` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub struct SarifFix {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifArtifactChange` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct SarifArtifactChange {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifReplacement` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct SarifReplacement {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifContent` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:222:12
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct SarifContent {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SarifInvocation` is never constructed
[INFO] [stdout]    --> src/herald/sarif.rs:228:12
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub struct SarifInvocation {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `severity_to_sarif_level` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:241:4
[INFO] [stdout]     |
[INFO] [stdout] 241 | fn severity_to_sarif_level(severity: &Severity) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `issue_to_sarif_result` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:250:4
[INFO] [stdout]     |
[INFO] [stdout] 250 | fn issue_to_sarif_result(issue: &Issue) -> SarifResult {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rule_to_sarif_rule` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:306:4
[INFO] [stdout]     |
[INFO] [stdout] 306 | fn rule_to_sarif_rule(rule: &RuleInfo) -> SarifRule {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_cwe_taxonomy` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:373:4
[INFO] [stdout]     |
[INFO] [stdout] 373 | fn build_cwe_taxonomy(rules: &[RuleInfo]) -> Option<SarifTaxonomy> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analysis_to_sarif` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:411:8
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub fn analysis_to_sarif(result: &AnalysisResult, rules: &[RuleInfo]) -> SarifReport {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `issues_to_sarif` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:446:8
[INFO] [stdout]     |
[INFO] [stdout] 446 | pub fn issues_to_sarif(issues: &[Issue]) -> SarifReport {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_sarif_json` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:536:8
[INFO] [stdout]     |
[INFO] [stdout] 536 | pub fn to_sarif_json(report: &SarifReport) -> Result<String, serde_json::Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_issues_by_category` is never used
[INFO] [stdout]    --> src/herald/scoring.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn calculate_issues_by_category(issues: &[Issue]) -> HashMap<String, i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rules_for_owasp` is never used
[INFO] [stdout]    --> src/herald/security_metadata.rs:190:8
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub fn rules_for_owasp(category: &OwaspTop10) -> Vec<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `is_const` and `is_mutable` are never read
[INFO] [stdout]   --> src/herald/semantic.rs:35:9
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct VarDef {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub is_const: bool,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 36 |     pub is_mutable: bool,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `VarDef` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_identifier_present` is never used
[INFO] [stdout]   --> src/herald/semantic.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 86 | impl FileSemanticContext {
[INFO] [stdout]    | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub fn is_identifier_present(&self, name: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from`, `import_source`, and `import_line` are never read
[INFO] [stdout]     --> src/herald/semantic.rs:1220:9
[INFO] [stdout]      |
[INFO] [stdout] 1219 | pub struct DependencyEdge {
[INFO] [stdout]      |            -------------- fields in this struct
[INFO] [stdout] 1220 |     pub from: usize,
[INFO] [stdout]      |         ^^^^
[INFO] [stdout] 1221 |     pub to: usize,
[INFO] [stdout] 1222 |     pub import_source: String,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout] 1223 |     pub import_line: usize,
[INFO] [stdout]      |         ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `DependencyEdge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_repository` is never used
[INFO] [stdout]    --> src/herald/service.rs:979:14
[INFO] [stdout]     |
[INFO] [stdout] 979 | pub async fn analyze_repository(repo_url: &str, installation_id: Option<i32>) -> Result<AnalysisResult, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_repository_grouped` is never used
[INFO] [stdout]    --> src/herald/service.rs:985:14
[INFO] [stdout]     |
[INFO] [stdout] 985 | pub async fn analyze_repository_grouped(repo_url: &str, installation_id: Option<i32>) -> Result<GroupedAnalysisResult, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_local_files` is never used
[INFO] [stdout]     --> src/herald/service.rs:1254:8
[INFO] [stdout]      |
[INFO] [stdout] 1254 | pub fn analyze_local_files(request: AnalyzeLocalRequest) -> LocalAnalysisResult {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_local_files_grouped` is never used
[INFO] [stdout]     --> src/herald/service.rs:1260:8
[INFO] [stdout]      |
[INFO] [stdout] 1260 | pub fn analyze_local_files_grouped(request: AnalyzeLocalRequest) -> GroupedLocalAnalysisResult {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `url` is never used
[INFO] [stdout]   --> src/herald/types.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl CweId {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] 41 |     pub fn url(&self) -> String {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `url` and `all` are never used
[INFO] [stdout]    --> src/herald/types.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl OwaspTop10 {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn url(&self) -> String {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn all() -> &'static [OwaspTop10] {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_family`, `with_column`, `with_code`, `with_cwe`, and `with_owasp` are never used
[INFO] [stdout]    --> src/herald/types.rs:508:12
[INFO] [stdout]     |
[INFO] [stdout] 468 | impl Issue {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 508 |     pub fn get_family(&self) -> Family {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 525 |     pub fn with_column(mut self, column: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn with_code(mut self, code: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 543 |     pub fn with_cwe(mut self, cwe: Vec<CweId>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 549 |     pub fn with_owasp(mut self, owasp: Vec<OwaspTop10>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `icon` and `color` are never used
[INFO] [stdout]    --> src/herald/types.rs:697:12
[INFO] [stdout]     |
[INFO] [stdout] 677 | impl ModuleKind {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 697 |     pub fn icon(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 709 |     pub fn color(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OverallSummary` is never constructed
[INFO] [stdout]    --> src/herald/types.rs:864:12
[INFO] [stdout]     |
[INFO] [stdout] 864 | pub struct OverallSummary {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeadCode` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1051:12
[INFO] [stdout]      |
[INFO] [stdout] 1051 | pub struct DeadCode {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DeadCodeKind` is never used
[INFO] [stdout]     --> src/herald/types.rs:1060:10
[INFO] [stdout]      |
[INFO] [stdout] 1060 | pub enum DeadCodeKind {
[INFO] [stdout]      |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CiSummary` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1157:12
[INFO] [stdout]      |
[INFO] [stdout] 1157 | pub struct CiSummary {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScoreHistoryPoint` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1172:12
[INFO] [stdout]      |
[INFO] [stdout] 1172 | pub struct ScoreHistoryPoint {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScoreTrend` is never used
[INFO] [stdout]     --> src/herald/types.rs:1183:10
[INFO] [stdout]      |
[INFO] [stdout] 1183 | pub enum ScoreTrend {
[INFO] [stdout]      |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScoreHistory` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1192:12
[INFO] [stdout]      |
[INFO] [stdout] 1192 | pub struct ScoreHistory {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OwaspComplianceReport` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1201:12
[INFO] [stdout]      |
[INFO] [stdout] 1201 | pub struct OwaspComplianceReport {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OwaspCategoryStatus` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1210:12
[INFO] [stdout]      |
[INFO] [stdout] 1210 | pub struct OwaspCategoryStatus {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line_content_raw` is never used
[INFO] [stdout]   --> src/herald/utils.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn get_line_content_raw(content: &str, line_number: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_code_extension` is never used
[INFO] [stdout]    --> src/herald/utils.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn is_code_extension(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_skip_file` is never used
[INFO] [stdout]    --> src/herald/utils.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn should_skip_file(path: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `s3` is never read
[INFO] [stdout]   --> src/state.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 10 |     pub db: DatabaseConnection,
[INFO] [stdout] 11 |     pub s3: S3Client,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AuthResponse` is never constructed
[INFO] [stdout]   --> src/auth/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct AuthResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TokenUser` is never constructed
[INFO] [stdout]   --> src/auth/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct TokenUser {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_jwt` is never used
[INFO] [stdout]   --> src/auth/mod.rs:36:8
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub fn generate_jwt(user_id: i32, email: &str) -> Result<String, jsonwebtoken::errors::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_optional_user_id` is never used
[INFO] [stdout]    --> src/auth/mod.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn extract_optional_user_id(headers: &HeaderMap) -> Option<i32> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> src/controllers/herald_auth.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct AuthorizeQuery {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 56 |     pub state: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AuthorizeQuery` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `with_details`, `too_many_requests`, and `validation` are never used
[INFO] [stdout]   --> src/error.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | impl ApiError {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn with_details(mut self, details: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn too_many_requests(message: impl Into<String>) -> (StatusCode, Json<Self>) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn validation(message: impl Into<String>, details: impl Into<String>) -> (StatusCode, Json<Self>) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_dead_code` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn detect_dead_code(files: &[FileContent]) -> Vec<DeadCode> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_dead_code_with_semantic` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:187:8
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub fn detect_dead_code_with_semantic(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_dead_code_in_file` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn detect_dead_code_in_file(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FUNC_DECL` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | static FUNC_DECL: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNUSED_IMPORT` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | static UNUSED_IMPORT: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `UNUSED_VAR` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:297:8
[INFO] [stdout]     |
[INFO] [stdout] 297 | static UNUSED_VAR: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ALLOW_UNUSED` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | static ALLOW_UNUSED: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_rust_dead_code` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:304:4
[INFO] [stdout]     |
[INFO] [stdout] 304 | fn detect_rust_dead_code(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `VAR_ASSIGN` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:349:8
[INFO] [stdout]     |
[INFO] [stdout] 349 | static VAR_ASSIGN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"^\s*(\w+)\s*=\s*[^=]").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FUNC_DEF` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:350:8
[INFO] [stdout]     |
[INFO] [stdout] 350 | static FUNC_DEF: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"^\s*def\s+(\w+)\s*\(").unwrap());
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `IMPORT_PY` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | static IMPORT_PY: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(?:from\s+\S+\s+)?import\s+(\w+)").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_python_dead_code` is never used
[INFO] [stdout]    --> src/herald/metrics.rs:353:4
[INFO] [stdout]     |
[INFO] [stdout] 353 | fn detect_python_dead_code(file: &FileContent) -> Vec<DeadCode> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `RELATION_ATTR` is never used
[INFO] [stdout]    --> src/herald/plantuml.rs:411:8
[INFO] [stdout]     |
[INFO] [stdout] 411 | static RELATION_ATTR: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `MONGOOSE_SCHEMA` is never used
[INFO] [stdout]    --> src/herald/plantuml.rs:485:8
[INFO] [stdout]     |
[INFO] [stdout] 485 | static MONGOOSE_SCHEMA: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"new\s+(?:mongoose\.)?Schema\s*\(\s*\{").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_python_file` is never used
[INFO] [stdout]   --> src/herald/rules/helpers.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn is_python_file(ext: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rust_file` is never used
[INFO] [stdout]   --> src/herald/rules/helpers.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn is_rust_file(ext: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_go_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn is_go_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_java_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn is_java_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kotlin_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn is_kotlin_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_swift_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub fn is_swift_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_dart_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn is_dart_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_php_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:135:8
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub fn is_php_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_cpp_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:141:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn is_cpp_file(ext: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `issue_for_file` is never used
[INFO] [stdout]    --> src/herald/rules/helpers.rs:313:8
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub fn issue_for_file(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `SECRET_PATTERNS_COMMON` is never used
[INFO] [stdout]   --> src/herald/rules/patterns.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub static SECRET_PATTERNS_COMMON: LazyLock<Vec<(Regex, &'static str)>> = LazyLock::new(|| vec![
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ENV_LOOKUP_PATTERNS` is never used
[INFO] [stdout]   --> src/herald/rules/patterns.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub static ENV_LOOKUP_PATTERNS: &[&str] = &[
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_env_lookup` is never used
[INFO] [stdout]   --> src/herald/rules/patterns.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn is_env_lookup(line: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `STRING_CONCAT_PATTERN` is never used
[INFO] [stdout]     --> src/herald/rules/core/quality.rs:2049:8
[INFO] [stdout]      |
[INFO] [stdout] 2049 | static STRING_CONCAT_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `EMPTY_CATCH_AST` is never used
[INFO] [stdout]    --> src/herald/rules/core/semantic_quality.rs:422:12
[INFO] [stdout]     |
[INFO] [stdout] 422 | pub static EMPTY_CATCH_AST: Rule = Rule {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COMMENT_STYLE_HASH` is never used
[INFO] [stdout]   --> src/herald/rules/domain/documentation.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | static COMMENT_STYLE_HASH: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"#").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `COVERAGE_PERCENT` is never used
[INFO] [stdout]  --> src/herald/rules/domain/tests.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | static COVERAGE_PERCENT: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(?i)coverage:\s*(\d+\.?\d*)%").unwrap());
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `DEREF_PATTERN` is never used
[INFO] [stdout]    --> src/herald/rules/languages/cpp.rs:118:8
[INFO] [stdout]     |
[INFO] [stdout] 118 | static DEREF_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"\*\s*\w+\s*=").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `IGNORED_ERR_PATTERN` is never used
[INFO] [stdout]  --> src/herald/rules/languages/go.rs:7:8
[INFO] [stdout]   |
[INFO] [stdout] 7 | static IGNORED_ERR_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"\w+,\s*_\s*:=").unwrap());
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `TYPE_PATTERN` is never used
[INFO] [stdout]   --> src/herald/rules/languages/graphql.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | static TYPE_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(?i)__type\s*\(").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `ALIAS_PATTERN` is never used
[INFO] [stdout]    --> src/herald/rules/languages/graphql.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | static ALIAS_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"(\w+\s*:\s*\w+\s*\{[^}]*\}\s*){5,}").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `FIND_BY_PATTERN` is never used
[INFO] [stdout]   --> src/herald/rules/languages/java.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | static FIND_BY_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"repository\.find\w+\([^)]+\)\.\w+\(").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `PRIVATE_PATTERN` is never used
[INFO] [stdout]   --> src/herald/rules/languages/kotlin.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | static PRIVATE_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"private\s+(?:val|var)").unwrap());
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `BROAD_EXCEPT_PATTERN` is never used
[INFO] [stdout]    --> src/herald/rules/languages/python.rs:269:8
[INFO] [stdout]     |
[INFO] [stdout] 269 | static BROAD_EXCEPT_PATTERN: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"except\s+Exception\s*:").unwrap());
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rule_to_sarif_rule` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:306:4
[INFO] [stdout]     |
[INFO] [stdout] 306 | fn rule_to_sarif_rule(rule: &RuleInfo) -> SarifRule {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_cwe_taxonomy` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:373:4
[INFO] [stdout]     |
[INFO] [stdout] 373 | fn build_cwe_taxonomy(rules: &[RuleInfo]) -> Option<SarifTaxonomy> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analysis_to_sarif` is never used
[INFO] [stdout]    --> src/herald/sarif.rs:411:8
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub fn analysis_to_sarif(result: &AnalysisResult, rules: &[RuleInfo]) -> SarifReport {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `from`, `import_source`, and `import_line` are never read
[INFO] [stdout]     --> src/herald/semantic.rs:1220:9
[INFO] [stdout]      |
[INFO] [stdout] 1219 | pub struct DependencyEdge {
[INFO] [stdout]      |            -------------- fields in this struct
[INFO] [stdout] 1220 |     pub from: usize,
[INFO] [stdout]      |         ^^^^
[INFO] [stdout] 1221 |     pub to: usize,
[INFO] [stdout] 1222 |     pub import_source: String,
[INFO] [stdout]      |         ^^^^^^^^^^^^^
[INFO] [stdout] 1223 |     pub import_line: usize,
[INFO] [stdout]      |         ^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `DependencyEdge` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_repository` is never used
[INFO] [stdout]    --> src/herald/service.rs:979:14
[INFO] [stdout]     |
[INFO] [stdout] 979 | pub async fn analyze_repository(repo_url: &str, installation_id: Option<i32>) -> Result<AnalysisResult, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_repository_grouped` is never used
[INFO] [stdout]    --> src/herald/service.rs:985:14
[INFO] [stdout]     |
[INFO] [stdout] 985 | pub async fn analyze_repository_grouped(repo_url: &str, installation_id: Option<i32>) -> Result<GroupedAnalysisResult, String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_local_files_grouped` is never used
[INFO] [stdout]     --> src/herald/service.rs:1260:8
[INFO] [stdout]      |
[INFO] [stdout] 1260 | pub fn analyze_local_files_grouped(request: AnalyzeLocalRequest) -> GroupedLocalAnalysisResult {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `url` is never used
[INFO] [stdout]    --> src/herald/types.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout]  81 | impl OwaspTop10 {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn url(&self) -> String {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_column` and `with_code` are never used
[INFO] [stdout]    --> src/herald/types.rs:525:12
[INFO] [stdout]     |
[INFO] [stdout] 468 | impl Issue {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 525 |     pub fn with_column(mut self, column: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn with_code(mut self, code: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `icon` and `color` are never used
[INFO] [stdout]    --> src/herald/types.rs:697:12
[INFO] [stdout]     |
[INFO] [stdout] 677 | impl ModuleKind {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 697 |     pub fn icon(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 709 |     pub fn color(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OverallSummary` is never constructed
[INFO] [stdout]    --> src/herald/types.rs:864:12
[INFO] [stdout]     |
[INFO] [stdout] 864 | pub struct OverallSummary {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CiSummary` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1157:12
[INFO] [stdout]      |
[INFO] [stdout] 1157 | pub struct CiSummary {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScoreHistoryPoint` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1172:12
[INFO] [stdout]      |
[INFO] [stdout] 1172 | pub struct ScoreHistoryPoint {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScoreTrend` is never used
[INFO] [stdout]     --> src/herald/types.rs:1183:10
[INFO] [stdout]      |
[INFO] [stdout] 1183 | pub enum ScoreTrend {
[INFO] [stdout]      |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScoreHistory` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1192:12
[INFO] [stdout]      |
[INFO] [stdout] 1192 | pub struct ScoreHistory {
[INFO] [stdout]      |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OwaspComplianceReport` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1201:12
[INFO] [stdout]      |
[INFO] [stdout] 1201 | pub struct OwaspComplianceReport {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OwaspCategoryStatus` is never constructed
[INFO] [stdout]     --> src/herald/types.rs:1210:12
[INFO] [stdout]      |
[INFO] [stdout] 1210 | pub struct OwaspCategoryStatus {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_line_content_raw` is never used
[INFO] [stdout]   --> src/herald/utils.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn get_line_content_raw(content: &str, line_number: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `s3` is never read
[INFO] [stdout]   --> src/state.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 10 |     pub db: DatabaseConnection,
[INFO] [stdout] 11 |     pub s3: S3Client,
[INFO] [stdout]    |         ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 41s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: sqlx-postgres v0.7.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "e4dc1967bab9d3394d7fa4baf9410ac4672e8965316d1a4836ce99ed1a051af4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e4dc1967bab9d3394d7fa4baf9410ac4672e8965316d1a4836ce99ed1a051af4", kill_on_drop: false }`
[INFO] [stdout] e4dc1967bab9d3394d7fa4baf9410ac4672e8965316d1a4836ce99ed1a051af4
