[INFO] cloning repository https://github.com/shqld/rust-http-etude
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shqld/rust-http-etude" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshqld%2Frust-http-etude", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshqld%2Frust-http-etude'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b634f402f253dad9bd2b6772b906a891a863684c
[INFO] checking shqld/rust-http-etude against master#32cd9114712a24010b0583624dc52ac302194128 for pr-143717
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshqld%2Frust-http-etude" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/shqld/rust-http-etude
[INFO] finished tweaking git repo https://github.com/shqld/rust-http-etude
[INFO] tweaked toml for git repo https://github.com/shqld/rust-http-etude written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/shqld/rust-http-etude on toolchain 32cd9114712a24010b0583624dc52ac302194128
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+32cd9114712a24010b0583624dc52ac302194128" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/shqld/rust-http-etude 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" "+32cd9114712a24010b0583624dc52ac302194128" "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-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+32cd9114712a24010b0583624dc52ac302194128" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d0dc87262680ca4a2ab66bac2e63146dab7a32078bb5ceb979a517dfbb46dac7
[INFO] running `Command { std: "docker" "start" "-a" "d0dc87262680ca4a2ab66bac2e63146dab7a32078bb5ceb979a517dfbb46dac7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d0dc87262680ca4a2ab66bac2e63146dab7a32078bb5ceb979a517dfbb46dac7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0dc87262680ca4a2ab66bac2e63146dab7a32078bb5ceb979a517dfbb46dac7", kill_on_drop: false }`
[INFO] [stdout] d0dc87262680ca4a2ab66bac2e63146dab7a32078bb5ceb979a517dfbb46dac7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+32cd9114712a24010b0583624dc52ac302194128" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2ff598f477efd98b26211338bae9a9808a09e657eff79d385a07bcb266d5dea2
[INFO] running `Command { std: "docker" "start" "-a" "2ff598f477efd98b26211338bae9a9808a09e657eff79d385a07bcb266d5dea2", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling libc v0.2.51
[INFO] [stderr]     Checking cfg-if v0.1.7
[INFO] [stderr]     Checking rand_core v0.4.0
[INFO] [stderr]    Compiling autocfg v0.1.2
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]     Checking futures v0.1.26
[INFO] [stderr]    Compiling semver-parser v0.7.0
[INFO] [stderr]    Compiling byteorder v1.3.1
[INFO] [stderr]     Checking scopeguard v0.3.3
[INFO] [stderr]     Checking crossbeam-utils v0.6.5
[INFO] [stderr]     Checking log v0.4.6
[INFO] [stderr]    Compiling semver v0.9.0
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rand_xorshift v0.1.1
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]     Checking rand_hc v0.1.0
[INFO] [stderr]     Checking rand_isaac v0.1.1
[INFO] [stderr]     Checking rand_jitter v0.1.3
[INFO] [stderr]     Checking slab v0.4.2
[INFO] [stderr]    Compiling rustc_version v0.2.3
[INFO] [stderr]     Checking stable_deref_trait v1.1.1
[INFO] [stderr]     Checking lazycell v1.2.1
[INFO] [stderr]     Checking smallvec v0.6.9
[INFO] [stderr]    Compiling arrayvec v0.4.10
[INFO] [stderr]     Checking nodrop v0.1.13
[INFO] [stderr]     Checking fnv v1.0.6
[INFO] [stderr]     Checking owning_ref v0.4.0
[INFO] [stderr]     Checking memoffset v0.2.1
[INFO] [stderr]     Checking crossbeam-queue v0.1.2
[INFO] [stderr]     Checking lock_api v0.1.5
[INFO] [stderr]    Compiling parking_lot_core v0.4.0
[INFO] [stderr]     Checking tokio-trace-core v0.1.0
[INFO] [stderr]     Checking tokio-executor v0.1.7
[INFO] [stderr]     Checking tokio-sync v0.1.4
[INFO] [stderr]     Checking iovec v0.1.2
[INFO] [stderr]     Checking rand_os v0.1.3
[INFO] [stderr]     Checking net2 v0.2.33
[INFO] [stderr]     Checking num_cpus v1.10.0
[INFO] [stderr]     Checking bytes v0.4.12
[INFO] [stderr]     Checking tokio-current-thread v0.1.6
[INFO] [stderr]     Checking tokio-timer v0.2.10
[INFO] [stderr]     Checking crossbeam-epoch v0.7.1
[INFO] [stderr]     Checking mio v0.6.16
[INFO] [stderr]     Checking crossbeam-deque v0.7.1
[INFO] [stderr]     Checking tokio-io v0.1.12
[INFO] [stderr]     Checking mio-uds v0.6.7
[INFO] [stderr]     Checking tokio-codec v0.1.1
[INFO] [stderr]     Checking tokio-threadpool v0.1.13
[INFO] [stderr]     Checking parking_lot v0.7.1
[INFO] [stderr]     Checking tokio-reactor v0.1.9
[INFO] [stderr]     Checking tokio-fs v0.1.6
[INFO] [stderr]     Checking tokio-uds v0.2.5
[INFO] [stderr]     Checking tokio-tcp v0.1.3
[INFO] [stderr]     Checking tokio-udp v0.1.3
[INFO] [stderr]     Checking tokio v0.1.18
[INFO] [stderr]     Checking rust-server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, and `Take`
[INFO] [stdout]  --> src/main.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufRead, BufReader, Read, Take};
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^  ^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`, `Read`, and `Take`
[INFO] [stdout]  --> src/main.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::io::{BufRead, BufReader, Read, Take};
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^  ^^^^  ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::req::*`
[INFO] [stdout]  --> src/http/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use self::req::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self::req::*`
[INFO] [stdout]  --> src/http/mod.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub use self::req::*;
[INFO] [stdout]   |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpRequest` is never constructed
[INFO] [stdout]  --> src/http/req.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct HttpRequest<'a, T> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/http/req.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<'a, T> HttpRequest<'a, T> {
[INFO] [stdout]    | ------------------------------ associated items in this implementation
[INFO] [stdout] 11 |   pub fn new(uri: &'a str, method: HttpMethod, headers: HttpHeaderMap, body: T) -> HttpRequest<T> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |   pub fn uri(&self) -> &str {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn method(&self) -> &HttpMethod {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |   pub fn headers(&self) -> &HttpHeaderMap {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   pub fn body(&self) -> &T {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |   pub fn body_mut(&mut self) -> &mut T {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |   pub fn into_body(self) -> T {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `inner` and `path` are never read
[INFO] [stdout]   --> src/message.rs:11:3
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct IncomingMessage<'a> {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 11 |   inner: &'a TcpStream,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 12 |   method: HttpMethod,
[INFO] [stdout] 13 |   path: String,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IncomingMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `body` is never used
[INFO] [stdout]   --> src/message.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a> IncomingMessage<'a> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |   pub fn body(&self) -> &Option<Take<BufReader<&'a TcpStream>>> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/main.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn handle_request(stream: &TcpStream) -> IncomingMessage {
[INFO] [stdout]    |                           ^^^^^^^^^^     --------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn handle_request(stream: &TcpStream) -> IncomingMessage<'_> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/http/req.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub fn new(uri: &'a str, method: HttpMethod, headers: HttpHeaderMap, body: T) -> HttpRequest<T> {
[INFO] [stdout]    |                    ^^ this lifetime flows to the output                            -------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub fn new(uri: &'a str, method: HttpMethod, headers: HttpHeaderMap, body: T) -> HttpRequest<'a, T> {
[INFO] [stdout]    |                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/message.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |   pub fn from_stream(stream: &'a TcpStream) -> IncomingMessage {
[INFO] [stdout]    |                               ^^               --------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 52 |   pub fn from_stream(stream: &'a TcpStream) -> IncomingMessage<'a> {
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HttpRequest` is never constructed
[INFO] [stdout]  --> src/http/req.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct HttpRequest<'a, T> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/http/req.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl<'a, T> HttpRequest<'a, T> {
[INFO] [stdout]    | ------------------------------ associated items in this implementation
[INFO] [stdout] 11 |   pub fn new(uri: &'a str, method: HttpMethod, headers: HttpHeaderMap, body: T) -> HttpRequest<T> {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |   pub fn uri(&self) -> &str {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |   pub fn method(&self) -> &HttpMethod {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |   pub fn headers(&self) -> &HttpHeaderMap {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |   pub fn body(&self) -> &T {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |   pub fn body_mut(&mut self) -> &mut T {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |   pub fn into_body(self) -> T {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `inner` and `path` are never read
[INFO] [stdout]   --> src/message.rs:11:3
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct IncomingMessage<'a> {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 11 |   inner: &'a TcpStream,
[INFO] [stdout]    |   ^^^^^
[INFO] [stdout] 12 |   method: HttpMethod,
[INFO] [stdout] 13 |   path: String,
[INFO] [stdout]    |   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `IncomingMessage` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `body` is never used
[INFO] [stdout]   --> src/message.rs:79:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a> IncomingMessage<'a> {
[INFO] [stdout]    | ---------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 79 |   pub fn body(&self) -> &Option<Take<BufReader<&'a TcpStream>>> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/main.rs:21:27
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn handle_request(stream: &TcpStream) -> IncomingMessage {
[INFO] [stdout]    |                           ^^^^^^^^^^     --------------- the lifetime gets resolved as `'_`
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn handle_request(stream: &TcpStream) -> IncomingMessage<'_> {
[INFO] [stdout]    |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/http/req.rs:11:20
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub fn new(uri: &'a str, method: HttpMethod, headers: HttpHeaderMap, body: T) -> HttpRequest<T> {
[INFO] [stdout]    |                    ^^ this lifetime flows to the output                            -------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 11 |   pub fn new(uri: &'a str, method: HttpMethod, headers: HttpHeaderMap, body: T) -> HttpRequest<'a, T> {
[INFO] [stdout]    |                                                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing
[INFO] [stdout]   --> src/message.rs:52:31
[INFO] [stdout]    |
[INFO] [stdout] 52 |   pub fn from_stream(stream: &'a TcpStream) -> IncomingMessage {
[INFO] [stdout]    |                               ^^               --------------- the lifetime gets resolved as `'a`
[INFO] [stdout]    |                               |
[INFO] [stdout]    |                               this lifetime flows to the output
[INFO] [stdout]    |
[INFO] [stdout] help: one option is to consistently use `'a`
[INFO] [stdout]    |
[INFO] [stdout] 52 |   pub fn from_stream(stream: &'a TcpStream) -> IncomingMessage<'a> {
[INFO] [stdout]    |                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.01s
[INFO] running `Command { std: "docker" "inspect" "2ff598f477efd98b26211338bae9a9808a09e657eff79d385a07bcb266d5dea2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2ff598f477efd98b26211338bae9a9808a09e657eff79d385a07bcb266d5dea2", kill_on_drop: false }`
[INFO] [stdout] 2ff598f477efd98b26211338bae9a9808a09e657eff79d385a07bcb266d5dea2
