[INFO] fetching crate scrupy 0.1.6...
[INFO] testing scrupy-0.1.6 against 1.90.0 for beta-1.91-3
[INFO] extracting crate scrupy 0.1.6 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate scrupy 0.1.6
[INFO] finished tweaking crates.io crate scrupy 0.1.6
[INFO] tweaked toml for crates.io crate scrupy 0.1.6 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate scrupy 0.1.6 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 29 packages to latest compatible versions
[INFO] [stderr]       Adding hyper v0.10.16 (available: v1.7.0)
[INFO] [stderr]       Adding url v1.7.2 (available: v2.5.7)
[INFO] [stderr]       Adding wasi v0.10.0+wasi-snapshot-preview1 (available: v0.10.2+wasi-snapshot-preview1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[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" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 102d48438103f17bc3f3063f567b45a7ed556a3068dbf7829a506138a9fb19f4
[INFO] running `Command { std: "docker" "start" "-a" "102d48438103f17bc3f3063f567b45a7ed556a3068dbf7829a506138a9fb19f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "102d48438103f17bc3f3063f567b45a7ed556a3068dbf7829a506138a9fb19f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "102d48438103f17bc3f3063f567b45a7ed556a3068dbf7829a506138a9fb19f4", kill_on_drop: false }`
[INFO] [stdout] 102d48438103f17bc3f3063f567b45a7ed556a3068dbf7829a506138a9fb19f4
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 90bfcf1d2be094097f681d6d24f09ffc34126dbab2a8be0022c6a6072ba3a90e
[INFO] running `Command { std: "docker" "start" "-a" "90bfcf1d2be094097f681d6d24f09ffc34126dbab2a8be0022c6a6072ba3a90e", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling version_check v0.1.5
[INFO] [stderr]    Compiling safemem v0.3.3
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling language-tags v0.2.2
[INFO] [stderr]    Compiling typeable v0.1.2
[INFO] [stderr]    Compiling base64 v0.9.3
[INFO] [stderr]    Compiling unicase v1.4.2
[INFO] [stderr]    Compiling mime v0.2.6
[INFO] [stderr]    Compiling hyper v0.10.16
[INFO] [stderr]    Compiling scrupy v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Method` and `Request`
[INFO] [stdout]  --> src/scheduler/mod.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use downloader::{Request, Method};
[INFO] [stdout]   |                  ^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine::Crawler`
[INFO] [stdout]  --> src/scheduler/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use engine::Crawler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/scheduler/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Method`
[INFO] [stdout]  --> src/downloader_middleware/mod.rs:3:53
[INFO] [stdout]   |
[INFO] [stdout] 3 | use downloader::{Request, RequestContent, Response, Method, DownloadError};
[INFO] [stdout]   |                                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |     spider: Box<Spider<ItemType=ItemType>>,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     spider: Box<dyn Spider<ItemType=ItemType>>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     item_pipelines: Vec<Mutex<Box<ItemPipeline<ItemType=ItemType>>>>,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     item_pipelines: Vec<Mutex<Box<dyn ItemPipeline<ItemType=ItemType>>>>,
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |     downloader_middleware: Vec<Mutex<Box<DownloaderMiddleware>>>,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |     downloader_middleware: Vec<Mutex<Box<dyn DownloaderMiddleware>>>,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/item_pipeline/mod.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<dyn Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/item_pipeline/mod.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<dyn Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx_`
[INFO] [stdout]    --> src/engine/mod.rs:116:24
[INFO] [stdout]     |
[INFO] [stdout] 116 |         while let Some(tx_) = self.txs.pop() {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_tx_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/engine/mod.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |         let mut cralwer = task.crawler;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spider`
[INFO] [stdout]   --> src/item_pipeline/mod.rs:18:31
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_spider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spider`
[INFO] [stdout]   --> src/item_pipeline/mod.rs:22:32
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_spider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ItemType` should have a snake case name
[INFO] [stdout]    --> src/engine/mod.rs:159:32
[INFO] [stdout]     |
[INFO] [stdout] 159 |                 let (requests, ItemType) = crawler.spider.parse(r);
[INFO] [stdout]     |                                ^^^^^^^^ help: convert the identifier to snake case: `item_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.01s
[INFO] running `Command { std: "docker" "inspect" "90bfcf1d2be094097f681d6d24f09ffc34126dbab2a8be0022c6a6072ba3a90e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90bfcf1d2be094097f681d6d24f09ffc34126dbab2a8be0022c6a6072ba3a90e", kill_on_drop: false }`
[INFO] [stdout] 90bfcf1d2be094097f681d6d24f09ffc34126dbab2a8be0022c6a6072ba3a90e
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f93cb36be5695144bdf05511bdba2a6d045a83e13354465d497cae05eddf114f
[INFO] running `Command { std: "docker" "start" "-a" "f93cb36be5695144bdf05511bdba2a6d045a83e13354465d497cae05eddf114f", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: unused imports: `Method` and `Request`
[INFO] [stdout]  --> src/scheduler/mod.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use downloader::{Request, Method};
[INFO] [stdout]   |                  ^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine::Crawler`
[INFO] [stdout]  --> src/scheduler/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use engine::Crawler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/scheduler/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Method`
[INFO] [stdout]  --> src/downloader_middleware/mod.rs:3:53
[INFO] [stdout]   |
[INFO] [stdout] 3 | use downloader::{Request, RequestContent, Response, Method, DownloadError};
[INFO] [stdout]   |                                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |     spider: Box<Spider<ItemType=ItemType>>,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     spider: Box<dyn Spider<ItemType=ItemType>>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     item_pipelines: Vec<Mutex<Box<ItemPipeline<ItemType=ItemType>>>>,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     item_pipelines: Vec<Mutex<Box<dyn ItemPipeline<ItemType=ItemType>>>>,
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |     downloader_middleware: Vec<Mutex<Box<DownloaderMiddleware>>>,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |     downloader_middleware: Vec<Mutex<Box<dyn DownloaderMiddleware>>>,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/item_pipeline/mod.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<dyn Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/item_pipeline/mod.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<dyn Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx_`
[INFO] [stdout]    --> src/engine/mod.rs:116:24
[INFO] [stdout]     |
[INFO] [stdout] 116 |         while let Some(tx_) = self.txs.pop() {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_tx_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling scrupy v0.1.6 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/engine/mod.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |         let mut cralwer = task.crawler;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spider`
[INFO] [stdout]   --> src/item_pipeline/mod.rs:18:31
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_spider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spider`
[INFO] [stdout]   --> src/item_pipeline/mod.rs:22:32
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_spider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `ItemType` should have a snake case name
[INFO] [stdout]    --> src/engine/mod.rs:159:32
[INFO] [stdout]     |
[INFO] [stdout] 159 |                 let (requests, ItemType) = crawler.spider.parse(r);
[INFO] [stdout]     |                                ^^^^^^^^ help: convert the identifier to snake case: `item_type`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Method` and `Request`
[INFO] [stdout]  --> src/scheduler/mod.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use downloader::{Request, Method};
[INFO] [stdout]   |                  ^^^^^^^  ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `engine::Crawler`
[INFO] [stdout]  --> src/scheduler/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use engine::Crawler;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/scheduler/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Method`
[INFO] [stdout]  --> src/downloader_middleware/mod.rs:3:53
[INFO] [stdout]   |
[INFO] [stdout] 3 | use downloader::{Request, RequestContent, Response, Method, DownloadError};
[INFO] [stdout]   |                                                     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:40:17
[INFO] [stdout]    |
[INFO] [stdout] 40 |     spider: Box<Spider<ItemType=ItemType>>,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 40 |     spider: Box<dyn Spider<ItemType=ItemType>>,
[INFO] [stdout]    |                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:41:35
[INFO] [stdout]    |
[INFO] [stdout] 41 |     item_pipelines: Vec<Mutex<Box<ItemPipeline<ItemType=ItemType>>>>,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 |     item_pipelines: Vec<Mutex<Box<dyn ItemPipeline<ItemType=ItemType>>>>,
[INFO] [stdout]    |                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/engine/mod.rs:42:42
[INFO] [stdout]    |
[INFO] [stdout] 42 |     downloader_middleware: Vec<Mutex<Box<DownloaderMiddleware>>>,
[INFO] [stdout]    |                                          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 |     downloader_middleware: Vec<Mutex<Box<dyn DownloaderMiddleware>>>,
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/item_pipeline/mod.rs:18:44
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<dyn Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/item_pipeline/mod.rs:22:45
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<dyn Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `ItemType`, `parse`
[INFO] [stdout]   --> src/spider/mod.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     type ItemType;
[INFO] [stdout]    |     ------------- `ItemType` from trait
[INFO] [stdout] ...
[INFO] [stdout] 47 |     fn parse(&self, response: Response) -> (Vec<Request>, Vec<Self::ItemType>);
[INFO] [stdout]    |     --------------------------------------------------------------------------- `parse` from trait
[INFO] [stdout] ...
[INFO] [stdout] 56 |     impl Spider for LittleSpider {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `ItemType`, `parse` in implementation
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `downloader::Request` has no field named `url`
[INFO] [stdout]    --> src/downloader/mod.rs:126:13
[INFO] [stdout]     |
[INFO] [stdout] 126 |             url: url,
[INFO] [stdout]     |             ^^^ `downloader::Request` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `downloader::Request` has no field named `method`
[INFO] [stdout]    --> src/downloader/mod.rs:127:13
[INFO] [stdout]     |
[INFO] [stdout] 127 |             method: Method::Get,
[INFO] [stdout]     |             ^^^^^^ `downloader::Request` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `downloader::Request` has no field named `body`
[INFO] [stdout]    --> src/downloader/mod.rs:128:13
[INFO] [stdout]     |
[INFO] [stdout] 128 |             body: None,
[INFO] [stdout]     |             ^^^^ `downloader::Request` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `content`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `DownloadError` doesn't implement `Debug`
[INFO] [stdout]    --> src/downloader/mod.rs:131:28
[INFO] [stdout]     |
[INFO] [stdout] 131 |         request.download().unwrap();
[INFO] [stdout]     |                            ^^^^^^ the trait `Debug` is not implemented for `DownloadError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `DownloadError` or manually `impl Debug for DownloadError`
[INFO] [stdout] note: required by a bound in `Result::<T, E>::unwrap`
[INFO] [stdout]    --> /rustc/1159e78c4747b02ef996e55082b704c09b970588/library/core/src/result.rs:1161:5
[INFO] [stdout] help: consider annotating `DownloadError` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout]  17 + #[derive(Debug)]
[INFO] [stdout]  18 | pub enum DownloadError{
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tx_`
[INFO] [stdout]    --> src/engine/mod.rs:116:24
[INFO] [stdout]     |
[INFO] [stdout] 116 |         while let Some(tx_) = self.txs.pop() {
[INFO] [stdout]     |                        ^^^ help: if this is intentional, prefix it with an underscore: `_tx_`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/engine/mod.rs:198:13
[INFO] [stdout]     |
[INFO] [stdout] 198 |         let mut cralwer = task.crawler;
[INFO] [stdout]     |             ----^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spider`
[INFO] [stdout]   --> src/item_pipeline/mod.rs:18:31
[INFO] [stdout]    |
[INFO] [stdout] 18 |     fn open_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_spider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `spider`
[INFO] [stdout]   --> src/item_pipeline/mod.rs:22:32
[INFO] [stdout]    |
[INFO] [stdout] 22 |     fn close_spider(&mut self, spider: &Box<Spider<ItemType=Self::ItemType>>){
[INFO] [stdout]    |                                ^^^^^^ help: if this is intentional, prefix it with an underscore: `_spider`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0277, E0560.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `scrupy` (lib test) due to 5 previous errors; 13 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f93cb36be5695144bdf05511bdba2a6d045a83e13354465d497cae05eddf114f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f93cb36be5695144bdf05511bdba2a6d045a83e13354465d497cae05eddf114f", kill_on_drop: false }`
[INFO] [stdout] f93cb36be5695144bdf05511bdba2a6d045a83e13354465d497cae05eddf114f
