[INFO] fetching crate happy 0.1.1... [INFO] checking happy-0.1.1 against beta for pr-78714 [INFO] extracting crate happy 0.1.1 into /workspace/builds/worker-10/source [INFO] validating manifest of crates.io crate happy 0.1.1 on toolchain beta [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "read-manifest" "--manifest-path" "Cargo.toml", 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-10/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta" "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" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 18f66d61bda8f432205eec1c1e559ae4591272f6304ab7983e4302ac6bd816f0 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "18f66d61bda8f432205eec1c1e559ae4591272f6304ab7983e4302ac6bd816f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "18f66d61bda8f432205eec1c1e559ae4591272f6304ab7983e4302ac6bd816f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "18f66d61bda8f432205eec1c1e559ae4591272f6304ab7983e4302ac6bd816f0", kill_on_drop: false }` [INFO] [stdout] 18f66d61bda8f432205eec1c1e559ae4591272f6304ab7983e4302ac6bd816f0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:6eabd152ff4036248d66efda456a36cb33d24b7291b33f25f75140726c88da35" "/opt/rustwide/cargo-home/bin/cargo" "+beta" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b0a000c6f370041ee41d4ca10d58a4c2be36bb9f1f5ee87bc34b299a8ea47f30 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "b0a000c6f370041ee41d4ca10d58a4c2be36bb9f1f5ee87bc34b299a8ea47f30", kill_on_drop: false }` [INFO] [stderr] Checking ascii v0.7.1 [INFO] [stderr] Checking want v0.0.4 [INFO] [stderr] Checking hyper v0.11.27 [INFO] [stderr] Checking combine v2.4.0 [INFO] [stderr] Checking happy v0.1.1 (/opt/rustwide/workdir) [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] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Error + Send + 'static` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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] 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: 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: 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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn combine::Parser` [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: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/api.rs:23:14 [INFO] [stdout] | [INFO] [stdout] 23 | User(Box), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Error + Send + 'static` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [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] 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: 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: 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] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn combine::Parser` [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:30 [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:9 [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:5 [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: 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:30 [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:9 [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:5 [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: 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: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: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:243:21 [INFO] [stdout] | [INFO] [stdout] 243 | ok(res).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 on the function body at 45:9... [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: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the expression is assignable [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, Input = &'a str> + 'static)>` [INFO] [stdout] found `Box, Input = &'a str>>` [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 on the function body at 45:9... [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: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the expression is assignable [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 combine::Parser, Input = &'a str> + 'static)>` [INFO] [stdout] found `Box, Input = &'a str>>` [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 on the function body at 72:18... [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: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the expression is assignable [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:11 [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 on the function body at 81:12... [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 expression is assignable [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:36 [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 on the function body at 85:8... [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, Input = &'a str>` [INFO] [stdout] found `dyn Parser, Input = &str>` [INFO] [stdout] = note: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the expression is assignable [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, Input = &'a str> + 'static)>` [INFO] [stdout] found `Box, Input = &'a str>>` [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 on the function body at 72:18... [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: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the expression is assignable [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 combine::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:11 [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 on the function body at 81:12... [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 combine::Parser` [INFO] [stdout] found `dyn combine::Parser` [INFO] [stdout] = note: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the expression is assignable [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 combine::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:36 [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 on the function body at 85:8... [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 combine::Parser, Input = &'a str>` [INFO] [stdout] found `dyn combine::Parser, Input = &str>` [INFO] [stdout] = note: but, the lifetime must be valid for the static lifetime... [INFO] [stdout] note: ...so that the expression is assignable [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 combine::Parser, Input = &'a str> + 'static)>` [INFO] [stdout] found `Box, Input = &'a str>>` [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` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [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: build failed [INFO] running `Command { std: "docker" "inspect" "b0a000c6f370041ee41d4ca10d58a4c2be36bb9f1f5ee87bc34b299a8ea47f30", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b0a000c6f370041ee41d4ca10d58a4c2be36bb9f1f5ee87bc34b299a8ea47f30", kill_on_drop: false }` [INFO] [stdout] b0a000c6f370041ee41d4ca10d58a4c2be36bb9f1f5ee87bc34b299a8ea47f30