[INFO] cloning repository https://github.com/haruki-nikaidou/ln-scrape
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/haruki-nikaidou/ln-scrape" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharuki-nikaidou%2Fln-scrape", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharuki-nikaidou%2Fln-scrape'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a3533591fa80c7cf88a16be328a56dc23c5eef4a
[INFO] testing haruki-nikaidou/ln-scrape against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fharuki-nikaidou%2Fln-scrape" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/haruki-nikaidou/ln-scrape
[INFO] finished tweaking git repo https://github.com/haruki-nikaidou/ln-scrape
[INFO] tweaked toml for git repo https://github.com/haruki-nikaidou/ln-scrape written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/haruki-nikaidou/ln-scrape on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/haruki-nikaidou/ln-scrape 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" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cc v1.1.1
[INFO] [stderr]   Downloaded retry v2.0.0
[INFO] [stderr]   Downloaded scraper v0.19.0
[INFO] [stderr]   Downloaded fake_user_agent v0.2.1
[INFO] [stderr]   Downloaded rustls v0.23.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 791847e6e32a1fb6fd5eb91e302649f2e64d17c4da1b373907bcf05569b3a6ca
[INFO] running `Command { std: "docker" "start" "-a" "791847e6e32a1fb6fd5eb91e302649f2e64d17c4da1b373907bcf05569b3a6ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "791847e6e32a1fb6fd5eb91e302649f2e64d17c4da1b373907bcf05569b3a6ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "791847e6e32a1fb6fd5eb91e302649f2e64d17c4da1b373907bcf05569b3a6ca", kill_on_drop: false }`
[INFO] [stdout] 791847e6e32a1fb6fd5eb91e302649f2e64d17c4da1b373907bcf05569b3a6ca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b100cc2338b3cea63147f7063ef6e2862bc24a977f00e0784fff264d66f332b9
[INFO] running `Command { std: "docker" "start" "-a" "b100cc2338b3cea63147f7063ef6e2862bc24a977f00e0784fff264d66f332b9", kill_on_drop: false }`
[INFO] [stderr]    Compiling phf_shared v0.10.0
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling syn v2.0.71
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling cc v1.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling socket2 v0.5.7
[INFO] [stderr]    Compiling serde v1.0.204
[INFO] [stderr]    Compiling http v1.1.0
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling futures-task v0.3.30
[INFO] [stderr]    Compiling phf_generator v0.10.0
[INFO] [stderr]    Compiling phf_codegen v0.10.0
[INFO] [stderr]    Compiling futures-util v0.3.30
[INFO] [stderr]    Compiling phf_shared v0.11.2
[INFO] [stderr]    Compiling httparse v1.9.4
[INFO] [stderr]    Compiling phf_generator v0.11.2
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling string_cache_codegen v0.5.2
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]    Compiling mac v0.1.1
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]    Compiling futf v0.1.5
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling phf v0.10.1
[INFO] [stderr]    Compiling dtoa v1.0.9
[INFO] [stderr]    Compiling miniz_oxide v0.8.0
[INFO] [stderr]    Compiling markup5ever v0.11.0
[INFO] [stderr]    Compiling dtoa-short v0.3.5
[INFO] [stderr]    Compiling tendril v0.4.3
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling unicode-normalization v0.1.23
[INFO] [stderr]    Compiling brotli-decompressor v4.0.1
[INFO] [stderr]    Compiling string_cache v0.8.7
[INFO] [stderr]    Compiling selectors v0.25.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling servo_arc v0.3.0
[INFO] [stderr]    Compiling brotli v6.0.0
[INFO] [stderr]    Compiling idna v0.5.0
[INFO] [stderr]    Compiling fxhash v0.2.1
[INFO] [stderr]    Compiling flate2 v1.0.33
[INFO] [stderr]    Compiling http-body-util v0.1.2
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling rustls-pki-types v1.7.0
[INFO] [stderr]    Compiling getopts v0.2.21
[INFO] [stderr]    Compiling rustls-pemfile v2.1.2
[INFO] [stderr]    Compiling openssl-sys v0.9.102
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]    Compiling url v2.5.2
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling openssl v0.10.64
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]    Compiling sync_wrapper v1.0.1
[INFO] [stderr]    Compiling ego-tree v0.6.2
[INFO] [stderr]    Compiling fastrand v2.1.0
[INFO] [stderr]    Compiling fake_user_agent v0.2.1
[INFO] [stderr]    Compiling retry v2.0.0
[INFO] [stderr]    Compiling regex v1.10.5
[INFO] [stderr]    Compiling serde_json v1.0.120
[INFO] [stderr]    Compiling tokio-macros v2.3.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling phf_macros v0.11.2
[INFO] [stderr]    Compiling tokio v1.38.0
[INFO] [stderr]    Compiling html5ever v0.26.0
[INFO] [stderr]    Compiling cssparser-macros v0.6.1
[INFO] [stderr]    Compiling phf v0.11.2
[INFO] [stderr]    Compiling zstd v0.13.2
[INFO] [stderr]    Compiling derive_more v0.99.18
[INFO] [stderr]    Compiling cssparser v0.31.2
[INFO] [stderr]    Compiling tokio-util v0.7.11
[INFO] [stderr]    Compiling pin-project v1.1.5
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling async-compression v0.4.12
[INFO] [stderr]    Compiling async-trait v0.1.81
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling scraper v0.19.0
[INFO] [stderr]    Compiling h2 v0.4.5
[INFO] [stderr]    Compiling hyper v1.4.1
[INFO] [stderr]    Compiling hyper-util v0.1.6
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.5
[INFO] [stderr]    Compiling fuckbilinovel-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Catalog` and `Volume`
[INFO] [stdout]  --> src/ln_source/bili/parser.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::scrape::{Catalog, NovelInfo, Volume};
[INFO] [stdout]   |                     ^^^^^^^             ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `novel`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:39
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_novel`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:58
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chapter`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:38:41
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chapter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:38:60
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BiliNovelSource` is never constructed
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct BiliNovelSource;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SOURCE_URL` is never used
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const SOURCE_URL: &str = "https://www.bilinovel.com";
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_novel_id` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) fn get_novel_id(url: &Url) -> Option<i32> {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_info_url` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(super) fn get_info_url(id: i32) -> Url {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_catalog_url` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(super) fn get_catalog_url(id: i32) -> Url {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_cloudflare_block` is never used
[INFO] [stdout]  --> src/ln_source/bili/parser.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(super) fn detect_cloudflare_block(html: &Html) -> bool {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_info_page` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(super) fn parse_info_page(html: Html, id: i32, url: Url) -> Result<NovelInfo> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FromSingleLiNode` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | enum FromSingleLiNode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_li_element` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn parse_li_element(li: scraper::ElementRef) -> Result<FromSingleLiNode> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_volumes_li_elements` is never used
[INFO] [stdout]    --> src/ln_source/bili/parser.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn parse_volumes_li_elements(doc: Html) -> Vec<FromSingleLiNode> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/scrape/source.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog>;
[INFO] [stdout]    |                                ^ this lifetime flows to the output                                          ------- the lifetime gets resolved as `'life0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to consistently use `'life0`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog<'life0>>;
[INFO] [stdout]    |                                                                                                                    ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                ^ this lifetime flows to the output                                                  ------- the lifetime gets resolved as `'life0`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'life0`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog<'life0>> {
[INFO] [stdout]    |                                                                                                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 00s
[INFO] running `Command { std: "docker" "inspect" "b100cc2338b3cea63147f7063ef6e2862bc24a977f00e0784fff264d66f332b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b100cc2338b3cea63147f7063ef6e2862bc24a977f00e0784fff264d66f332b9", kill_on_drop: false }`
[INFO] [stdout] b100cc2338b3cea63147f7063ef6e2862bc24a977f00e0784fff264d66f332b9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ce21e478852bc89d6e18ededcae5239b0f51e028d2e3e33a74fddd84706e9ccb
[INFO] running `Command { std: "docker" "start" "-a" "ce21e478852bc89d6e18ededcae5239b0f51e028d2e3e33a74fddd84706e9ccb", kill_on_drop: false }`
[INFO] [stdout] warning: unused imports: `Catalog` and `Volume`
[INFO] [stdout]  --> src/ln_source/bili/parser.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::scrape::{Catalog, NovelInfo, Volume};
[INFO] [stdout]   |                     ^^^^^^^             ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `novel`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:39
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_novel`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:58
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chapter`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:38:41
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chapter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:38:60
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BiliNovelSource` is never constructed
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct BiliNovelSource;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SOURCE_URL` is never used
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const SOURCE_URL: &str = "https://www.bilinovel.com";
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_novel_id` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) fn get_novel_id(url: &Url) -> Option<i32> {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_info_url` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(super) fn get_info_url(id: i32) -> Url {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_catalog_url` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(super) fn get_catalog_url(id: i32) -> Url {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_cloudflare_block` is never used
[INFO] [stdout]  --> src/ln_source/bili/parser.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(super) fn detect_cloudflare_block(html: &Html) -> bool {
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_info_page` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(super) fn parse_info_page(html: Html, id: i32, url: Url) -> Result<NovelInfo> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FromSingleLiNode` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | enum FromSingleLiNode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_li_element` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn parse_li_element(li: scraper::ElementRef) -> Result<FromSingleLiNode> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_volumes_li_elements` is never used
[INFO] [stdout]    --> src/ln_source/bili/parser.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn parse_volumes_li_elements(doc: Html) -> Vec<FromSingleLiNode> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/scrape/source.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog>;
[INFO] [stdout]    |                                ^ this lifetime flows to the output                                          ------- the lifetime gets resolved as `'life0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to consistently use `'life0`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog<'life0>>;
[INFO] [stdout]    |                                                                                                                    ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                ^ this lifetime flows to the output                                                  ------- the lifetime gets resolved as `'life0`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'life0`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog<'life0>> {
[INFO] [stdout]    |                                                                                                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling fuckbilinovel-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Catalog` and `Volume`
[INFO] [stdout]  --> src/ln_source/bili/parser.rs:6:21
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::scrape::{Catalog, NovelInfo, Volume};
[INFO] [stdout]   |                     ^^^^^^^             ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `novel`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:39
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_novel`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:58
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chapter`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:38:41
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stdout]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chapter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:38:60
[INFO] [stdout]    |
[INFO] [stdout] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stdout]    |                                                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:42:31
[INFO] [stdout]    |
[INFO] [stdout] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stdout]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `request_sender`
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_novel_id` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) fn get_novel_id(url: &Url) -> Option<i32> {
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_catalog_url` is never used
[INFO] [stdout]   --> src/ln_source/bili/utils.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(super) fn get_catalog_url(id: i32) -> Url {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FromSingleLiNode` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:67:6
[INFO] [stdout]    |
[INFO] [stdout] 67 | enum FromSingleLiNode {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_li_element` is never used
[INFO] [stdout]   --> src/ln_source/bili/parser.rs:74:4
[INFO] [stdout]    |
[INFO] [stdout] 74 | fn parse_li_element(li: scraper::ElementRef) -> Result<FromSingleLiNode> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_volumes_li_elements` is never used
[INFO] [stdout]    --> src/ln_source/bili/parser.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn parse_volumes_li_elements(doc: Html) -> Vec<FromSingleLiNode> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/scrape/source.rs:12:32
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog>;
[INFO] [stdout]    |                                ^ this lifetime flows to the output                                          ------- the lifetime gets resolved as `'life0`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to consistently use `'life0`
[INFO] [stdout]    |
[INFO] [stdout] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog<'life0>>;
[INFO] [stdout]    |                                                                                                                    ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/ln_source/bili/mod.rs:34:32
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stdout]    |                                ^ this lifetime flows to the output                                                  ------- the lifetime gets resolved as `'life0`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'life0`
[INFO] [stdout]    |
[INFO] [stdout] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog<'life0>> {
[INFO] [stdout]    |                                                                                                                            ++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 5.33s
[INFO] running `Command { std: "docker" "inspect" "ce21e478852bc89d6e18ededcae5239b0f51e028d2e3e33a74fddd84706e9ccb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ce21e478852bc89d6e18ededcae5239b0f51e028d2e3e33a74fddd84706e9ccb", kill_on_drop: false }`
[INFO] [stdout] ce21e478852bc89d6e18ededcae5239b0f51e028d2e3e33a74fddd84706e9ccb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 611b5341b92dfb60ff0c88444a129f813bf7b81c3e08d430f52b522936d185f9
[INFO] running `Command { std: "docker" "start" "-a" "611b5341b92dfb60ff0c88444a129f813bf7b81c3e08d430f52b522936d185f9", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `Catalog` and `Volume`
[INFO] [stderr]  --> src/ln_source/bili/parser.rs:6:21
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::scrape::{Catalog, NovelInfo, Volume};
[INFO] [stderr]   |                     ^^^^^^^             ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `novel`
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:34:39
[INFO] [stderr]    |
[INFO] [stderr] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stderr]    |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_novel`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `request_sender`
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:34:58
[INFO] [stderr]    |
[INFO] [stderr] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stderr]    |                                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `chapter`
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:38:41
[INFO] [stderr]    |
[INFO] [stderr] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stderr]    |                                         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chapter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `request_sender`
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:38:60
[INFO] [stderr]    |
[INFO] [stderr] 38 |     async fn get_chapter_content(&self, chapter: &Chapter, request_sender: impl RequestSenderTrait) -> anyhow::Result<Html> {
[INFO] [stderr]    |                                                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `src`
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:42:31
[INFO] [stderr]    |
[INFO] [stderr] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stderr]    |                               ^^^ help: if this is intentional, prefix it with an underscore: `_src`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `request_sender`
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:42:42
[INFO] [stderr]    |
[INFO] [stderr] 42 |     async fn get_image(&self, src: &str, request_sender: impl RequestSenderTrait) -> anyhow::Result<Vec<u8>> {
[INFO] [stderr]    |                                          ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_request_sender`
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BiliNovelSource` is never constructed
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct BiliNovelSource;
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: constant `SOURCE_URL` is never used
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:14:7
[INFO] [stderr]    |
[INFO] [stderr] 14 | const SOURCE_URL: &str = "https://www.bilinovel.com";
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_novel_id` is never used
[INFO] [stderr]   --> src/ln_source/bili/utils.rs:10:15
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub(super) fn get_novel_id(url: &Url) -> Option<i32> {
[INFO] [stderr]    |               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_info_url` is never used
[INFO] [stderr]   --> src/ln_source/bili/utils.rs:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub(super) fn get_info_url(id: i32) -> Url {
[INFO] [stderr]    |               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_catalog_url` is never used
[INFO] [stderr]   --> src/ln_source/bili/utils.rs:21:15
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub(super) fn get_catalog_url(id: i32) -> Url {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `detect_cloudflare_block` is never used
[INFO] [stderr]  --> src/ln_source/bili/parser.rs:8:15
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub(super) fn detect_cloudflare_block(html: &Html) -> bool {
[INFO] [stderr]   |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_info_page` is never used
[INFO] [stderr]   --> src/ln_source/bili/parser.rs:17:15
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub(super) fn parse_info_page(html: Html, id: i32, url: Url) -> Result<NovelInfo> {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `FromSingleLiNode` is never used
[INFO] [stderr]   --> src/ln_source/bili/parser.rs:67:6
[INFO] [stderr]    |
[INFO] [stderr] 67 | enum FromSingleLiNode {
[INFO] [stderr]    |      ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_li_element` is never used
[INFO] [stderr]   --> src/ln_source/bili/parser.rs:74:4
[INFO] [stderr]    |
[INFO] [stderr] 74 | fn parse_li_element(li: scraper::ElementRef) -> Result<FromSingleLiNode> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_volumes_li_elements` is never used
[INFO] [stderr]    --> src/ln_source/bili/parser.rs:102:4
[INFO] [stderr]     |
[INFO] [stderr] 102 | fn parse_volumes_li_elements(doc: Html) -> Vec<FromSingleLiNode> {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/scrape/source.rs:12:32
[INFO] [stderr]    |
[INFO] [stderr] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog>;
[INFO] [stderr]    |                                ^ this lifetime flows to the output                                          ------- the lifetime gets resolved as `'life0`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: one option is to consistently use `'life0`
[INFO] [stderr]    |
[INFO] [stderr] 12 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> Result<Catalog<'life0>>;
[INFO] [stderr]    |                                                                                                                    ++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stderr]   --> src/ln_source/bili/mod.rs:34:32
[INFO] [stderr]    |
[INFO] [stderr] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog> {
[INFO] [stderr]    |                                ^ this lifetime flows to the output                                                  ------- the lifetime gets resolved as `'life0`
[INFO] [stderr]    |
[INFO] [stderr] help: one option is to consistently use `'life0`
[INFO] [stderr]    |
[INFO] [stderr] 34 |     async fn get_novel_catalog(&self, novel: &NovelInfo, request_sender: impl RequestSenderTrait) -> anyhow::Result<Catalog<'life0>> {
[INFO] [stderr]    |                                                                                                                            ++++++++
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_novel_id` is never used
[INFO] [stderr]   --> src/ln_source/bili/utils.rs:10:15
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub(super) fn get_novel_id(url: &Url) -> Option<i32> {
[INFO] [stderr]    |               ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `fuckbilinovel-rs` (lib) generated 19 warnings (run `cargo fix --lib -p fuckbilinovel-rs` to apply 1 suggestion)
[INFO] [stderr] warning: `fuckbilinovel-rs` (lib test) generated 14 warnings (13 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/fuckbilinovel_rs-c14563067f511af2)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test ln_source::bili::test::test_get_novel_info ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- ln_source::bili::test::test_get_novel_info stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'ln_source::bili::test::test_get_novel_info' panicked at src/ln_source/bili/mod.rs:56:78:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: error sending request for url (https://www.bilinovel.com/novel/2890.html)
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     0: client error (Connect)
[INFO] [stdout]     1: dns error: failed to lookup address information: Temporary failure in name resolution
[INFO] [stdout]     2: failed to lookup address information: Temporary failure in name resolution
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.89/src/backtrace.rs:27:14
[INFO] [stdout]    1: <core::result::Result<T,F> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible,E>>>::from_residual
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/result.rs:2079:27
[INFO] [stdout]    2: <fuckbilinovel_rs::ln_source::bili::BiliNovelSource as fuckbilinovel_rs::scrape::source::LightNovelSource>::get_novel_info::{{closure}}
[INFO] [stdout]              at ./src/ln_source/bili/mod.rs:26:20
[INFO] [stdout]    3: <core::pin::Pin<P> as core::future::future::Future>::poll
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/future/future.rs:133:9
[INFO] [stdout]    4: fuckbilinovel_rs::ln_source::bili::test::test_get_novel_info::{{closure}}
[INFO] [stdout]              at ./src/ln_source/bili/mod.rs:56:72
[INFO] [stdout]    5: <core::pin::Pin<P> as core::future::future::Future>::poll
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/future/future.rs:133:9
[INFO] [stdout]    6: <core::pin::Pin<P> as core::future::future::Future>::poll
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/future/future.rs:133:9
[INFO] [stdout]    7: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:659:73
[INFO] [stdout]    8: tokio::runtime::coop::with_budget
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/coop.rs:107:5
[INFO] [stdout]    9: tokio::runtime::coop::budget
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/coop.rs:73:5
[INFO] [stdout]   10: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:659:25
[INFO] [stdout]   11: tokio::runtime::scheduler::current_thread::Context::enter
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:404:19
[INFO] [stdout]   12: tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:658:44
[INFO] [stdout]   13: tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:737:68
[INFO] [stdout]   14: tokio::runtime::context::scoped::Scoped<T>::set
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   15: tokio::runtime::context::set_scheduler::{{closure}}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context.rs:180:38
[INFO] [stdout]   16: std::thread::local::LocalKey<T>::try_with
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/local.rs:315:12
[INFO] [stdout]   17: std::thread::local::LocalKey<T>::with
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/local.rs:279:20
[INFO] [stdout]   18: tokio::runtime::context::set_scheduler
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context.rs:180:17
[INFO] [stdout]   19: tokio::runtime::scheduler::current_thread::CoreGuard::enter
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:737:27
[INFO] [stdout]   20: tokio::runtime::scheduler::current_thread::CoreGuard::block_on
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:646:24
[INFO] [stdout]   21: tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:175:33
[INFO] [stdout]   22: tokio::runtime::context::runtime::enter_runtime
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   23: tokio::runtime::scheduler::current_thread::CurrentThread::block_on
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:167:9
[INFO] [stdout]   24: tokio::runtime::runtime::Runtime::block_on
[INFO] [stdout]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/runtime.rs:347:52
[INFO] [stdout]   25: fuckbilinovel_rs::ln_source::bili::test::test_get_novel_info
[INFO] [stdout]              at ./src/ln_source/bili/mod.rs:57:37
[INFO] [stdout]   26: fuckbilinovel_rs::ln_source::bili::test::test_get_novel_info::{{closure}}
[INFO] [stdout]              at ./src/ln_source/bili/mod.rs:53:35
[INFO] [stdout]   27: core::ops::function::FnOnce::call_once
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   28: core::ops::function::FnOnce::call_once
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   29: test::__rust_begin_short_backtrace
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   30: test::run_test_in_process::{{closure}}
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   31: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   32: std::panicking::catch_unwind::do_call
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   33: std::panicking::catch_unwind
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   34: std::panic::catch_unwind
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   35: test::run_test_in_process
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   36: test::run_test::{{closure}}
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   37: test::run_test::{{closure}}
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   38: std::sys::backtrace::__rust_begin_short_backtrace
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   39: std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   40: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   41: std::panicking::catch_unwind::do_call
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   42: std::panicking::catch_unwind
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   43: std::panic::catch_unwind
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   44: std::thread::Builder::spawn_unchecked_::{{closure}}
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   45: core::ops::function::FnOnce::call_once{{vtable.shim}}
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   46: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   47: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   48: std::sys::pal::unix::thread::Thread::new::thread_start
[INFO] [stdout]              at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   49: <unknown>
[INFO] [stdout]   50: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55faecca3da2 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x55faecca3da2 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x55faecca3da2 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x55faecca3da2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x55faeccccf93 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x55faeccccf93 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x55faecca0113 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x55faecca0113 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x55faecca3bf2 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x55faecca531c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x55faecca5172 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x55faeca7b1e4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x55faeca7b1e4 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x55faecca5dfb - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x55faecca5dfb - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x55faecca5aca - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:706:13
[INFO] [stdout]   16:     0x55faecca42a9 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x55faecca575d - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x55faecccac20 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x55faecccb026 - core::result::unwrap_failed::h31c9775ec1a50121
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/result.rs:1761:5
[INFO] [stdout]   20:     0x55faeca41b17 - core::result::Result<T,E>::unwrap::h154bcd3451dd8310
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/result.rs:1167:23
[INFO] [stdout]   21:     0x55faeca41b17 - fuckbilinovel_rs::ln_source::bili::test::test_get_novel_info::{{closure}}::hf9d2c35bc91de01f
[INFO] [stdout]                                at /opt/rustwide/workdir/src/ln_source/bili/mod.rs:56:78
[INFO] [stdout]   22:     0x55faeca3cb85 - <core::pin::Pin<P> as core::future::future::Future>::poll::h68209b8d5cb8d450
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/future/future.rs:133:9
[INFO] [stdout]   23:     0x55faeca3cb85 - <core::pin::Pin<P> as core::future::future::Future>::poll::h1aa6ed3acc370e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/future/future.rs:133:9
[INFO] [stdout]   24:     0x55faeca3cb85 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::he9d42e0c134dde14
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:659:73
[INFO] [stdout]   25:     0x55faeca3cb85 - tokio::runtime::coop::with_budget::h029215fdfdbe5970
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/coop.rs:107:5
[INFO] [stdout]   26:     0x55faeca3cb85 - tokio::runtime::coop::budget::h00890e2822057644
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/coop.rs:73:5
[INFO] [stdout]   27:     0x55faeca3cb85 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::h4f0f59b04461908e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:659:25
[INFO] [stdout]   28:     0x55faeca3cb85 - tokio::runtime::scheduler::current_thread::Context::enter::h9088e720d6082860
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:404:19
[INFO] [stdout]   29:     0x55faeca3bcab - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::hff2fc600fe391995
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:658:44
[INFO] [stdout]   30:     0x55faeca3bcab - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::hf4e6ec7d1a5ae77e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:737:68
[INFO] [stdout]   31:     0x55faeca3bcab - tokio::runtime::context::scoped::Scoped<T>::set::hc130cf4c67e17675
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   32:     0x55faeca3cd45 - tokio::runtime::context::set_scheduler::{{closure}}::hdbae1b9d81967f88
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context.rs:180:38
[INFO] [stdout]   33:     0x55faeca3cd45 - std::thread::local::LocalKey<T>::try_with::h319711437a41461c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/local.rs:315:12
[INFO] [stdout]   34:     0x55faeca3cd45 - std::thread::local::LocalKey<T>::with::h8d4cb629d73270f8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/local.rs:279:20
[INFO] [stdout]   35:     0x55faeca3cd45 - tokio::runtime::context::set_scheduler::h8b0981eeb2dbf411
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context.rs:180:17
[INFO] [stdout]   36:     0x55faeca3cd45 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::hbc5ed778566e2663
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:737:27
[INFO] [stdout]   37:     0x55faeca3cd45 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h5b6b20b5043d287a
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:646:24
[INFO] [stdout]   38:     0x55faeca38e82 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h6a72317a53726728
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:175:33
[INFO] [stdout]   39:     0x55faeca38e82 - tokio::runtime::context::runtime::enter_runtime::hb55647d51f018462
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   40:     0x55faeca3909d - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::hdd453a457e63b183
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/scheduler/current_thread/mod.rs:167:9
[INFO] [stdout]   41:     0x55faeca3909d - tokio::runtime::runtime::Runtime::block_on::h55b4f8a2b40a99a1
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.38.0/src/runtime/runtime.rs:347:52
[INFO] [stdout]   42:     0x55faeca41792 - fuckbilinovel_rs::ln_source::bili::test::test_get_novel_info::h046803f66ce0dcf1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/ln_source/bili/mod.rs:57:37
[INFO] [stdout]   43:     0x55faeca3bfa9 - fuckbilinovel_rs::ln_source::bili::test::test_get_novel_info::{{closure}}::h637b989c90e1315b
[INFO] [stdout]                                at /opt/rustwide/workdir/src/ln_source/bili/mod.rs:53:35
[INFO] [stdout]   44:     0x55faeca3bfa9 - core::ops::function::FnOnce::call_once::h9d8d95fcbbf92550
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   45:     0x55faeca8096b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   46:     0x55faeca8096b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   47:     0x55faeca7fb5e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   48:     0x55faeca7fb5e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   49:     0x55faeca7fb5e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   50:     0x55faeca7fb5e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   51:     0x55faeca7fb5e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   52:     0x55faeca7fb5e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   53:     0x55faeca7fb5e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   54:     0x55faeca436d4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   55:     0x55faeca436d4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   56:     0x55faeca470aa - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   57:     0x55faeca470aa - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   58:     0x55faeca470aa - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   59:     0x55faeca470aa - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   60:     0x55faeca470aa - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   61:     0x55faeca470aa - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   62:     0x55faeca470aa - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   63:     0x55faecca91c7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   64:     0x55faecca91c7 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   65:     0x55faecca91c7 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   66:     0x7e06d3a6daa4 - <unknown>
[INFO] [stdout]   67:     0x7e06d3afaa34 - clone
[INFO] [stdout]   68:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     ln_source::bili::test::test_get_novel_info
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "611b5341b92dfb60ff0c88444a129f813bf7b81c3e08d430f52b522936d185f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "611b5341b92dfb60ff0c88444a129f813bf7b81c3e08d430f52b522936d185f9", kill_on_drop: false }`
[INFO] [stdout] 611b5341b92dfb60ff0c88444a129f813bf7b81c3e08d430f52b522936d185f9
