[INFO] fetching crate toktok_core 0.2.1...
[INFO] checking toktok_core-0.2.1 against try#c86ec274072509d26d0ee52682a0c94ed012ed89 for pr-153027
[INFO] extracting crate toktok_core 0.2.1 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate toktok_core 0.2.1
[INFO] finished tweaking crates.io crate toktok_core 0.2.1
[INFO] tweaked toml for crates.io crate toktok_core 0.2.1 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate toktok_core 0.2.1 on toolchain c86ec274072509d26d0ee52682a0c94ed012ed89
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate toktok_core 0.2.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2063dd00f3db234aec1684491a8dbadc3f655aca5e4d5dc256578d505c644811
[INFO] running `Command { std: "docker" "start" "-a" "2063dd00f3db234aec1684491a8dbadc3f655aca5e4d5dc256578d505c644811", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2063dd00f3db234aec1684491a8dbadc3f655aca5e4d5dc256578d505c644811", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2063dd00f3db234aec1684491a8dbadc3f655aca5e4d5dc256578d505c644811", kill_on_drop: false }`
[INFO] [stdout] 2063dd00f3db234aec1684491a8dbadc3f655aca5e4d5dc256578d505c644811
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+c86ec274072509d26d0ee52682a0c94ed012ed89" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1ecfcfce5888ab4336863b350cafd6f2ce5f82ea3462d66ffd5f903d3b015766
[INFO] running `Command { std: "docker" "start" "-a" "1ecfcfce5888ab4336863b350cafd6f2ce5f82ea3462d66ffd5f903d3b015766", kill_on_drop: false }`
[INFO] [stderr]     Checking toktok_core v0.2.1 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |   pub fn peek<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                   -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 32 | /     move |state| {
[INFO] [stdout] 33 | |         let (input, curr_err) = state.into_parts();
[INFO] [stdout] 34 | |         match f.parse(State::from_parts(input, StateError::none())) {
[INFO] [stdout] 35 | |             Ok((_rest, out)) => Ok((State::from_parts(input, curr_err), out)),
[INFO] [stdout] ...  |
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn peek<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |   pub fn peek<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                   -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 32 | /     move |state| {
[INFO] [stdout] 33 | |         let (input, curr_err) = state.into_parts();
[INFO] [stdout] 34 | |         match f.parse(State::from_parts(input, StateError::none())) {
[INFO] [stdout] 35 | |             Ok((_rest, out)) => Ok((State::from_parts(input, curr_err), out)),
[INFO] [stdout] ...  |
[INFO] [stdout] 38 | |     }
[INFO] [stdout]    | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn peek<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |   pub fn peek_negative<'s, 't, T, O, F>(
[INFO] [stdout]    |                            -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 49 | /     move |state: State<'s, 't, T>| {
[INFO] [stdout] 50 | |         let (input, curr_err) = state.into_parts();
[INFO] [stdout] 51 | |         match positioned(f.as_ref()).parse(State::from_parts(input, StateError::none())) {
[INFO] [stdout] 52 | |             Ok((_rest, (_out, range))) => {
[INFO] [stdout] ...  |
[INFO] [stdout] 57 | |     }
[INFO] [stdout]    | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn peek_negative<'s, 't, T: 't, O, F>(
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 41 |   pub fn peek_negative<'s, 't, T, O, F>(
[INFO] [stdout]    |                            -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 49 | /     move |state: State<'s, 't, T>| {
[INFO] [stdout] 50 | |         let (input, curr_err) = state.into_parts();
[INFO] [stdout] 51 | |         match positioned(f.as_ref()).parse(State::from_parts(input, StateError::none())) {
[INFO] [stdout] 52 | |             Ok((_rest, (_out, range))) => {
[INFO] [stdout] ...  |
[INFO] [stdout] 57 | |     }
[INFO] [stdout]    | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn peek_negative<'s, 't, T: 't, O, F>(
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn fail<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                 -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 65 |     move |state| f.parse(state).map_err(ParserError::with_is_fail)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn fail<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn fail<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                 -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 65 |     move |state| f.parse(state).map_err(ParserError::with_is_fail)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn fail<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]    |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn box_<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Box<O>>
[INFO] [stdout]    |                 -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 75 |     move |state| boxed_f.parse(state)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn box_<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Box<O>>
[INFO] [stdout]    |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn box_<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Box<O>>
[INFO] [stdout]    |                 -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 75 |     move |state| boxed_f.parse(state)
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub fn box_<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Box<O>>
[INFO] [stdout]    |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |   pub fn opt<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Option<O>>
[INFO] [stdout]    |                  -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 83 | /     move |state| {
[INFO] [stdout] 84 | |         let input = state.input();
[INFO] [stdout] 85 | |         match f.parse(state) {
[INFO] [stdout] 86 | |             Ok((rest, out)) => Ok((rest, Some(out))),
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | |     }
[INFO] [stdout]    | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn opt<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Option<O>>
[INFO] [stdout]    |                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]   --> src/combinator.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 78 |   pub fn opt<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Option<O>>
[INFO] [stdout]    |                  -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 83 | /     move |state| {
[INFO] [stdout] 84 | |         let input = state.input();
[INFO] [stdout] 85 | |         match f.parse(state) {
[INFO] [stdout] 86 | |             Ok((rest, out)) => Ok((rest, Some(out))),
[INFO] [stdout] ...  |
[INFO] [stdout] 89 | |     }
[INFO] [stdout]    | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]    |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub fn opt<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, Option<O>>
[INFO] [stdout]    |                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |   pub fn many_n<'s, 't, T, O, F>(
[INFO] [stdout]     |                     -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 116 | /     move |mut state| {
[INFO] [stdout] 117 | |         let mut acc = Vec::new();
[INFO] [stdout] 118 | |
[INFO] [stdout] 119 | |         loop {
[INFO] [stdout] ...   |
[INFO] [stdout] 137 | |         Ok((state, acc))
[INFO] [stdout] 138 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn many_n<'s, 't, T: 't, O, F>(
[INFO] [stdout]     |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 108 |   pub fn many_n<'s, 't, T, O, F>(
[INFO] [stdout]     |                     -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 116 | /     move |mut state| {
[INFO] [stdout] 117 | |         let mut acc = Vec::new();
[INFO] [stdout] 118 | |
[INFO] [stdout] 119 | |         loop {
[INFO] [stdout] ...   |
[INFO] [stdout] 137 | |         Ok((state, acc))
[INFO] [stdout] 138 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub fn many_n<'s, 't, T: 't, O, F>(
[INFO] [stdout]     |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |   pub fn sep0<'s, 't, T, O, O2, F, S>(
[INFO] [stdout]     |                   -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 150 | /     move |state| {
[INFO] [stdout] 151 | |         let mut acc = Vec::new();
[INFO] [stdout] 152 | |
[INFO] [stdout] 153 | |         let mut state = {
[INFO] [stdout] ...   |
[INFO] [stdout] 178 | |         Ok((state, acc))
[INFO] [stdout] 179 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn sep0<'s, 't, T: 't, O, O2, F, S>(
[INFO] [stdout]     |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 141 |   pub fn sep0<'s, 't, T, O, O2, F, S>(
[INFO] [stdout]     |                   -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 150 | /     move |state| {
[INFO] [stdout] 151 | |         let mut acc = Vec::new();
[INFO] [stdout] 152 | |
[INFO] [stdout] 153 | |         let mut state = {
[INFO] [stdout] ...   |
[INFO] [stdout] 178 | |         Ok((state, acc))
[INFO] [stdout] 179 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub fn sep0<'s, 't, T: 't, O, O2, F, S>(
[INFO] [stdout]     |                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |   pub fn sep_n<'s, 't, T, O, O2, F, S>(
[INFO] [stdout]     |                    -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 206 | /     move |mut state| {
[INFO] [stdout] 207 | |         let mut acc = Vec::new();
[INFO] [stdout] 208 | |
[INFO] [stdout] 209 | |         let (rest, output) = f.parse(state)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 231 | |         Ok((state, acc))
[INFO] [stdout] 232 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn sep_n<'s, 't, T: 't, O, O2, F, S>(
[INFO] [stdout]     |                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:206:5
[INFO] [stdout]     |
[INFO] [stdout] 194 |   pub fn sep_n<'s, 't, T, O, O2, F, S>(
[INFO] [stdout]     |                    -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 206 | /     move |mut state| {
[INFO] [stdout] 207 | |         let mut acc = Vec::new();
[INFO] [stdout] 208 | |
[INFO] [stdout] 209 | |         let (rest, output) = f.parse(state)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 231 | |         Ok((state, acc))
[INFO] [stdout] 232 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn sep_n<'s, 't, T: 't, O, O2, F, S>(
[INFO] [stdout]     |                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn seq<'s, 't, T, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 241 |     move |state| parser.parse(state)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn seq<'s, 't, T: 't, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn seq<'s, 't, T, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 241 |     move |state| parser.parse(state)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 235 | pub fn seq<'s, 't, T: 't, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:253:5
[INFO] [stdout]     |
[INFO] [stdout] 244 |   pub fn preceded<'s, 't, T, O1, O2, F1, F2>(
[INFO] [stdout]     |                       -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 253 | /     move |state| {
[INFO] [stdout] 254 | |         let (state, _out1) = f1.parse(state)?;
[INFO] [stdout] 255 | |         let (state, out2) = f2.parse(state)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 258 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub fn preceded<'s, 't, T: 't, O1, O2, F1, F2>(
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:253:5
[INFO] [stdout]     |
[INFO] [stdout] 244 |   pub fn preceded<'s, 't, T, O1, O2, F1, F2>(
[INFO] [stdout]     |                       -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 253 | /     move |state| {
[INFO] [stdout] 254 | |         let (state, _out1) = f1.parse(state)?;
[INFO] [stdout] 255 | |         let (state, out2) = f2.parse(state)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 258 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub fn preceded<'s, 't, T: 't, O1, O2, F1, F2>(
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |   pub fn terminated<'s, 't, T, O1, O2, F1, F2>(
[INFO] [stdout]     |                         -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 270 | /     move |state| {
[INFO] [stdout] 271 | |         let (state, out1) = f1.parse(state)?;
[INFO] [stdout] 272 | |         let (state, _out2) = f2.parse(state)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 275 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn terminated<'s, 't, T: 't, O1, O2, F1, F2>(
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:270:5
[INFO] [stdout]     |
[INFO] [stdout] 261 |   pub fn terminated<'s, 't, T, O1, O2, F1, F2>(
[INFO] [stdout]     |                         -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 270 | /     move |state| {
[INFO] [stdout] 271 | |         let (state, out1) = f1.parse(state)?;
[INFO] [stdout] 272 | |         let (state, _out2) = f2.parse(state)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 275 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 261 | pub fn terminated<'s, 't, T: 't, O1, O2, F1, F2>(
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |   pub fn delimited<'s, 't, T, O1, O2, O3, F1, F2, F3>(
[INFO] [stdout]     |                        -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 289 | /     move |state| {
[INFO] [stdout] 290 | |         let (state, _out1) = f1.parse(state)?;
[INFO] [stdout] 291 | |         let (state, out2) = f2.parse(state)?;
[INFO] [stdout] 292 | |         let (state, _out3) = f3.parse(state)?;
[INFO] [stdout] 293 | |
[INFO] [stdout] 294 | |         Ok((state, out2))
[INFO] [stdout] 295 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub fn delimited<'s, 't, T: 't, O1, O2, O3, F1, F2, F3>(
[INFO] [stdout]     |                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:289:5
[INFO] [stdout]     |
[INFO] [stdout] 278 |   pub fn delimited<'s, 't, T, O1, O2, O3, F1, F2, F3>(
[INFO] [stdout]     |                        -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 289 | /     move |state| {
[INFO] [stdout] 290 | |         let (state, _out1) = f1.parse(state)?;
[INFO] [stdout] 291 | |         let (state, out2) = f2.parse(state)?;
[INFO] [stdout] 292 | |         let (state, _out3) = f3.parse(state)?;
[INFO] [stdout] 293 | |
[INFO] [stdout] 294 | |         Ok((state, out2))
[INFO] [stdout] 295 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub fn delimited<'s, 't, T: 't, O1, O2, O3, F1, F2, F3>(
[INFO] [stdout]     |                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn alt<'s, 't, T, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 304 |     move |state| parser.parse(state)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn alt<'s, 't, T: 't, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:304:5
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn alt<'s, 't, T, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 304 |     move |state| parser.parse(state)
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn alt<'s, 't, T: 't, O, G>(group: G) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, O>
[INFO] [stdout]     |                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 307 |   pub fn either<'s, 't, T, O1, O2, F1, F2>(
[INFO] [stdout]     |                     -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 316 | /     move |state| {
[INFO] [stdout] 317 | |         let input = state.input();
[INFO] [stdout] 318 | |         let state = match f1.parse(state) {
[INFO] [stdout] 319 | |             Ok((rest, out)) => return Ok((rest, Either::Left(out))),
[INFO] [stdout] ...   |
[INFO] [stdout] 327 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn either<'s, 't, T: 't, O1, O2, F1, F2>(
[INFO] [stdout]     |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:316:5
[INFO] [stdout]     |
[INFO] [stdout] 307 |   pub fn either<'s, 't, T, O1, O2, F1, F2>(
[INFO] [stdout]     |                     -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 316 | /     move |state| {
[INFO] [stdout] 317 | |         let input = state.input();
[INFO] [stdout] 318 | |         let state = match f1.parse(state) {
[INFO] [stdout] 319 | |             Ok((rest, out)) => return Ok((rest, Either::Left(out))),
[INFO] [stdout] ...   |
[INFO] [stdout] 327 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn either<'s, 't, T: 't, O1, O2, F1, F2>(
[INFO] [stdout]     |                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:335:5
[INFO] [stdout]     |
[INFO] [stdout] 330 |   pub fn exact<'s, 't, T>(token: T) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, &'s str>
[INFO] [stdout]     |                    -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 335 | /     move |state: State<'s, 't, T>| match state.first() {
[INFO] [stdout] 336 | |         Some(spanned) if spanned.token == token => Ok(state.split_first()),
[INFO] [stdout] 337 | |         Some(spanned) => Err(state.and_error(Error::new_expected(
[INFO] [stdout] 338 | |             Span::Range(spanned.span.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 346 | |         ))),
[INFO] [stdout] 347 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 332 |     T: Clone + PartialEq + 't,
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:335:5
[INFO] [stdout]     |
[INFO] [stdout] 330 |   pub fn exact<'s, 't, T>(token: T) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, &'s str>
[INFO] [stdout]     |                    -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 335 | /     move |state: State<'s, 't, T>| match state.first() {
[INFO] [stdout] 336 | |         Some(spanned) if spanned.token == token => Ok(state.split_first()),
[INFO] [stdout] 337 | |         Some(spanned) => Err(state.and_error(Error::new_expected(
[INFO] [stdout] 338 | |             Span::Range(spanned.span.clone()),
[INFO] [stdout] ...   |
[INFO] [stdout] 346 | |         ))),
[INFO] [stdout] 347 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 332 |     T: Clone + PartialEq + 't,
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:358:5
[INFO] [stdout]     |
[INFO] [stdout] 350 |   pub fn custom<'s, 't, T, O>(
[INFO] [stdout]     |                     -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 358 | /     move |state: State<'s, 't, T>| match state.first() {
[INFO] [stdout] 359 | |         Some(spanned) => match parse(&state.input().source()[spanned.span.clone()]) {
[INFO] [stdout] 360 | |             Some(out) => {
[INFO] [stdout] 361 | |                 let (state, _) = state.split_first();
[INFO] [stdout] ...   |
[INFO] [stdout] 374 | |         ))),
[INFO] [stdout] 375 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 355 |     T: Clone + PartialEq + 't,
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:358:5
[INFO] [stdout]     |
[INFO] [stdout] 350 |   pub fn custom<'s, 't, T, O>(
[INFO] [stdout]     |                     -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 358 | /     move |state: State<'s, 't, T>| match state.first() {
[INFO] [stdout] 359 | |         Some(spanned) => match parse(&state.input().source()[spanned.span.clone()]) {
[INFO] [stdout] 360 | |             Some(out) => {
[INFO] [stdout] 361 | |                 let (state, _) = state.split_first();
[INFO] [stdout] ...   |
[INFO] [stdout] 374 | |         ))),
[INFO] [stdout] 375 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 355 |     T: Clone + PartialEq + 't,
[INFO] [stdout]     |                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:385:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |   pub fn positioned<'s, 't, T, O, F>(
[INFO] [stdout]     |                         -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 385 | /     move |state| {
[INFO] [stdout] 386 | |         let start = state.input().positioned_start();
[INFO] [stdout] 387 | |         let (state, output) = f.parse(state)?;
[INFO] [stdout] 388 | |         let end = state.input().positioned_end(start);
[INFO] [stdout] 389 | |
[INFO] [stdout] 390 | |         Ok((state, (output, start..end)))
[INFO] [stdout] 391 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 378 | pub fn positioned<'s, 't, T: 't, O, F>(
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:385:5
[INFO] [stdout]     |
[INFO] [stdout] 378 |   pub fn positioned<'s, 't, T, O, F>(
[INFO] [stdout]     |                         -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 385 | /     move |state| {
[INFO] [stdout] 386 | |         let start = state.input().positioned_start();
[INFO] [stdout] 387 | |         let (state, output) = f.parse(state)?;
[INFO] [stdout] 388 | |         let end = state.input().positioned_end(start);
[INFO] [stdout] 389 | |
[INFO] [stdout] 390 | |         Ok((state, (output, start..end)))
[INFO] [stdout] 391 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 378 | pub fn positioned<'s, 't, T: 't, O, F>(
[INFO] [stdout]     |                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:401:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |   pub fn slice<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, (O, &'s str)>
[INFO] [stdout]     |                    -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 401 | /     move |state| {
[INFO] [stdout] 402 | |         let (state, (output, range)) = positioned_f.parse(state)?;
[INFO] [stdout] 403 | |         let slice = &state.input().source()[range];
[INFO] [stdout] ...   |
[INFO] [stdout] 406 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub fn slice<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, (O, &'s str)>
[INFO] [stdout]     |                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0309]: the parameter type `T` may not live long enough
[INFO] [stdout]    --> src/combinator.rs:401:5
[INFO] [stdout]     |
[INFO] [stdout] 394 |   pub fn slice<'s, 't, T, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, (O, &'s str)>
[INFO] [stdout]     |                    -- the parameter type `T` must be valid for the lifetime `'t` as defined here...
[INFO] [stdout] ...
[INFO] [stdout] 401 | /     move |state| {
[INFO] [stdout] 402 | |         let (state, (output, range)) = positioned_f.parse(state)?;
[INFO] [stdout] 403 | |         let slice = &state.input().source()[range];
[INFO] [stdout] ...   |
[INFO] [stdout] 406 | |     }
[INFO] [stdout]     | |_____^ ...so that the type `T` will meet its required lifetime bounds
[INFO] [stdout]     |
[INFO] [stdout] help: consider adding an explicit lifetime bound
[INFO] [stdout]     |
[INFO] [stdout] 394 | pub fn slice<'s, 't, T: 't, O, F>(f: F) -> impl Fn(State<'s, 't, T>) -> Result<'s, 't, T, (O, &'s str)>
[INFO] [stdout]     |                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0309`.
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0309`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `toktok_core` (lib) due to 18 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `toktok_core` (lib test) due to 18 previous errors
[INFO] running `Command { std: "docker" "inspect" "1ecfcfce5888ab4336863b350cafd6f2ce5f82ea3462d66ffd5f903d3b015766", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1ecfcfce5888ab4336863b350cafd6f2ce5f82ea3462d66ffd5f903d3b015766", kill_on_drop: false }`
[INFO] [stdout] 1ecfcfce5888ab4336863b350cafd6f2ce5f82ea3462d66ffd5f903d3b015766
