[INFO] crate topdown-rs 0.3.3 is already in cache
[INFO] checking topdown-rs-0.3.3 against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] extracting crate topdown-rs 0.3.3 into /workspace/builds/worker-14/source
[INFO] validating manifest of crates.io crate topdown-rs 0.3.3 on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking crates.io crate topdown-rs 0.3.3
[INFO] finished tweaking crates.io crate topdown-rs 0.3.3
[INFO] tweaked toml for crates.io crate topdown-rs 0.3.3 written to /workspace/builds/worker-14/source/Cargo.toml
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stdout] e9ef1d4cc367482e4b1d8b9a6feb02bdd2f19461eb23694f4263afc606b98aa8
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `"docker" "start" "-a" "e9ef1d4cc367482e4b1d8b9a6feb02bdd2f19461eb23694f4263afc606b98aa8"`
[INFO] [stderr]     Checking topdown-rs v0.3.3 (/opt/rustwide/workdir)
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stderr]   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:5:20
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:5:31
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                               ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:9:30
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stderr]   |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:9:53
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stderr]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:9:64
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stderr]   |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stderr]   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:5:20
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:5:31
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                               ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:9:30
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stderr]   |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:9:53
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stderr]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:9:64
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stderr]   |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/choice.rs:4:23
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parsers: &'a [&'a(Parser<T>+'a)]
[INFO] [stderr]   |                       ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/choice.rs:7:35
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stderr]   |                                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/until.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/until.rs:7:28
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn until<'a, T>(t:&'a (Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stderr]   |                            ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many.rs:7:28
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn many<'a, T>(p: &'a (Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stderr]   |                            ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many1.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many1.rs:7:29
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn many1<'a, T>(p: &'a (Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stderr]   |                             ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/try.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T> + 'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/try.rs:7:26
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn try<'a, T>(p: &'a(Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stderr]   |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 |     cond: &'a (Parser<S> + 'a),
[INFO] [stderr]   |                ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 |     parser: &'a (Parser<T> + 'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:9:37
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stderr]   |                                     ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:9:62
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stderr]   |                                                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/opt.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/opt.rs:8:32
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stderr]   |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:5:17
[INFO] [stderr]   |
[INFO] [stderr] 5 |     delim: &'a (Parser<String>+'a),
[INFO] [stderr]   |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<String>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:9:29
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stderr]   |                             ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:9:54
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stderr]   |                                                      ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<String> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 |     parser: &'a (Parser<S>+'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:6:16
[INFO] [stderr]   |
[INFO] [stderr] 6 |     stop: &'a (Parser<T>+'a)
[INFO] [stderr]   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:9:37
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stderr]   |                                     ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:9:62
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stderr]   |                                                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:47:21
[INFO] [stderr]    |
[INFO] [stderr] 47 |     hooks: Vec<&'a (ParserHook+'a)>,
[INFO] [stderr]    |                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:43
[INFO] [stderr]     |
[INFO] [stderr] 178 |     pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) {
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:195:37
[INFO] [stderr]     |
[INFO] [stderr] 195 |     pub fn accept<T>(&mut self, p: &Parser<T>) -> ParserResult<T> {
[INFO] [stderr]     |                                     ^^^^^^^^^ help: use `dyn`: `dyn Parser<T>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stderr]   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:5:20
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:5:31
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                               ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:9:30
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stderr]   |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:9:53
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stderr]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainl.rs:9:64
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainl<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a), a: bool) -> Chainl<'a, T> {
[INFO] [stderr]   |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainl.rs:56:25
[INFO] [stderr]    |
[INFO] [stderr] 56 |     impl<'a> Parser<Box<Fn(isize, isize) -> isize + 'a>> for Op<'a> {
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainl.rs:57:64
[INFO] [stderr]    |
[INFO] [stderr] 57 |         fn _parse(&self, cs: &mut CharSeq) -> ParserResult<Box<Fn(isize, isize) -> isize + 'a>> {
[INFO] [stderr]    |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainl.rs:61:75
[INFO] [stderr]    |
[INFO] [stderr] 61 |                         return (Box::new(|a:isize, b:isize|  a+b)) as Box<Fn(isize, isize) -> isize + 'a>;
[INFO] [stderr]    |                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainl.rs:63:75
[INFO] [stderr]    |
[INFO] [stderr] 63 |                         return (Box::new(|a:isize, b:isize|  a-b)) as Box<Fn(isize, isize) -> isize + 'a>;
[INFO] [stderr]    |                                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 |     term: &'a (Parser<T>+'a),
[INFO] [stderr]   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:5:20
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:5:31
[INFO] [stderr]   |
[INFO] [stderr] 5 |     operator: &'a (Parser<Box<Fn(T, T) -> T + 'a>>+'a),
[INFO] [stderr]   |                               ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:9:30
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stderr]   |                              ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:9:53
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stderr]   |                                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<Box<Fn(T, T) -> T + 'a>> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/chainr.rs:9:64
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn chainr<'a, T>(p: &'a (Parser<T>+'a), o: &'a (Parser<Box<Fn(T, T) -> T + 'a>> + 'a), a: bool) -> Chainr<'a, T> {
[INFO] [stderr]   |                                                                ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(T, T) -> T + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainr.rs:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 |     impl<'a> Parser<Box<Fn(isize, isize) -> isize + 'a>> for Op<'a> {
[INFO] [stderr]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainr.rs:50:64
[INFO] [stderr]    |
[INFO] [stderr] 50 |         fn _parse(&self, cs: &mut CharSeq) -> ParserResult<Box<Fn(isize, isize) -> isize + 'a>> {
[INFO] [stderr]    |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainr.rs:54:80
[INFO] [stderr]    |
[INFO] [stderr] 54 | ...                   return (Box::new(|a:isize, b:isize|  a+b)) as Box<Fn(isize, isize) -> isize + 'a>;
[INFO] [stderr]    |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/chainr.rs:56:80
[INFO] [stderr]    |
[INFO] [stderr] 56 | ...                   return (Box::new(|a:isize, b:isize|  a-b)) as Box<Fn(isize, isize) -> isize + 'a>;
[INFO] [stderr]    |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Fn(isize, isize) -> isize + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/choice.rs:4:23
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parsers: &'a [&'a(Parser<T>+'a)]
[INFO] [stderr]   |                       ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/choice.rs:7:35
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn choice<'a, T>(p: &'a [&'a (Parser<T> + 'a)]) -> Choice<'a, T> {
[INFO] [stderr]   |                                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/choice.rs:51:19
[INFO] [stderr]    |
[INFO] [stderr] 51 |         let l: &[&Parser<String>] = &[&("abc"), &("def")];
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<String>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/choice.rs:63:19
[INFO] [stderr]    |
[INFO] [stderr] 63 |         let l: &[&Parser<String>] = &[&("ghi"), &("def")];
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<String>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/choice.rs:77:19
[INFO] [stderr]    |
[INFO] [stderr] 77 |         let l: &[&Parser<String>] = &[&a, &b];
[INFO] [stderr]    |                   ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<String>`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/until.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/until.rs:7:28
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn until<'a, T>(t:&'a (Parser<T>+'a)) -> Until<'a, T> {
[INFO] [stderr]   |                            ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many.rs:7:28
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn many<'a, T>(p: &'a (Parser<T> + 'a)) -> Many<'a, T> {
[INFO] [stderr]   |                            ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many1.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many1.rs:7:29
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn many1<'a, T>(p: &'a (Parser<T> + 'a)) -> Many1<'a, T> {
[INFO] [stderr]   |                             ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/try.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T> + 'a)
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/try.rs:7:26
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn try<'a, T>(p: &'a(Parser<T>+'a)) -> Try<'a, T> {
[INFO] [stderr]   |                          ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:4:16
[INFO] [stderr]   |
[INFO] [stderr] 4 |     cond: &'a (Parser<S> + 'a),
[INFO] [stderr]   |                ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 |     parser: &'a (Parser<T> + 'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:9:37
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stderr]   |                                     ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/cond.rs:9:62
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn cond<'a, S, T:Clone>(c: &'a (Parser<S> + 'a), p: &'a (Parser<T> + 'a), e: T) -> Cond<'a, S, T> {
[INFO] [stderr]   |                                                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/opt.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/opt.rs:8:32
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn opt<'a, T:Clone>(p:&'a (Parser<T>+'a), d: T) -> Opt<'a, T> {
[INFO] [stderr]   |                                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 |     parser: &'a (Parser<T>+'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:5:17
[INFO] [stderr]   |
[INFO] [stderr] 5 |     delim: &'a (Parser<String>+'a),
[INFO] [stderr]   |                 ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<String>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:9:29
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stderr]   |                             ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/split.rs:9:54
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn split<'a, T>(p: &'a (Parser<T> + 'a), d: &'a (Parser<String> + 'a), a: bool) -> Split<'a, T> {
[INFO] [stderr]   |                                                      ^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<String> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:5:18
[INFO] [stderr]   |
[INFO] [stderr] 5 |     parser: &'a (Parser<S>+'a),
[INFO] [stderr]   |                  ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:6:16
[INFO] [stderr]   |
[INFO] [stderr] 6 |     stop: &'a (Parser<T>+'a)
[INFO] [stderr]   |                ^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T>+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:9:37
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stderr]   |                                     ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<S> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]  --> src/many_until.rs:9:62
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn many_until<'a, S, T>(p: &'a (Parser<S> + 'a), s: &'a (Parser<T> + 'a)) -> ManyUntil<'a, S, T> {
[INFO] [stderr]   |                                                              ^^^^^^^^^^^^^^ help: use `dyn`: `dyn Parser<T> + 'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:47:21
[INFO] [stderr]    |
[INFO] [stderr] 47 |     hooks: Vec<&'a (ParserHook+'a)>,
[INFO] [stderr]    |                     ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:178:43
[INFO] [stderr]     |
[INFO] [stderr] 178 |     pub fn add_hook(&mut self, hook: &'a (ParserHook+'a)) {
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^ help: use `dyn`: `dyn ParserHook+'a`
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:195:37
[INFO] [stderr]     |
[INFO] [stderr] 195 |     pub fn accept<T>(&mut self, p: &Parser<T>) -> ParserResult<T> {
[INFO] [stderr]     |                                     ^^^^^^^^^ help: use `dyn`: `dyn Parser<T>`
[INFO] [stderr] 
[INFO] [stderr] error[E0392]: parameter `'a` is never used
[INFO] [stderr]   --> src/chainl.rs:54:15
[INFO] [stderr]    |
[INFO] [stderr] 54 |     struct Op<'a>;
[INFO] [stderr]    |               ^^ unused parameter
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing `'a`, referring to it in a field, or using a marker such as `std::marker::PhantomData`
[INFO] [stderr] 
[INFO] [stderr] error[E0392]: parameter `'a` is never used
[INFO] [stderr]   --> src/chainr.rs:47:15
[INFO] [stderr]    |
[INFO] [stderr] 47 |     struct Op<'a>;
[INFO] [stderr]    |               ^^ unused parameter
[INFO] [stderr]    |
[INFO] [stderr]    = help: consider removing `'a`, referring to it in a field, or using a marker such as `std::marker::PhantomData`
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 2 previous errors
[INFO] [stderr] 
[INFO] [stderr] For more information about this error, try `rustc --explain E0392`.
[INFO] [stderr] error: could not compile `topdown-rs`.
[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] [stderr] error: build failed
[INFO] running `"docker" "inspect" "e9ef1d4cc367482e4b1d8b9a6feb02bdd2f19461eb23694f4263afc606b98aa8"`
[INFO] running `"docker" "rm" "-f" "e9ef1d4cc367482e4b1d8b9a6feb02bdd2f19461eb23694f4263afc606b98aa8"`
[INFO] [stdout] e9ef1d4cc367482e4b1d8b9a6feb02bdd2f19461eb23694f4263afc606b98aa8
