[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> [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> [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> [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> [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> [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> [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> [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> [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