fn test<T: Unpin>(t: T) {
}
fn main() {
let a = 1;
let b = async {
1
};
test(b) // the trait `Unpin` is not implemented for `[async block]`
}
Future is not Unpin, so why does pinning it (pin_mut, Box::pin, etc., which wrap it with Pin<..>) make it implement Unpin?