mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-12-15 04:23:12 +03:00
Merge pull request #1545 from infinity0/master
Work around rust-lang/rust#58516
This commit is contained in:
commit
9b04fe9e45
@ -60,6 +60,7 @@ macro_rules! methods {
|
||||
($(($name:ident $(($other:tt))*, $variant:ident($($contents:tt)*)),)*) => {
|
||||
$(methods!(@method $name, $variant($($contents)*));)*
|
||||
|
||||
#[cfg(feature = "strict-macro")]
|
||||
fn check_used(self) -> Result<(), Diagnostic> {
|
||||
// Account for the fact this method was called
|
||||
ATTRS.with(|state| state.checks.set(state.checks.get() + 1));
|
||||
@ -69,9 +70,12 @@ macro_rules! methods {
|
||||
if used.get() {
|
||||
continue
|
||||
}
|
||||
if !cfg!(feature = "strict-macro") {
|
||||
// The check below causes rustc to crash on powerpc64 platforms
|
||||
// with an LLVM error. To avoid this, we instead use #[cfg()]
|
||||
// and duplicate the function below. See #58516 for details.
|
||||
/*if !cfg!(feature = "strict-macro") {
|
||||
continue
|
||||
}
|
||||
}*/
|
||||
let span = match attr {
|
||||
$(BindgenAttr::$variant(span, ..) => span,)*
|
||||
};
|
||||
@ -79,6 +83,19 @@ macro_rules! methods {
|
||||
}
|
||||
Diagnostic::from_vec(errors)
|
||||
}
|
||||
|
||||
#[cfg(not(feature = "strict-macro"))]
|
||||
fn check_used(self) -> Result<(), Diagnostic> {
|
||||
// Account for the fact this method was called
|
||||
ATTRS.with(|state| state.checks.set(state.checks.get() + 1));
|
||||
let mut errors = Vec::new();
|
||||
for (used, attr) in self.attrs.iter() {
|
||||
if used.get() {
|
||||
continue
|
||||
}
|
||||
}
|
||||
Diagnostic::from_vec(errors)
|
||||
}
|
||||
};
|
||||
|
||||
(@method $name:ident, $variant:ident(Span, String, Span)) => {
|
||||
|
Loading…
Reference in New Issue
Block a user