[INFO] fetching crate happy 0.1.1... [INFO] testing happy-0.1.1 against beta-2022-04-10 for beta-1.61-1 [INFO] extracting crate happy 0.1.1 into /workspace/builds/worker-81/source [INFO] validating manifest of crates.io crate happy 0.1.1 on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate happy 0.1.1 [INFO] finished tweaking crates.io crate happy 0.1.1 [INFO] tweaked toml for crates.io crate happy 0.1.1 written to /workspace/builds/worker-81/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-81/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-81/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 989d589fc7513e0438c41cd57cf559a096b933401dde38e78a601c9d94cac94e [INFO] running `Command { std: "docker" "start" "-a" "989d589fc7513e0438c41cd57cf559a096b933401dde38e78a601c9d94cac94e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "989d589fc7513e0438c41cd57cf559a096b933401dde38e78a601c9d94cac94e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "989d589fc7513e0438c41cd57cf559a096b933401dde38e78a601c9d94cac94e", kill_on_drop: false }` [INFO] [stdout] 989d589fc7513e0438c41cd57cf559a096b933401dde38e78a601c9d94cac94e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-81/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-81/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" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 96946e6c5af47c17c499b72694d61f2a9d7fc8a04c359c385ec90a7fb68692e3 [INFO] running `Command { std: "docker" "start" "-a" "96946e6c5af47c17c499b72694d61f2a9d7fc8a04c359c385ec90a7fb68692e3", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.123 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Compiling slab v0.4.6 [INFO] [stderr] Compiling scoped-tls v0.1.2 [INFO] [stderr] Compiling httparse v1.7.0 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Compiling mime v0.3.16 [INFO] [stderr] Compiling regex v0.2.11 [INFO] [stderr] Compiling take v0.1.0 [INFO] [stderr] Compiling ucd-util v0.1.8 [INFO] [stderr] Compiling try-lock v0.1.0 [INFO] [stderr] Compiling safemem v0.3.3 [INFO] [stderr] Compiling smallvec v0.2.1 [INFO] [stderr] Compiling slab v0.3.0 [INFO] [stderr] Compiling utf8-ranges v1.0.5 [INFO] [stderr] Compiling ascii v0.7.1 [INFO] [stderr] Compiling language-tags v0.2.2 [INFO] [stderr] Compiling percent-encoding v1.0.1 [INFO] [stderr] Compiling void v1.0.2 [INFO] [stderr] Compiling crossbeam-utils v0.7.2 [INFO] [stderr] Compiling memoffset v0.5.6 [INFO] [stderr] Compiling crossbeam-epoch v0.8.2 [INFO] [stderr] Compiling tokio-sync v0.1.8 [INFO] [stderr] Compiling unicase v2.6.0 [INFO] [stderr] Compiling tokio-service v0.1.0 [INFO] [stderr] Compiling relay v0.1.1 [INFO] [stderr] Compiling thread_local v0.3.6 [INFO] [stderr] Compiling log v0.3.9 [INFO] [stderr] Compiling aho-corasick v0.6.10 [INFO] [stderr] Compiling base64 v0.9.3 [INFO] [stderr] Compiling want v0.0.4 [INFO] [stderr] Compiling regex-syntax v0.5.6 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Compiling combine v2.4.0 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling parking_lot_core v0.6.2 [INFO] [stderr] Compiling parking_lot v0.9.0 [INFO] [stderr] Compiling mime_guess v2.0.4 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling num_cpus v1.13.1 [INFO] [stderr] Compiling net2 v0.2.37 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling bytes v0.4.12 [INFO] [stderr] Compiling futures-cpupool v0.1.8 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling tokio-executor v0.1.10 [INFO] [stderr] Compiling crossbeam-queue v0.2.3 [INFO] [stderr] Compiling tokio-io v0.1.13 [INFO] [stderr] Compiling rand v0.3.23 [INFO] [stderr] Compiling tokio-current-thread v0.1.7 [INFO] [stderr] Compiling tokio-timer v0.2.13 [INFO] [stderr] Compiling crossbeam-deque v0.7.4 [INFO] [stderr] Compiling mio-uds v0.6.8 [INFO] [stderr] Compiling tokio-reactor v0.1.12 [INFO] [stderr] Compiling tokio-codec v0.1.2 [INFO] [stderr] Compiling tokio-threadpool v0.1.18 [INFO] [stderr] Compiling tokio-udp v0.1.6 [INFO] [stderr] Compiling tokio-tcp v0.1.4 [INFO] [stderr] Compiling tokio-uds v0.2.7 [INFO] [stderr] Compiling tokio-fs v0.1.7 [INFO] [stderr] Compiling tokio v0.1.22 [INFO] [stderr] Compiling serde_json v1.0.79 [INFO] [stderr] Compiling tokio-core v0.1.18 [INFO] [stderr] Compiling tokio-proto v0.1.1 [INFO] [stderr] Compiling hyper v0.11.27 [INFO] [stderr] Compiling happy v0.1.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/api.rs:26:23 [INFO] [stdout] | [INFO] [stdout] 26 | type Handler = Box) -> [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 26 ~ type Handler = Box) -> [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Future` is imported redundantly [INFO] [stdout] --> src/api.rs:81:13 [INFO] [stdout] | [INFO] [stdout] 5 | use futures::{BoxFuture, Future}; [INFO] [stdout] | ------ the item `Future` is already imported here [INFO] [stdout] ... [INFO] [stdout] 81 | use futures::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Future` is imported redundantly [INFO] [stdout] --> src/api.rs:179:13 [INFO] [stdout] | [INFO] [stdout] 5 | use futures::{BoxFuture, Future}; [INFO] [stdout] | ------ the item `Future` is already imported here [INFO] [stdout] ... [INFO] [stdout] 179 | use futures::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Parser` is imported redundantly [INFO] [stdout] --> src/parse_route.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 1 | use combine::{self, Parser}; [INFO] [stdout] | ------ the item `Parser` is already imported here [INFO] [stdout] ... [INFO] [stdout] 91 | use combine::Parser; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `futures::BoxFuture`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:5:15 [INFO] [stdout] | [INFO] [stdout] 5 | use futures::{BoxFuture, Future}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `futures::BoxFuture`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:31:13 [INFO] [stdout] | [INFO] [stdout] 31 | BoxFuture + Send + Sync> ; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `futures::BoxFuture`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:115:29 [INFO] [stdout] | [INFO] [stdout] 115 | F: Fn(Request) -> BoxFuture + Send + Sync + 'static { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated type alias `futures::BoxFuture`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:174:19 [INFO] [stdout] | [INFO] [stdout] 174 | type Future = BoxFuture; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::ascii::AsciiExt::eq_ignore_ascii_case`: use inherent methods instead [INFO] [stdout] --> src/parse_route.rs:62:40 [INFO] [stdout] | [INFO] [stdout] 62 | string_cmp(s, |a, b| AsciiExt::eq_ignore_ascii_case(&a, &b)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated trait `std::ascii::AsciiExt`: use inherent methods instead [INFO] [stdout] --> src/parse_route.rs:48:21 [INFO] [stdout] | [INFO] [stdout] 48 | use std::ascii::AsciiExt; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `mime_guess::guess_mime_type`: Use `from_path(path).first_or_octet_stream()` instead [INFO] [stdout] --> src/static_file.rs:2:17 [INFO] [stdout] | [INFO] [stdout] 2 | use mime_guess::guess_mime_type; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `mime_guess::guess_mime_type`: Use `from_path(path).first_or_octet_stream()` instead [INFO] [stdout] --> src/static_file.rs:30:24 [INFO] [stdout] | [INFO] [stdout] 30 | let mime = guess_mime_type(&local_path); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/api.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | User(Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 23 - User(Box), [INFO] [stdout] 23 + User(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/api.rs:26:20 [INFO] [stdout] | [INFO] [stdout] 26 | type Handler = Box) -> [INFO] [stdout] 31 | | BoxFuture + Send + Sync> ; [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 26 ~ type Handler = Box) -> [INFO] [stdout] 31 ~ BoxFuture + Send + Sync> ; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parse_route.rs:21:25 [INFO] [stdout] | [INFO] [stdout] 21 | type StrParser<'a, R> = combine::Parser; [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 [INFO] [stdout] help: use `dyn` [INFO] [stdout] | [INFO] [stdout] 21 - type StrParser<'a, R> = combine::Parser; [INFO] [stdout] 21 + type StrParser<'a, R> = dyn combine::Parser; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:89:65 [INFO] [stdout] | [INFO] [stdout] 89 | Err(e) => return err(ErrorKind::Deserialize(e)).boxed(), [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:108:16 [INFO] [stdout] | [INFO] [stdout] 108 | }).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:191:33 [INFO] [stdout] | [INFO] [stdout] 191 | return ok(response).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:235:20 [INFO] [stdout] | [INFO] [stdout] 235 | result.boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `futures::Future::boxed`: removed without replacement, recommended to use a local extension trait or function if needed, more details in https://github.com/rust-lang-nursery/futures-rs/issues/228 [INFO] [stdout] --> src/api.rs:243:21 [INFO] [stdout] | [INFO] [stdout] 243 | ok(res).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements [INFO] [stdout] --> src/parse_route.rs:69:31 [INFO] [stdout] | [INFO] [stdout] 69 | optional(verbs_and_space).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first, the lifetime cannot outlive the lifetime `'a` as defined here... [INFO] [stdout] --> src/parse_route.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | fn verb<'a>() -> Box>> { [INFO] [stdout] | ^^ [INFO] [stdout] note: ...so that the type `Optional, [closure@src/parse_route.rs:63:39: 63:62]>>, combine::combinator::Map, [closure@src/parse_route.rs:63:39: 63:62]>>, Many1>), [closure@src/parse_route.rs:68:79: 68:86]>>` will meet its required lifetime bounds... [INFO] [stdout] --> src/parse_route.rs:69:31 [INFO] [stdout] | [INFO] [stdout] 69 | optional(verbs_and_space).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/combine-2.4.0/src/primitives.rs:1722:29 [INFO] [stdout] | [INFO] [stdout] 1722 | where Self: Sized + 'a [INFO] [stdout] | ^^ [INFO] [stdout] = note: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the types are compatible [INFO] [stdout] --> src/parse_route.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | optional(verbs_and_space).boxed() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected `Box<(dyn Parser> + 'static)>` [INFO] [stdout] found `Box>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements [INFO] [stdout] --> src/parse_route.rs:78:59 [INFO] [stdout] | [INFO] [stdout] 78 | literal.map(|r| SegmentPiece::Literal(r)).or(pattern).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first, the lifetime cannot outlive the lifetime `'a` as defined here... [INFO] [stdout] --> src/parse_route.rs:72:18 [INFO] [stdout] | [INFO] [stdout] 72 | fn segment_piece<'a>() -> Box> { [INFO] [stdout] | ^^ [INFO] [stdout] note: ...so that the type `Or, NoneOf, &'a str>>, [closure@src/parse_route.rs:74:66: 74:103]>, [closure@src/parse_route.rs:78:17: 78:45]>, combine::combinator::Map<((combine::combinator::Token<&'a str>, combine::combinator::Map<(Or, combine::char::Letter<&'a str>>, Many, combine::char::AlphaNum<&'a str>>>), [closure@src/parse_route.rs:75:82: 75:130]>), combine::combinator::Token<&'a str>), [closure@src/parse_route.rs:76:60: 76:98]>>` will meet its required lifetime bounds... [INFO] [stdout] --> src/parse_route.rs:78:59 [INFO] [stdout] | [INFO] [stdout] 78 | literal.map(|r| SegmentPiece::Literal(r)).or(pattern).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] note: ...that is required by this bound [INFO] [stdout] --> /opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/combine-2.4.0/src/primitives.rs:1722:29 [INFO] [stdout] | [INFO] [stdout] 1722 | where Self: Sized + 'a [INFO] [stdout] | ^^ [INFO] [stdout] = note: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the types are compatible [INFO] [stdout] --> src/parse_route.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | literal.map(|r| SegmentPiece::Literal(r)).or(pattern).boxed() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected `Box<(dyn Parser + 'static)>` [INFO] [stdout] found `Box>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements [INFO] [stdout] --> src/parse_route.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | many1(segment_piece()).map(Segment).and(optional(token('/'))).map(|(v, _)| v).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first, the lifetime cannot outlive the lifetime `'a` as defined here... [INFO] [stdout] --> src/parse_route.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 81 | fn segment<'a>() -> Box> { [INFO] [stdout] | ^^ [INFO] [stdout] note: ...so that the types are compatible [INFO] [stdout] --> src/parse_route.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | many1(segment_piece()).map(Segment).and(optional(token('/'))).map(|(v, _)| v).boxed() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected `dyn Parser` [INFO] [stdout] found `dyn Parser` [INFO] [stdout] = note: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the types are compatible [INFO] [stdout] --> src/parse_route.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | many1(segment_piece()).map(Segment).and(optional(token('/'))).map(|(v, _)| v).boxed() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected `Box<(dyn Parser + 'static)>` [INFO] [stdout] found `Box>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements [INFO] [stdout] --> src/parse_route.rs:86:30 [INFO] [stdout] | [INFO] [stdout] 86 | optional(token('/')).and(many1(segment())).map(|(_, v)| v).boxed() [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] note: first, the lifetime cannot outlive the lifetime `'a` as defined here... [INFO] [stdout] --> src/parse_route.rs:85:8 [INFO] [stdout] | [INFO] [stdout] 85 | fn url<'a>() -> Box>> { [INFO] [stdout] | ^^ [INFO] [stdout] note: ...so that the types are compatible [INFO] [stdout] --> src/parse_route.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | optional(token('/')).and(many1(segment())).map(|(_, v)| v).boxed() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected `dyn Parser>` [INFO] [stdout] found `dyn Parser>` [INFO] [stdout] = note: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the types are compatible [INFO] [stdout] --> src/parse_route.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | optional(token('/')).and(many1(segment())).map(|(_, v)| v).boxed() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: expected `Box<(dyn Parser> + 'static)>` [INFO] [stdout] found `Box>>` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors; 20 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0495`. [INFO] [stdout] [INFO] [stderr] error: could not compile `happy` due to 5 previous errors; 20 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "96946e6c5af47c17c499b72694d61f2a9d7fc8a04c359c385ec90a7fb68692e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96946e6c5af47c17c499b72694d61f2a9d7fc8a04c359c385ec90a7fb68692e3", kill_on_drop: false }` [INFO] [stdout] 96946e6c5af47c17c499b72694d61f2a9d7fc8a04c359c385ec90a7fb68692e3