use std::rc::Rc;

use rquickjs::{async_with, AsyncContext, AsyncRuntime};

pub async fn test() {
    let rt = AsyncRuntime::new().unwrap();
    let ctx = AsyncContext::full(&rt).await.unwrap();

    let fut = {
        let mut var = Rc::new(1);
        let var_c = var.clone();
        async_with!(ctx => |_ctx|{
            // you should not be able to move non send types into the closure.
            assert_eq!(*var_c,1);
        })
    };
    fut.await;
}

fn main() {}
