mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-04-13 23:56:06 +00:00
Workaround an upstream nom
bug
This commit works around Geal/nom#843 where the API of the `nom` crate changes based on feature selection, meaning we need to be compatible even if another crate in the crate graph enables a feature. Ideally this'd be fixed in upstream `nom`, and it looks like it will in the next major version! For now a local catch-all directive should help out.
This commit is contained in:
parent
90c3196b7b
commit
5192b95bf3
@ -68,10 +68,17 @@ fn parse(webidl_source: &str, allowed_types: Option<&[&str]>) -> Result<Program>
|
|||||||
.context(ErrorKind::ParsingWebIDLSource)
|
.context(ErrorKind::ParsingWebIDLSource)
|
||||||
.into(),
|
.into(),
|
||||||
weedle::Err::Error(cx) | weedle::Err::Failure(cx) => {
|
weedle::Err::Error(cx) | weedle::Err::Failure(cx) => {
|
||||||
|
// Note that #[allow] here is a workaround for Geal/nom#843
|
||||||
|
// because the `Context` type here comes from `nom` and if
|
||||||
|
// something else in our crate graph enables the
|
||||||
|
// `verbose-errors` feature then we need to still compiled
|
||||||
|
// against the changed enum definition.
|
||||||
|
#[allow(unreachable_patterns)]
|
||||||
let remaining = match cx {
|
let remaining = match cx {
|
||||||
weedle::Context::Code(remaining, _) => remaining,
|
weedle::Context::Code(remaining, _) => remaining.len(),
|
||||||
|
_ => 0,
|
||||||
};
|
};
|
||||||
let pos = webidl_source.len() - remaining.len();
|
let pos = webidl_source.len() - remaining;
|
||||||
format_err!("failed to parse WebIDL")
|
format_err!("failed to parse WebIDL")
|
||||||
.context(ErrorKind::ParsingWebIDLSourcePos(pos))
|
.context(ErrorKind::ParsingWebIDLSourcePos(pos))
|
||||||
.into()
|
.into()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user