Bump syn from 1.0.109 to 2.0.5 (#31263)
Update users based on the new syn ABI. Short API update summary can be found here: https://github.com/dtolnay/syn/releases/tag/2.0.0
This commit is contained in:
parent
37576c8949
commit
cc6c454076
|
@ -5751,7 +5751,7 @@ dependencies = [
|
||||||
"proc-macro2 1.0.53",
|
"proc-macro2 1.0.53",
|
||||||
"quote 1.0.26",
|
"quote 1.0.26",
|
||||||
"rustc_version 0.4.0",
|
"rustc_version 0.4.0",
|
||||||
"syn 1.0.109",
|
"syn 2.0.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -6860,7 +6860,7 @@ dependencies = [
|
||||||
"proc-macro2 1.0.53",
|
"proc-macro2 1.0.53",
|
||||||
"quote 1.0.26",
|
"quote 1.0.26",
|
||||||
"rustversion",
|
"rustversion",
|
||||||
"syn 1.0.109",
|
"syn 2.0.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -370,7 +370,7 @@ strum = "0.24"
|
||||||
strum_macros = "0.24"
|
strum_macros = "0.24"
|
||||||
subtle = "2.4.1"
|
subtle = "2.4.1"
|
||||||
symlink = "0.1.0"
|
symlink = "0.1.0"
|
||||||
syn = "1.0.109"
|
syn = "2.0"
|
||||||
sys-info = "0.9.1"
|
sys-info = "0.9.1"
|
||||||
sysctl = "0.4.4"
|
sysctl = "0.4.4"
|
||||||
systemstat = "0.2.3"
|
systemstat = "0.2.3"
|
||||||
|
|
|
@ -28,41 +28,54 @@ pub fn derive_abi_enum_visitor(_item: TokenStream) -> TokenStream {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||||
use proc_macro2::{Span, TokenStream as TokenStream2, TokenTree::Group};
|
use proc_macro2::{Span, TokenStream as TokenStream2, TokenTree};
|
||||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||||
use quote::quote;
|
use quote::{quote, ToTokens};
|
||||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||||
use syn::{
|
use syn::{
|
||||||
parse_macro_input, Attribute, AttributeArgs, Error, Fields, Ident, Item, ItemEnum, ItemStruct,
|
parse_macro_input, Attribute, Error, Fields, Ident, Item, ItemEnum, ItemStruct, ItemType,
|
||||||
ItemType, Lit, Meta, NestedMeta, Variant,
|
LitStr, Variant,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||||
fn filter_serde_attrs(attrs: &[Attribute]) -> bool {
|
fn filter_serde_attrs(attrs: &[Attribute]) -> bool {
|
||||||
let mut skip = false;
|
fn contains_skip(tokens: TokenStream2) -> bool {
|
||||||
|
for token in tokens.into_iter() {
|
||||||
for attr in attrs {
|
match token {
|
||||||
let ss = &attr.path.segments.first().unwrap().ident.to_string();
|
TokenTree::Group(group) => {
|
||||||
if ss.starts_with("serde") {
|
if contains_skip(group.stream()) {
|
||||||
for token in attr.tokens.clone() {
|
return true;
|
||||||
if let Group(token) = token {
|
|
||||||
for ident in token.stream() {
|
|
||||||
if ident.to_string() == "skip" {
|
|
||||||
skip = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
TokenTree::Ident(ident) => {
|
||||||
|
if ident == "skip" {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
TokenTree::Punct(_) | TokenTree::Literal(_) => (),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
for attr in attrs {
|
||||||
|
if !attr.path().is_ident("serde") {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if contains_skip(attr.to_token_stream()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
skip
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||||
fn filter_allow_attrs(attrs: &mut Vec<Attribute>) {
|
fn filter_allow_attrs(attrs: &mut Vec<Attribute>) {
|
||||||
attrs.retain(|attr| {
|
attrs.retain(|attr| {
|
||||||
let ss = &attr.path.segments.first().unwrap().ident.to_string();
|
let ss = &attr.path().segments.first().unwrap().ident.to_string();
|
||||||
ss.starts_with("allow")
|
ss.starts_with("allow")
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -395,19 +408,25 @@ fn frozen_abi_enum_type(input: ItemEnum, expected_digest: &str) -> TokenStream {
|
||||||
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
#[cfg(RUSTC_WITH_SPECIALIZATION)]
|
||||||
#[proc_macro_attribute]
|
#[proc_macro_attribute]
|
||||||
pub fn frozen_abi(attrs: TokenStream, item: TokenStream) -> TokenStream {
|
pub fn frozen_abi(attrs: TokenStream, item: TokenStream) -> TokenStream {
|
||||||
let args = parse_macro_input!(attrs as AttributeArgs);
|
|
||||||
let mut expected_digest: Option<String> = None;
|
let mut expected_digest: Option<String> = None;
|
||||||
for arg in args {
|
let attrs_parser = syn::meta::parser(|meta| {
|
||||||
match arg {
|
if meta.path.is_ident("digest") {
|
||||||
NestedMeta::Meta(Meta::NameValue(nv)) if nv.path.is_ident("digest") => {
|
expected_digest = Some(meta.value()?.parse::<LitStr>()?.value());
|
||||||
if let Lit::Str(lit) = nv.lit {
|
Ok(())
|
||||||
expected_digest = Some(lit.value());
|
} else {
|
||||||
}
|
Err(meta.error("unsupported \"frozen_abi\" property"))
|
||||||
}
|
|
||||||
_ => {}
|
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
let expected_digest = expected_digest.expect("the required \"digest\" = ... is missing.");
|
parse_macro_input!(attrs with attrs_parser);
|
||||||
|
|
||||||
|
let Some(expected_digest) = expected_digest else {
|
||||||
|
return Error::new_spanned(
|
||||||
|
TokenStream2::from(item),
|
||||||
|
"the required \"digest\" = ... attribute is missing.",
|
||||||
|
)
|
||||||
|
.to_compile_error()
|
||||||
|
.into()
|
||||||
|
};
|
||||||
|
|
||||||
let item = parse_macro_input!(item as Item);
|
let item = parse_macro_input!(item as Item);
|
||||||
match item {
|
match item {
|
||||||
|
|
|
@ -36,8 +36,8 @@ pub enum DigestError {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SerdeError for DigestError {
|
impl SerdeError for DigestError {
|
||||||
fn custom<T: std::fmt::Display>(_msg: T) -> DigestError {
|
fn custom<T: std::fmt::Display>(msg: T) -> DigestError {
|
||||||
unreachable!("This error should never be used");
|
panic!("Unexpected SerdeError: {msg}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4965,7 +4965,7 @@ dependencies = [
|
||||||
"proc-macro2 1.0.53",
|
"proc-macro2 1.0.53",
|
||||||
"quote 1.0.26",
|
"quote 1.0.26",
|
||||||
"rustc_version 0.4.0",
|
"rustc_version 0.4.0",
|
||||||
"syn 1.0.109",
|
"syn 2.0.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -6143,7 +6143,7 @@ dependencies = [
|
||||||
"proc-macro2 1.0.53",
|
"proc-macro2 1.0.53",
|
||||||
"quote 1.0.26",
|
"quote 1.0.26",
|
||||||
"rustversion",
|
"rustversion",
|
||||||
"syn 1.0.109",
|
"syn 2.0.5",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
|
@ -392,7 +392,7 @@ pub fn wasm_bindgen_stub(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
||||||
for field in fields.named.iter_mut() {
|
for field in fields.named.iter_mut() {
|
||||||
field.attrs.retain(|attr| {
|
field.attrs.retain(|attr| {
|
||||||
!attr
|
!attr
|
||||||
.path
|
.path()
|
||||||
.segments
|
.segments
|
||||||
.iter()
|
.iter()
|
||||||
.any(|segment| segment.ident == "wasm_bindgen")
|
.any(|segment| segment.ident == "wasm_bindgen")
|
||||||
|
|
Loading…
Reference in New Issue