[INFO] cloning repository https://github.com/dodomorandi/lending-async-iterators-rustlab2024
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dodomorandi/lending-async-iterators-rustlab2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodomorandi%2Flending-async-iterators-rustlab2024", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodomorandi%2Flending-async-iterators-rustlab2024'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6613e08dd4ba89b7c8d7236b815bae54dd69872a
[INFO] checking dodomorandi/lending-async-iterators-rustlab2024 against try#0c70cfbec949d241375e31c5a42066be70c720fc for pr-149681
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdodomorandi%2Flending-async-iterators-rustlab2024" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/dodomorandi/lending-async-iterators-rustlab2024
[INFO] finished tweaking git repo https://github.com/dodomorandi/lending-async-iterators-rustlab2024
[INFO] tweaked toml for git repo https://github.com/dodomorandi/lending-async-iterators-rustlab2024 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dodomorandi/lending-async-iterators-rustlab2024 on toolchain 0c70cfbec949d241375e31c5a42066be70c720fc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dodomorandi/lending-async-iterators-rustlab2024 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" "+0c70cfbec949d241375e31c5a42066be70c720fc" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded as-slice v0.1.5
[INFO] [stderr]   Downloaded embedded-nal-async v0.7.1
[INFO] [stderr]   Downloaded embassy-net v0.4.0
[INFO] [stderr]   Downloaded embedded-nal v0.8.0
[INFO] [stderr]   Downloaded generic-array v0.13.3
[INFO] [stderr]   Downloaded atomic-pool v1.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c8d3305aa37639710b22f887d2bda62c19229274c35c9c3fd9d9edcfe10d9548
[INFO] running `Command { std: "docker" "start" "-a" "c8d3305aa37639710b22f887d2bda62c19229274c35c9c3fd9d9edcfe10d9548", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c8d3305aa37639710b22f887d2bda62c19229274c35c9c3fd9d9edcfe10d9548", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8d3305aa37639710b22f887d2bda62c19229274c35c9c3fd9d9edcfe10d9548", kill_on_drop: false }`
[INFO] [stdout] c8d3305aa37639710b22f887d2bda62c19229274c35c9c3fd9d9edcfe10d9548
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+0c70cfbec949d241375e31c5a42066be70c720fc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8597d1d8fda757735b2f19eb4b63de6a616beab6b9e3b8c6407cf3480fc9e3aa
[INFO] running `Command { std: "docker" "start" "-a" "8597d1d8fda757735b2f19eb4b63de6a616beab6b9e3b8c6407cf3480fc9e3aa", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.77
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]     Checking nb v1.1.0
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking hash32 v0.3.1
[INFO] [stderr]    Compiling libc v0.2.158
[INFO] [stderr]     Checking critical-section v1.1.3
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]    Compiling embedded-io-async v0.6.1
[INFO] [stderr]    Compiling embassy-time-driver v0.1.0
[INFO] [stderr]    Compiling atomic-polyfill v1.0.3
[INFO] [stderr]    Compiling embassy-time-queue-driver v0.1.0
[INFO] [stderr]     Checking heapless v0.8.0
[INFO] [stderr]     Checking embedded-io v0.6.1
[INFO] [stderr]    Compiling embedded-hal-async v1.0.0
[INFO] [stderr]     Checking nb v0.1.3
[INFO] [stderr]     Checking generic-array v0.13.3
[INFO] [stderr]     Checking generic-array v0.12.4
[INFO] [stderr]     Checking no-std-net v0.6.0
[INFO] [stderr]    Compiling embassy-sync v0.5.0
[INFO] [stderr]    Compiling embedded-nal-async v0.7.1
[INFO] [stderr]    Compiling smoltcp v0.11.0
[INFO] [stderr]     Checking embedded-hal v1.0.0
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking embedded-nal v0.8.0
[INFO] [stderr]     Checking as-slice v0.1.5
[INFO] [stderr]     Checking embedded-hal v0.2.7
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking as-slice v0.2.1
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking managed v0.8.0
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking embassy-net-driver v0.2.0
[INFO] [stderr]     Checking atomic-pool v1.0.1
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling pin-project-internal v1.1.5
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]     Checking tokio v1.40.0
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking zerocopy v0.7.35
[INFO] [stderr]     Checking pin-project v1.1.5
[INFO] [stderr]     Checking ppv-lite86 v0.2.20
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking embassy-time v0.3.2
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking embassy-net v0.4.0
[INFO] [stderr]     Checking lending-async-iterator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: unconstrained opaque type
[INFO] [stdout]   --> src/embassy_net.rs:84:63
[INFO] [stdout]    |
[INFO] [stdout] 84 |       pub type TcpReaderReadFuture<'d, const BUF_SIZE: usize> = impl Future<
[INFO] [stdout]    |  _______________________________________________________________^
[INFO] [stdout] 85 | |         Output = (
[INFO] [stdout] 86 | |             Result<usize, embassy_net::tcp::Error>,
[INFO] [stdout] 87 | |             TcpReader<'d>,
[INFO] [stdout] 88 | |             [u8; BUF_SIZE],
[INFO] [stdout] 89 | |         ),
[INFO] [stdout] 90 | |     >;
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TcpReaderReadFuture` must be used in combination with a concrete type within the same crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: unconstrained opaque type
[INFO] [stdout]   --> src/embassy_net.rs:84:63
[INFO] [stdout]    |
[INFO] [stdout] 84 |       pub type TcpReaderReadFuture<'d, const BUF_SIZE: usize> = impl Future<
[INFO] [stdout]    |  _______________________________________________________________^
[INFO] [stdout] 85 | |         Output = (
[INFO] [stdout] 86 | |             Result<usize, embassy_net::tcp::Error>,
[INFO] [stdout] 87 | |             TcpReader<'d>,
[INFO] [stdout] 88 | |             [u8; BUF_SIZE],
[INFO] [stdout] 89 | |         ),
[INFO] [stdout] 90 | |     >;
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TcpReaderReadFuture` must be used in combination with a concrete type within the same crate
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/embassy_net.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |       pub type TcpReaderReadFuture<'d, const BUF_SIZE: usize> = impl Future<
[INFO] [stdout]    |  _______________________________________________________________-
[INFO] [stdout] 85 | |         Output = (
[INFO] [stdout] 86 | |             Result<usize, embassy_net::tcp::Error>,
[INFO] [stdout] 87 | |             TcpReader<'d>,
[INFO] [stdout] 88 | |             [u8; BUF_SIZE],
[INFO] [stdout] 89 | |         ),
[INFO] [stdout] 90 | |     >;
[INFO] [stdout]    | |_____- the expected future
[INFO] [stdout] ...
[INFO] [stdout] 95 |       ) -> TcpReaderReadFuture<'_, BUF_SIZE> {
[INFO] [stdout]    |            --------------------------------- expected `TcpReaderReadFuture<'_, BUF_SIZE>` because of return type
[INFO] [stdout] 96 | /         async move {
[INFO] [stdout] 97 | |             let result = tcp_reader.read(&mut buffer).await;
[INFO] [stdout] 98 | |             (result, tcp_reader, buffer)
[INFO] [stdout] 99 | |         }
[INFO] [stdout]    | |_________^ expected future, found `async` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected opaque type `TcpReaderReadFuture<'_, BUF_SIZE>`
[INFO] [stdout]             found `async` block `{async block@src/embassy_net.rs:96:9: 96:19}`
[INFO] [stdout] note: this item must have a `#[define_opaque(TcpReaderReadFuture)]` attribute to be able to define hidden types
[INFO] [stdout]   --> src/embassy_net.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub(super) fn create<const BUF_SIZE: usize>(
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/embassy_net.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 84 |       pub type TcpReaderReadFuture<'d, const BUF_SIZE: usize> = impl Future<
[INFO] [stdout]    |  _______________________________________________________________-
[INFO] [stdout] 85 | |         Output = (
[INFO] [stdout] 86 | |             Result<usize, embassy_net::tcp::Error>,
[INFO] [stdout] 87 | |             TcpReader<'d>,
[INFO] [stdout] 88 | |             [u8; BUF_SIZE],
[INFO] [stdout] 89 | |         ),
[INFO] [stdout] 90 | |     >;
[INFO] [stdout]    | |_____- the expected future
[INFO] [stdout] ...
[INFO] [stdout] 95 |       ) -> TcpReaderReadFuture<'_, BUF_SIZE> {
[INFO] [stdout]    |            --------------------------------- expected `TcpReaderReadFuture<'_, BUF_SIZE>` because of return type
[INFO] [stdout] 96 | /         async move {
[INFO] [stdout] 97 | |             let result = tcp_reader.read(&mut buffer).await;
[INFO] [stdout] 98 | |             (result, tcp_reader, buffer)
[INFO] [stdout] 99 | |         }
[INFO] [stdout]    | |_________^ expected future, found `async` block
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected opaque type `TcpReaderReadFuture<'_, BUF_SIZE>`
[INFO] [stdout]             found `async` block `{async block@src/embassy_net.rs:96:9: 96:19}`
[INFO] [stdout] note: this item must have a `#[define_opaque(TcpReaderReadFuture)]` attribute to be able to define hidden types
[INFO] [stdout]   --> src/embassy_net.rs:92:19
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub(super) fn create<const BUF_SIZE: usize>(
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*async_iter` as mutable more than once at a time
[INFO] [stdout]    --> src/lib.rs:282:54
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn poll_next<'a>(
[INFO] [stdout]     |                  -- lifetime `'a` defined here
[INFO] [stdout] ...
[INFO] [stdout] 282 |             task::ready!(unsafe { Pin::new_unchecked(&mut *async_iter) }.poll_next(cx))
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^ `*async_iter` was mutably borrowed here in the previous iteration of the loop
[INFO] [stdout] ...
[INFO] [stdout] 285 |                 return Poll::Ready(Some(element));
[INFO] [stdout]     |                        -------------------------- returning this value requires that `*async_iter` is borrowed for `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0499.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `*async_iter` as mutable more than once at a time
[INFO] [stdout]    --> src/lib.rs:282:54
[INFO] [stdout]     |
[INFO] [stdout] 271 |     fn poll_next<'a>(
[INFO] [stdout]     |                  -- lifetime `'a` defined here
[INFO] [stdout] ...
[INFO] [stdout] 282 |             task::ready!(unsafe { Pin::new_unchecked(&mut *async_iter) }.poll_next(cx))
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^^^^^ `*async_iter` was mutably borrowed here in the previous iteration of the loop
[INFO] [stdout] ...
[INFO] [stdout] 285 |                 return Poll::Ready(Some(element));
[INFO] [stdout]     |                        -------------------------- returning this value requires that `*async_iter` is borrowed for `'a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lending-async-iterator` (lib) due to 3 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0597]: `nums` does not live long enough
[INFO] [stdout]    --> src/lib.rs:482:13
[INFO] [stdout]     |
[INFO] [stdout] 480 |           let mut nums = [1, 2, 3].map(|x| A(x, PhantomPinned));
[INFO] [stdout]     |               -------- binding `nums` declared here
[INFO] [stdout] 481 |           let mut demo = pin!(DemoLendingAsyncIterator::new(
[INFO] [stdout] 482 |               nums.iter_mut(),
[INFO] [stdout]     |               ^^^^ borrowed value does not live long enough
[INFO] [stdout] ...
[INFO] [stdout] 502 | /         demo.next()
[INFO] [stdout] 503 | |             .detach(|value| {
[INFO] [stdout] 504 | |                 assert!(value.is_none());
[INFO] [stdout] 505 | |             })
[INFO] [stdout]     | |______________- argument requires that `nums` is borrowed for `'static`
[INFO] [stdout] 506 |               .await;
[INFO] [stdout] 507 |       }
[INFO] [stdout]     |       - `nums` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lending_future.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 |     for<'a> F: FnOnce(T::Output<'a>) -> O,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `demo` does not live long enough
[INFO] [stdout]    --> src/lib.rs:487:9
[INFO] [stdout]     |
[INFO] [stdout] 481 |           let mut demo = pin!(DemoLendingAsyncIterator::new(
[INFO] [stdout]     |               -------- binding `demo` declared here
[INFO] [stdout] ...
[INFO] [stdout] 487 |           demo.next()
[INFO] [stdout]     |           -^^^
[INFO] [stdout]     |           |
[INFO] [stdout]     |  _________borrowed value does not live long enough
[INFO] [stdout]     | |
[INFO] [stdout] 488 | |             .detach(|value| {
[INFO] [stdout] 489 | |                 assert_eq!(value.unwrap().0, 1);
[INFO] [stdout] 490 | |             })
[INFO] [stdout]     | |______________- argument requires that `demo` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 507 |       }
[INFO] [stdout]     |       - `demo` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lending_future.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 |     for<'a> F: FnOnce(T::Output<'a>) -> O,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `demo` as mutable more than once at a time
[INFO] [stdout]    --> src/lib.rs:492:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |           demo.next()
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |  _________first mutable borrow occurs here
[INFO] [stdout]     | |
[INFO] [stdout] 488 | |             .detach(|value| {
[INFO] [stdout] 489 | |                 assert_eq!(value.unwrap().0, 1);
[INFO] [stdout] 490 | |             })
[INFO] [stdout]     | |______________- argument requires that `demo` is borrowed for `'static`
[INFO] [stdout] 491 |               .await;
[INFO] [stdout] 492 |           demo.next()
[INFO] [stdout]     |           ^^^^ second mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lending_future.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 |     for<'a> F: FnOnce(T::Output<'a>) -> O,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `demo` as mutable more than once at a time
[INFO] [stdout]    --> src/lib.rs:497:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |           demo.next()
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |  _________first mutable borrow occurs here
[INFO] [stdout]     | |
[INFO] [stdout] 488 | |             .detach(|value| {
[INFO] [stdout] 489 | |                 assert_eq!(value.unwrap().0, 1);
[INFO] [stdout] 490 | |             })
[INFO] [stdout]     | |______________- argument requires that `demo` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 497 |           demo.next()
[INFO] [stdout]     |           ^^^^ second mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lending_future.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 |     for<'a> F: FnOnce(T::Output<'a>) -> O,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `demo` as mutable more than once at a time
[INFO] [stdout]    --> src/lib.rs:502:9
[INFO] [stdout]     |
[INFO] [stdout] 487 |           demo.next()
[INFO] [stdout]     |           ----
[INFO] [stdout]     |           |
[INFO] [stdout]     |  _________first mutable borrow occurs here
[INFO] [stdout]     | |
[INFO] [stdout] 488 | |             .detach(|value| {
[INFO] [stdout] 489 | |                 assert_eq!(value.unwrap().0, 1);
[INFO] [stdout] 490 | |             })
[INFO] [stdout]     | |______________- argument requires that `demo` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 502 |           demo.next()
[INFO] [stdout]     |           ^^^^ second mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lending_future.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 |     for<'a> F: FnOnce(T::Output<'a>) -> O,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0716]: temporary value dropped while borrowed
[INFO] [stdout]    --> src/lib.rs:481:24
[INFO] [stdout]     |
[INFO] [stdout] 481 |           let mut demo = pin!(DemoLendingAsyncIterator::new(
[INFO] [stdout]     |  ________________________^
[INFO] [stdout] 482 | |             nums.iter_mut(),
[INFO] [stdout] 483 | |             2,
[INFO] [stdout] 484 | |             Duration::from_millis(0)..Duration::from_millis(50),
[INFO] [stdout] 485 | |         ));
[INFO] [stdout]     | |__________^ creates a temporary value which is freed while still in use
[INFO] [stdout] ...
[INFO] [stdout] 502 | /         demo.next()
[INFO] [stdout] 503 | |             .detach(|value| {
[INFO] [stdout] 504 | |                 assert!(value.is_none());
[INFO] [stdout] 505 | |             })
[INFO] [stdout]     | |______________- argument requires that borrow lasts for `'static`
[INFO] [stdout] 506 |               .await;
[INFO] [stdout] 507 |       }
[INFO] [stdout]     |       - temporary value is freed at the end of this statement
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lending_future.rs:42:5
[INFO] [stdout]     |
[INFO] [stdout]  42 |     for<'a> F: FnOnce(T::Output<'a>) -> O,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: this error originates in the macro `pin` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `nums` does not live long enough
[INFO] [stdout]    --> src/lib.rs:516:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |           let mut nums = [1, 2, 3, 4, 5, 6, 7, 8].map(A);
[INFO] [stdout]     |               -------- binding `nums` declared here
[INFO] [stdout] 515 | /         DemoLendingAsyncIterator::new(
[INFO] [stdout] 516 | |             nums.iter_mut(),
[INFO] [stdout]     | |             ^^^^ borrowed value does not live long enough
[INFO] [stdout] 517 | |             4,
[INFO] [stdout] 518 | |             Duration::from_millis(0)..Duration::from_millis(50),
[INFO] [stdout] ...   |
[INFO] [stdout] 522 | |             val.0 *= 4;
[INFO] [stdout] 523 | |         })
[INFO] [stdout]     | |__________- argument requires that `nums` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 527 |       }
[INFO] [stdout]     |       - `nums` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lib.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     for<'a> P: FnMut(&I::Item<'a>) -> bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0502]: cannot borrow `nums` as immutable because it is also borrowed as mutable
[INFO] [stdout]    --> src/lib.rs:526:9
[INFO] [stdout]     |
[INFO] [stdout] 515 | /         DemoLendingAsyncIterator::new(
[INFO] [stdout] 516 | |             nums.iter_mut(),
[INFO] [stdout]     | |             ---- mutable borrow occurs here
[INFO] [stdout] 517 | |             4,
[INFO] [stdout] 518 | |             Duration::from_millis(0)..Duration::from_millis(50),
[INFO] [stdout] ...   |
[INFO] [stdout] 522 | |             val.0 *= 4;
[INFO] [stdout] 523 | |         })
[INFO] [stdout]     | |__________- argument requires that `nums` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 526 |           assert_eq!(nums, [4, 2, 12, 4, 20, 6, 28, 8].map(A));
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ immutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lib.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     for<'a> P: FnMut(&I::Item<'a>) -> bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `nums` does not live long enough
[INFO] [stdout]    --> src/lib.rs:533:13
[INFO] [stdout]     |
[INFO] [stdout] 531 |           let mut nums = [1, 2, 3, 4, 5, 6, 7, 8];
[INFO] [stdout]     |               -------- binding `nums` declared here
[INFO] [stdout] 532 |           let result = DemoLendingAsyncIterator::new(
[INFO] [stdout]     |  ______________________-
[INFO] [stdout] 533 | |             nums.iter_mut(),
[INFO] [stdout]     | |             ^^^^ borrowed value does not live long enough
[INFO] [stdout] 534 | |             4,
[INFO] [stdout] 535 | |             Duration::from_millis(0)..Duration::from_millis(50),
[INFO] [stdout] 536 | |         )
[INFO] [stdout] 537 | |         .all(|&mut &mut n| n < 10)
[INFO] [stdout]     | |__________________________________- argument requires that `nums` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 551 |       }
[INFO] [stdout]     |       - `nums` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lib.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  98 |         for<'a> F: FnMut(Self::Item<'a>) -> bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `nums` as mutable more than once at a time
[INFO] [stdout]    --> src/lib.rs:543:13
[INFO] [stdout]     |
[INFO] [stdout] 532 |           let result = DemoLendingAsyncIterator::new(
[INFO] [stdout]     |  ______________________-
[INFO] [stdout] 533 | |             nums.iter_mut(),
[INFO] [stdout]     | |             ---- first mutable borrow occurs here
[INFO] [stdout] 534 | |             4,
[INFO] [stdout] 535 | |             Duration::from_millis(0)..Duration::from_millis(50),
[INFO] [stdout] 536 | |         )
[INFO] [stdout] 537 | |         .all(|&mut &mut n| n < 10)
[INFO] [stdout]     | |__________________________________- argument requires that `nums` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 543 |               nums.iter_mut(),
[INFO] [stdout]     |               ^^^^ second mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lib.rs:98:9
[INFO] [stdout]     |
[INFO] [stdout]  98 |         for<'a> F: FnMut(Self::Item<'a>) -> bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0597]: `nums` does not live long enough
[INFO] [stdout]    --> src/lib.rs:557:13
[INFO] [stdout]     |
[INFO] [stdout] 555 |           let mut nums = [1, 2, 3, 4, 5, 6, 7, 8];
[INFO] [stdout]     |               -------- binding `nums` declared here
[INFO] [stdout] 556 |           let result = DemoLendingAsyncIterator::new(
[INFO] [stdout]     |  ______________________-
[INFO] [stdout] 557 | |             nums.iter_mut(),
[INFO] [stdout]     | |             ^^^^ borrowed value does not live long enough
[INFO] [stdout] 558 | |             4,
[INFO] [stdout] 559 | |             Duration::from_millis(0)..Duration::from_millis(50),
[INFO] [stdout] 560 | |         )
[INFO] [stdout] 561 | |         .any(|&mut &mut n| n > 7)
[INFO] [stdout]     | |_________________________________- argument requires that `nums` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 575 |       }
[INFO] [stdout]     |       - `nums` dropped here while still borrowed
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lib.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for<'a> F: FnMut(Self::Item<'a>) -> bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0499]: cannot borrow `nums` as mutable more than once at a time
[INFO] [stdout]    --> src/lib.rs:567:13
[INFO] [stdout]     |
[INFO] [stdout] 556 |           let result = DemoLendingAsyncIterator::new(
[INFO] [stdout]     |  ______________________-
[INFO] [stdout] 557 | |             nums.iter_mut(),
[INFO] [stdout]     | |             ---- first mutable borrow occurs here
[INFO] [stdout] 558 | |             4,
[INFO] [stdout] 559 | |             Duration::from_millis(0)..Duration::from_millis(50),
[INFO] [stdout] 560 | |         )
[INFO] [stdout] 561 | |         .any(|&mut &mut n| n > 7)
[INFO] [stdout]     | |_________________________________- argument requires that `nums` is borrowed for `'static`
[INFO] [stdout] ...
[INFO] [stdout] 567 |               nums.iter_mut(),
[INFO] [stdout]     |               ^^^^ second mutable borrow occurs here
[INFO] [stdout]     |
[INFO] [stdout] note: due to a current limitation of the type system, this implies a `'static` lifetime
[INFO] [stdout]    --> src/lib.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 118 |         for<'a> F: FnMut(Self::Item<'a>) -> bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0499, E0502, E0597, E0716.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lending-async-iterator` (lib test) due to 15 previous errors
[INFO] running `Command { std: "docker" "inspect" "8597d1d8fda757735b2f19eb4b63de6a616beab6b9e3b8c6407cf3480fc9e3aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8597d1d8fda757735b2f19eb4b63de6a616beab6b9e3b8c6407cf3480fc9e3aa", kill_on_drop: false }`
[INFO] [stdout] 8597d1d8fda757735b2f19eb4b63de6a616beab6b9e3b8c6407cf3480fc9e3aa
