[INFO] fetching crate fast-router 0.1.1...
[INFO] checking fast-router-0.1.1 against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] extracting crate fast-router 0.1.1 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate fast-router 0.1.1
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate fast-router 0.1.1
[INFO] tweaked toml for crates.io crate fast-router 0.1.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate fast-router 0.1.1 on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate fast-router 0.1.1 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-macros v1.5.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.30
[INFO] [stderr]   Downloaded libc v0.2.104
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3e12686f2f01c5ac596ce20a6c8a094403a03b615b72a2ddc0fdf0adb88b48a8
[INFO] running `Command { std: "docker" "start" "-a" "3e12686f2f01c5ac596ce20a6c8a094403a03b615b72a2ddc0fdf0adb88b48a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3e12686f2f01c5ac596ce20a6c8a094403a03b615b72a2ddc0fdf0adb88b48a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3e12686f2f01c5ac596ce20a6c8a094403a03b615b72a2ddc0fdf0adb88b48a8", kill_on_drop: false }`
[INFO] [stdout] 3e12686f2f01c5ac596ce20a6c8a094403a03b615b72a2ddc0fdf0adb88b48a8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b21424d1a23c81011e89c4fde0dbe6e6a15888060ae37787f63cf1eb526a35e1
[INFO] running `Command { std: "docker" "start" "-a" "b21424d1a23c81011e89c4fde0dbe6e6a15888060ae37787f63cf1eb526a35e1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.104
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling proc-macro2 v1.0.30
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling unicode-xid v0.2.2
[INFO] [stderr]    Compiling syn v1.0.80
[INFO] [stderr]    Compiling futures-core v0.3.17
[INFO] [stderr]     Checking pin-project-lite v0.2.7
[INFO] [stderr]    Compiling parking_lot_core v0.8.5
[INFO] [stderr]     Checking instant v0.1.12
[INFO] [stderr]     Checking smallvec v1.7.0
[INFO] [stderr]     Checking bytes v1.1.0
[INFO] [stderr]     Checking lock_api v0.4.5
[INFO] [stderr]    Compiling tokio v1.12.0
[INFO] [stderr]    Compiling futures-task v0.3.17
[INFO] [stderr]    Compiling indexmap v1.7.0
[INFO] [stderr]    Compiling futures-util v0.3.17
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking tracing-core v0.1.21
[INFO] [stderr]    Compiling futures-channel v0.3.17
[INFO] [stderr]     Checking futures-sink v0.3.17
[INFO] [stderr]    Compiling httparse v1.5.1
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking http v0.2.5
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.0
[INFO] [stderr]    Compiling quote v1.0.10
[INFO] [stderr]     Checking parking_lot v0.11.2
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking tracing v0.1.29
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking socket2 v0.4.2
[INFO] [stderr]     Checking tower-service v0.3.1
[INFO] [stderr]     Checking httpdate v1.0.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking termcolor v1.1.2
[INFO] [stderr]     Checking urlencoding v2.1.0
[INFO] [stderr]     Checking http-body v0.4.4
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]    Compiling tokio-macros v1.5.0
[INFO] [stderr]     Checking tokio-util v0.6.8
[INFO] [stderr]     Checking h2 v0.3.6
[INFO] [stderr]     Checking hyper v0.14.13
[INFO] [stderr]     Checking fast-router v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/router.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn static_dir(path: &str, dir: &str) {}
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]   --> src/router.rs:96:35
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn static_dir(path: &str, dir: &str) {}
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uri`
[INFO] [stdout]   --> src/router.rs:99:24
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn static_file(uri: &str, filepath: &str) {}
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filepath`
[INFO] [stdout]   --> src/router.rs:99:35
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn static_file(uri: &str, filepath: &str) {}
[INFO] [stdout]    |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filepath`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/router.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |         addr: SocketAddr,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]   --> src/router.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn static_dir(path: &str, dir: &str) {}
[INFO] [stdout]    |                       ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dir`
[INFO] [stdout]   --> src/router.rs:96:35
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn static_dir(path: &str, dir: &str) {}
[INFO] [stdout]    |                                   ^^^ help: if this is intentional, prefix it with an underscore: `_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `uri`
[INFO] [stdout]   --> src/router.rs:99:24
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn static_file(uri: &str, filepath: &str) {}
[INFO] [stdout]    |                        ^^^ help: if this is intentional, prefix it with an underscore: `_uri`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filepath`
[INFO] [stdout]   --> src/router.rs:99:35
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn static_file(uri: &str, filepath: &str) {}
[INFO] [stdout]    |                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filepath`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/router.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |         addr: SocketAddr,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `host`
[INFO] [stdout]    --> src/router.rs:177:20
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn run_tls(host: &str, pem: &str, key: &str) {}
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_host`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pem`
[INFO] [stdout]    --> src/router.rs:177:32
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn run_tls(host: &str, pem: &str, key: &str) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_pem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/router.rs:177:43
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn run_tls(host: &str, pem: &str, key: &str) {}
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/router.rs:675:39
[INFO] [stdout]     |
[INFO] [stdout] 675 |             g.get("admin/:name:i32", |mut c| {});
[INFO] [stdout]     |                                       ----^
[INFO] [stdout]     |                                       |
[INFO] [stdout]     |                                       help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `host`
[INFO] [stdout]    --> src/router.rs:177:20
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn run_tls(host: &str, pem: &str, key: &str) {}
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_host`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pem`
[INFO] [stdout]    --> src/router.rs:177:32
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn run_tls(host: &str, pem: &str, key: &str) {}
[INFO] [stdout]     |                                ^^^ help: if this is intentional, prefix it with an underscore: `_pem`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/router.rs:177:43
[INFO] [stdout]     |
[INFO] [stdout] 177 |     pub fn run_tls(host: &str, pem: &str, key: &str) {}
[INFO] [stdout]     |                                           ^^^ help: if this is intentional, prefix it with an underscore: `_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:693:55
[INFO] [stdout]     |
[INFO] [stdout] 693 |                 g1.add(Method::ANY, "/admin/login1", |c| {});
[INFO] [stdout]     |                                                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:692:58
[INFO] [stdout]     |
[INFO] [stdout] 692 |                 g1.add(Method::OPTIONS, "/admin/login", |c| {});
[INFO] [stdout]     |                                                          ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:688:53
[INFO] [stdout]     |
[INFO] [stdout] 688 |             g.add(Method::DELETE, "/admin/login1", |c| {});
[INFO] [stdout]     |                                                     ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:687:49
[INFO] [stdout]     |
[INFO] [stdout] 687 |             g.add(Method::GET, "/admin/login", |c| {});
[INFO] [stdout]     |                                                 ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:681:46
[INFO] [stdout]     |
[INFO] [stdout] 681 |                 g1.delete("/admin/login1/", |c| {});
[INFO] [stdout]     |                                              ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:680:41
[INFO] [stdout]     |
[INFO] [stdout] 680 |                 g1.put("admin/login/", |c| {});
[INFO] [stdout]     |                                         ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:676:36
[INFO] [stdout]     |
[INFO] [stdout] 676 |             g.post("/admin/u32/", |c| {});
[INFO] [stdout]     |                                    ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:675:39
[INFO] [stdout]     |
[INFO] [stdout] 675 |             g.get("admin/:name:i32", |mut c| {});
[INFO] [stdout]     |                                       ^^^^^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:671:31
[INFO] [stdout]     |
[INFO] [stdout] 671 |         r.post("/:user/:id", |c| {});
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:748:39
[INFO] [stdout]     |
[INFO] [stdout] 748 |             g.post("/admin/login1/", |c| {});
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:747:43
[INFO] [stdout]     |
[INFO] [stdout] 747 |             g.any("admin/:name/:id:u32", |c| {});
[INFO] [stdout]     |                                           ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:746:35
[INFO] [stdout]     |
[INFO] [stdout] 746 |             g.any("admin/:name", |c| {});
[INFO] [stdout]     |                                   ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:745:39
[INFO] [stdout]     |
[INFO] [stdout] 745 |             g.any("admin/:name:i32", |c| {});
[INFO] [stdout]     |                                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:743:50
[INFO] [stdout]     |
[INFO] [stdout] 743 |             g.after(Method::ANY, "admin/:name", |c| {});
[INFO] [stdout]     |                                                  ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/router.rs:742:51
[INFO] [stdout]     |
[INFO] [stdout] 742 |             g.before(Method::ANY, "admin/:name", |c| {});
[INFO] [stdout]     |                                                   ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `route`
[INFO] [stdout]    --> src/router.rs:751:13
[INFO] [stdout]     |
[INFO] [stdout] 751 |         let route = r.match_route(Method::GET, "/v1/admin/zhang山/23423");
[INFO] [stdout]     |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_route`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queries` is never read
[INFO] [stdout]   --> src/router.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct Context {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 56 |     params: HashMap<String, String>,
[INFO] [stdout] 57 |     queries: HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `before`, `after`, and `params` are never read
[INFO] [stdout]    --> src/router.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 332 | struct MatchedRoute<'a> {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 333 |     before: Vec<&'a Route>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 334 |     route: Option<&'a Route>,
[INFO] [stdout] 335 |     after: Vec<&'a Route>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 336 |     // 地址参数
[INFO] [stdout] 337 |     params: Option<HashMap<String, String>>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MatchedRoute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `path`, and `has_slash` are never read
[INFO] [stdout]    --> src/router.rs:452:5
[INFO] [stdout]     |
[INFO] [stdout] 447 | struct Route {
[INFO] [stdout]     |        ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 452 |     name: Option<String>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 464 |     has_slash: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Route` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/router.rs:185:18
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn group(&mut self, path: &str) -> RouterGroup {
[INFO] [stdout]     |                  ^^^^^^^^^                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn group(&mut self, path: &str) -> RouterGroup<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/router.rs:202:20
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn match_route(&self, method: Method, path: &str) -> Option<MatchedRoute> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn match_route(&self, method: Method, path: &str) -> Option<MatchedRoute<'_>> {
[INFO] [stdout]     |                                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/router.rs:388:18
[INFO] [stdout]     |
[INFO] [stdout] 388 |     pub fn group(&mut self, path: &str) -> RouterGroup {
[INFO] [stdout]     |                  ^^^^^^^^^                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 388 |     pub fn group(&mut self, path: &str) -> RouterGroup<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `queries` is never read
[INFO] [stdout]   --> src/router.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct Context {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 56 |     params: HashMap<String, String>,
[INFO] [stdout] 57 |     queries: HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `before`, `after`, and `params` are never read
[INFO] [stdout]    --> src/router.rs:333:5
[INFO] [stdout]     |
[INFO] [stdout] 332 | struct MatchedRoute<'a> {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] 333 |     before: Vec<&'a Route>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 334 |     route: Option<&'a Route>,
[INFO] [stdout] 335 |     after: Vec<&'a Route>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 336 |     // 地址参数
[INFO] [stdout] 337 |     params: Option<HashMap<String, String>>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MatchedRoute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `path`, and `has_slash` are never read
[INFO] [stdout]    --> src/router.rs:452:5
[INFO] [stdout]     |
[INFO] [stdout] 447 | struct Route {
[INFO] [stdout]     |        ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 452 |     name: Option<String>,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     path: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 464 |     has_slash: bool,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Route` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/router.rs:185:18
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn group(&mut self, path: &str) -> RouterGroup {
[INFO] [stdout]     |                  ^^^^^^^^^                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 185 |     pub fn group(&mut self, path: &str) -> RouterGroup<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/router.rs:202:20
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn match_route(&self, method: Method, path: &str) -> Option<MatchedRoute> {
[INFO] [stdout]     |                    ^^^^^ the lifetime is elided here            ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 202 |     fn match_route(&self, method: Method, path: &str) -> Option<MatchedRoute<'_>> {
[INFO] [stdout]     |                                                                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/router.rs:388:18
[INFO] [stdout]     |
[INFO] [stdout] 388 |     pub fn group(&mut self, path: &str) -> RouterGroup {
[INFO] [stdout]     |                  ^^^^^^^^^                 ^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 388 |     pub fn group(&mut self, path: &str) -> RouterGroup<'_> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 28.04s
[INFO] running `Command { std: "docker" "inspect" "b21424d1a23c81011e89c4fde0dbe6e6a15888060ae37787f63cf1eb526a35e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b21424d1a23c81011e89c4fde0dbe6e6a15888060ae37787f63cf1eb526a35e1", kill_on_drop: false }`
[INFO] [stdout] b21424d1a23c81011e89c4fde0dbe6e6a15888060ae37787f63cf1eb526a35e1
