From 32b62b43589ac0fcd23687c634dd214a1acb7bdb Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 2 Oct 2018 23:55:07 -0700 Subject: [PATCH] Fix exporting structs with `BorrowMut` in scope Apparently the codegen wasn't precise enough such that a trait import could cause method resolution to go awry! Closes #919 --- crates/backend/src/codegen.rs | 2 +- tests/wasm/classes.rs | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/crates/backend/src/codegen.rs b/crates/backend/src/codegen.rs index 8057ec33..644210de 100644 --- a/crates/backend/src/codegen.rs +++ b/crates/backend/src/codegen.rs @@ -165,7 +165,7 @@ impl ToTokens for ast::Struct { let ptr = js as *mut WasmRefCell<#name>; assert_not_null(ptr); let js = Box::from_raw(ptr); - js.borrow_mut(); // make sure no one's borrowing + (*js).borrow_mut(); // make sure no one's borrowing js.into_inner() } } diff --git a/tests/wasm/classes.rs b/tests/wasm/classes.rs index b61fb30a..c0b562f7 100644 --- a/tests/wasm/classes.rs +++ b/tests/wasm/classes.rs @@ -1,3 +1,6 @@ +#[allow(unused_imports)] // test for #919 +use std::borrow::BorrowMut; + use wasm_bindgen::prelude::*; use wasm_bindgen_test::*;