use std::time::Duration;
use floop::floop;
use smol::{Timer, block_on};
struct NotCopy(i32);
#[test]
fn vars_from_before() {
let mut counter = 0;
let future = floop! {
unbiased
before => let new_value = NotCopy(counter + 1),
_ in Timer::after(Duration::from_millis(20)) => {
#[expect(clippy::redundant_locals)]
let new_value = new_value;
counter = new_value.0;
if counter == 9 {
break;
}
}
_ in Timer::after(Duration::from_millis(17)) => {
#[expect(clippy::redundant_locals)]
let new_value = new_value;
counter = new_value.0;
if counter == 10 {
break;
}
}
};
block_on(future);
assert_eq!(counter, 10)
}