contrib/firefox/fix-for-cbindgen-0.27.patch

95 lines
4.1 KiB
Diff

# HG changeset patch
# User Emilio Cobos Álvarez <emilio@crisal.io>
# Date 1723389149 0
# Node ID 98cd34c7ff5740b62e6c0c432799cd37fe017005
# Parent 0d743db7da62389442a78d216091b0917ff33589
Bug 1912663 - Fix some build issues with cbindgen 0.27. r=firefox-style-system-reviewers,zrhoffman
It updates serde and syn and they are more strict. In particular, syn 2
doesn't parse the rust 2015 syntax where try is not a keyword, and serde
rejects duplicate keys.
Differential Revision: https://phabricator.services.mozilla.com/D219025
diff --git a/servo/components/style_traits/values.rs b/servo/components/style_traits/values.rs
--- a/servo/components/style_traits/values.rs
+++ b/servo/components/style_traits/values.rs
@@ -384,21 +384,21 @@ impl Separator for Space {
fn parse<'i, 't, F, T, E>(
input: &mut Parser<'i, 't>,
mut parse_one: F,
) -> Result<Vec<T>, ParseError<'i, E>>
where
F: for<'tt> FnMut(&mut Parser<'i, 'tt>) -> Result<T, ParseError<'i, E>>,
{
- input.skip_whitespace(); // Unnecessary for correctness, but may help try() rewind less.
+ input.skip_whitespace(); // Unnecessary for correctness, but may help try_parse() rewind less.
let mut results = vec![parse_one(input)?];
loop {
- input.skip_whitespace(); // Unnecessary for correctness, but may help try() rewind less.
- if let Ok(item) = input.try(&mut parse_one) {
+ input.skip_whitespace(); // Unnecessary for correctness, but may help try_parse() rewind less.
+ if let Ok(item) = input.try_parse(&mut parse_one) {
results.push(item);
} else {
return Ok(results);
}
}
}
}
@@ -409,24 +409,24 @@ impl Separator for CommaWithSpace {
fn parse<'i, 't, F, T, E>(
input: &mut Parser<'i, 't>,
mut parse_one: F,
) -> Result<Vec<T>, ParseError<'i, E>>
where
F: for<'tt> FnMut(&mut Parser<'i, 'tt>) -> Result<T, ParseError<'i, E>>,
{
- input.skip_whitespace(); // Unnecessary for correctness, but may help try() rewind less.
+ input.skip_whitespace(); // Unnecessary for correctness, but may help try_parse() rewind less.
let mut results = vec![parse_one(input)?];
loop {
- input.skip_whitespace(); // Unnecessary for correctness, but may help try() rewind less.
+ input.skip_whitespace(); // Unnecessary for correctness, but may help try_parse() rewind less.
let comma_location = input.current_source_location();
- let comma = input.try(|i| i.expect_comma()).is_ok();
- input.skip_whitespace(); // Unnecessary for correctness, but may help try() rewind less.
- if let Ok(item) = input.try(&mut parse_one) {
+ let comma = input.try_parse(|i| i.expect_comma()).is_ok();
+ input.skip_whitespace(); // Unnecessary for correctness, but may help try_parse() rewind less.
+ if let Ok(item) = input.try_parse(&mut parse_one) {
results.push(item);
} else if comma {
return Err(comma_location.new_unexpected_token_error(Token::Comma));
} else {
break;
}
}
Ok(results)
diff --git a/servo/ports/geckolib/cbindgen.toml b/servo/ports/geckolib/cbindgen.toml
--- a/servo/ports/geckolib/cbindgen.toml
+++ b/servo/ports/geckolib/cbindgen.toml
@@ -357,17 +357,16 @@ renaming_overrides_prefixing = true
"gfxFontFeatureValueSet" = "gfxFontFeatureValueSet"
"GeckoFontMetrics" = "GeckoFontMetrics"
"SeenPtrs" = "SeenPtrs"
"gfxFontVariation" = "gfxFontVariation"
"URLExtraData" = "URLExtraData"
"Keyframe" = "Keyframe"
"nsChangeHint" = "nsChangeHint"
"ServoElementSnapshotTable" = "ServoElementSnapshotTable"
-"Keyframe" = "Keyframe"
"ComputedKeyframeValues" = "ComputedKeyframeValues"
"OriginFlags" = "OriginFlags"
"ServoTraversalFlags" = "ServoTraversalFlags"
"ServoStyleSetSizes" = "ServoStyleSetSizes"
"BeforeFlag" = "StyleEasingBeforeFlag"
"FontPaletteValueSet" = "gfx::FontPaletteValueSet"
"PaletteValues" = "gfx::FontPaletteValueSet::PaletteValues"
"ThinVec" = "CopyableTArray"