Skip to content

Building for wasm32-unknown-emscripten fails unless wasm-bindgen version is pinned #5

Description

@HeartofPhos

cargo +nightly build --target wasm32-unknown-emscripten fails with

error[E0277]: the type `UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferable across a catch_unwind boundary
   --> src\queue.rs:79:30
    |
 79 |                 Closure::new(move |_| state.run_all())
    |                 ------------ ^^^^^^^^^^^^^^^^^^^^^^^^ `UnsafeCell<isize>` may contain interior mutability and a reference may not be safely transferable across a catch_unwind boundary
    |                 |
    |                 required by a bound introduced by this call
    |
    = help: within `QueueState`, the trait `RefUnwindSafe` is not implemented for `UnsafeCell<isize>`
note: required because it appears within the type `Cell<isize>`
   --> C:\Users\HeartofPhos\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\cell.rs:315:12
    |
315 | pub struct Cell<T: ?Sized> {
    |            ^^^^
note: required because it appears within the type `RefCell<VecDeque<singlethread::Job>>`
   --> C:\Users\HeartofPhos\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\cell.rs:852:12
    |
852 | pub struct RefCell<T: ?Sized> {
    |            ^^^^^^^
note: required because it appears within the type `QueueState`
   --> src\queue.rs:24:8
    |
 24 | struct QueueState {
    |        ^^^^^^^^^^
    = note: required for `Rc<QueueState>` to implement `UnwindSafe`
note: required because `state` is used within this closure
   --> src\queue.rs:79:39
    |
 79 |                 Closure::new(move |_| state.run_all())
    |                                       ^^^^^
    = note: required for `{closure@src\queue.rs:79:30: 79:38}` to implement `wasm_bindgen::__rt::marker::MaybeUnwindSafe`
note: required by a bound in `ScopedClosure::<'static, T>::new`
   --> C:\Users\HeartofPhos\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\wasm-bindgen-0.2.114\src\closure.rs:244:33
    |
242 |     pub fn new<F>(t: F) -> Self
    |            --- required by a bound in this associated function
243 |     where
244 |         F: IntoWasmClosure<T> + MaybeUnwindSafe + 'static,
    |                                 ^^^^^^^^^^^^^^^ required by this bound in `ScopedClosure::<'static, T>::new`

For more information about this error, try `rustc --explain E0277`.
error: could not compile `web-task` (lib) due to 1 previous error

updating Cargo.toml with wasm-bindgen = { version = "=0.2.108", default-features = false } successfully compiles

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions