Skip to content

Commit 25e51f6

Browse files
Eijebongemilio
authored andcommitted
Update syn related dependencies to 1.0
1 parent 1183964 commit 25e51f6

File tree

11 files changed

+120
-152
lines changed

11 files changed

+120
-152
lines changed

Cargo.lock

Lines changed: 22 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ serde = { version = "1.0", default-features = false, features = ["derive"]}
2020
serde_json = "1.0"
2121
tempfile = "3.0"
2222
toml = "0.5"
23-
proc-macro2 = "0.4"
24-
quote = "0.6"
23+
proc-macro2 = "1"
24+
quote = "1"
2525

2626
[dependencies.syn]
27-
version = "0.15.0"
27+
version = "1"
2828
default-features = false
2929
features = ["clone-impls", "extra-traits", "full", "parsing", "printing"]
3030

src/bindgen/ir/cfg.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,12 @@ impl Cfg {
107107
let mut configs = Vec::new();
108108

109109
for attr in attrs {
110-
if let Some(syn::Meta::List(syn::MetaList { ident, nested, .. })) =
111-
attr.interpret_meta()
112-
{
113-
if ident != "cfg" || nested.len() != 1 {
110+
if let Ok(syn::Meta::List(syn::MetaList { path, nested, .. })) = attr.parse_meta() {
111+
if !path.is_ident("cfg") || nested.len() != 1 {
114112
continue;
115113
}
116114

117-
if let Some(config) = Cfg::load_single(nested.first().unwrap().value()) {
115+
if let Some(config) = Cfg::load_single(nested.first().unwrap()) {
118116
configs.push(config);
119117
}
120118
}
@@ -136,11 +134,11 @@ impl Cfg {
136134
.expect("error parsing dependency's target metadata")
137135
})
138136
.and_then(|target| {
139-
if let syn::Meta::List(syn::MetaList { ident, nested, .. }) = target {
140-
if ident != "cfg" || nested.len() != 1 {
137+
if let syn::Meta::List(syn::MetaList { path, nested, .. }) = target {
138+
if !path.is_ident("cfg") || nested.len() != 1 {
141139
return None;
142140
}
143-
Cfg::load_single(nested.first().unwrap().value())
141+
Cfg::load_single(nested.first().unwrap())
144142
} else {
145143
None
146144
}
@@ -149,35 +147,39 @@ impl Cfg {
149147

150148
fn load_single(item: &syn::NestedMeta) -> Option<Cfg> {
151149
match *item {
152-
syn::NestedMeta::Meta(syn::Meta::Word(ref ident)) => {
153-
Some(Cfg::Boolean(format!("{}", ident)))
154-
}
150+
syn::NestedMeta::Meta(syn::Meta::Path(ref path)) => Some(Cfg::Boolean(format!(
151+
"{}",
152+
path.segments.first().unwrap().ident
153+
))),
155154
syn::NestedMeta::Meta(syn::Meta::NameValue(syn::MetaNameValue {
156-
ref ident,
155+
ref path,
157156
ref lit,
158157
..
159-
})) => match *lit {
160-
syn::Lit::Str(ref value) => Some(Cfg::Named(format!("{}", ident), value.value())),
158+
})) => match lit {
159+
&syn::Lit::Str(ref value) => Some(Cfg::Named(
160+
format!("{}", path.segments.first().unwrap().ident),
161+
value.value(),
162+
)),
161163
_ => None,
162164
},
163165
syn::NestedMeta::Meta(syn::Meta::List(syn::MetaList {
164-
ref ident,
166+
ref path,
165167
ref nested,
166168
..
167169
})) => {
168-
if ident == "any" {
170+
if path.is_ident("any") {
169171
if let Some(configs) = Cfg::load_list(nested.iter()) {
170172
Some(Cfg::Any(configs))
171173
} else {
172174
None
173175
}
174-
} else if ident == "all" {
176+
} else if path.is_ident("all") {
175177
if let Some(configs) = Cfg::load_list(nested.iter()) {
176178
Some(Cfg::All(configs))
177179
} else {
178180
None
179181
}
180-
} else if ident == "not" {
182+
} else if path.is_ident("not") {
181183
if nested.len() != 1 {
182184
return None;
183185
}

src/bindgen/ir/constant.rs

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
use std::borrow::Cow;
66
use std::fmt;
77
use std::io::Write;
8-
use std::mem;
98

109
use syn;
1110

@@ -159,30 +158,11 @@ impl Literal {
159158
syn::Expr::Lit(syn::ExprLit {
160159
lit: syn::Lit::Int(ref value),
161160
..
162-
}) => match value.suffix() {
163-
syn::IntSuffix::Usize
164-
| syn::IntSuffix::U8
165-
| syn::IntSuffix::U16
166-
| syn::IntSuffix::U32
167-
| syn::IntSuffix::U64
168-
| syn::IntSuffix::U128
169-
| syn::IntSuffix::None => Ok(Literal::Expr(format!("{}", value.value()))),
170-
syn::IntSuffix::Isize
171-
| syn::IntSuffix::I8
172-
| syn::IntSuffix::I16
173-
| syn::IntSuffix::I32
174-
| syn::IntSuffix::I64
175-
| syn::IntSuffix::I128 => unsafe {
176-
Ok(Literal::Expr(format!(
177-
"{}",
178-
mem::transmute::<u64, i64>(value.value())
179-
)))
180-
},
181-
},
161+
}) => Ok(Literal::Expr(value.base10_digits().to_string())),
182162
syn::Expr::Lit(syn::ExprLit {
183163
lit: syn::Lit::Float(ref value),
184164
..
185-
}) => Ok(Literal::Expr(format!("{}", value.value()))),
165+
}) => Ok(Literal::Expr(value.base10_digits().to_string())),
186166
syn::Expr::Lit(syn::ExprLit {
187167
lit: syn::Lit::Bool(ref value),
188168
..

src/bindgen/ir/enumeration.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ pub struct EnumVariant {
3232
fn value_from_expr(val: &syn::Expr) -> Option<i64> {
3333
match *val {
3434
syn::Expr::Lit(ref lit) => match lit.lit {
35-
syn::Lit::Int(ref lit) if lit.value() <= ::std::i64::MAX as u64 => {
36-
Some(lit.value() as i64)
37-
}
35+
syn::Lit::Int(ref lit) => lit.base10_parse::<i64>().ok(),
3836
_ => None,
3937
},
4038
syn::Expr::Unary(ref unary) => {

src/bindgen/ir/function.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@ pub struct Function {
3434
impl Function {
3535
pub fn load(
3636
path: Path,
37-
decl: &syn::FnDecl,
37+
sig: &syn::Signature,
3838
extern_decl: bool,
3939
attrs: &[syn::Attribute],
4040
mod_cfg: Option<&Cfg>,
4141
) -> Result<Function, String> {
42-
let args = decl.inputs.iter().try_skip_map(|x| x.as_ident_and_type())?;
43-
let ret = match decl.output {
42+
let args = sig.inputs.iter().try_skip_map(|x| x.as_ident_and_type())?;
43+
let ret = match sig.output {
4444
syn::ReturnType::Default => Type::Primitive(PrimitiveType::Void),
4545
syn::ReturnType::Type(_, ref ty) => {
4646
if let Some(x) = Type::load(ty)? {
@@ -226,18 +226,19 @@ pub trait SynFnArgHelpers {
226226

227227
impl SynFnArgHelpers for syn::FnArg {
228228
fn as_ident_and_type(&self) -> Result<Option<(String, Type)>, String> {
229-
match *self {
230-
syn::FnArg::Captured(syn::ArgCaptured {
231-
pat: syn::Pat::Ident(syn::PatIdent { ref ident, .. }),
232-
ref ty,
233-
..
234-
}) => {
235-
if let Some(x) = Type::load(ty)? {
236-
Ok(Some((ident.to_string(), x)))
237-
} else {
238-
Ok(None)
229+
match self {
230+
&syn::FnArg::Typed(syn::PatType {
231+
ref pat, ref ty, ..
232+
}) => match **pat {
233+
syn::Pat::Ident(syn::PatIdent { ref ident, .. }) => {
234+
if let Some(x) = Type::load(ty)? {
235+
Ok(Some((ident.to_string(), x)))
236+
} else {
237+
Ok(None)
238+
}
239239
}
240-
}
240+
_ => Err("Parameter has an unsupported type.".to_owned()),
241+
},
241242
_ => Err("Parameter has an unsupported type.".to_owned()),
242243
}
243244
}

src/bindgen/ir/generic_path.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,7 @@ impl GenericPath {
120120
"{:?} doesn't have any segments",
121121
path
122122
);
123-
let last_segment_token = path.segments.last().unwrap();
124-
let last_segment = last_segment_token.value();
123+
let last_segment = path.segments.last().unwrap();
125124
let name = last_segment.ident.to_string();
126125

127126
let path = Path::new(name);

src/bindgen/ir/repr.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,20 @@ impl Repr {
5555
let ids = attrs
5656
.iter()
5757
.filter_map(|attr| {
58-
if let syn::Meta::List(syn::MetaList { ident, nested, .. }) =
59-
attr.interpret_meta()?
58+
if let syn::Meta::List(syn::MetaList { path, nested, .. }) =
59+
attr.parse_meta().ok()?
6060
{
61-
if ident == "repr" {
61+
if path.is_ident("repr") {
6262
return Some(nested.into_iter().collect::<Vec<_>>());
6363
}
6464
}
6565
None
6666
})
6767
.flat_map(|nested| nested)
6868
.filter_map(|meta| match meta {
69-
syn::NestedMeta::Meta(syn::Meta::Word(ident)) => Some(ident.to_string()),
69+
syn::NestedMeta::Meta(syn::Meta::Path(path)) => {
70+
Some(path.segments.first().unwrap().ident.to_string())
71+
}
7072
_ => None,
7173
});
7274

src/bindgen/ir/ty.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ impl Type {
295295
None => return Err("Cannot have an array of zero sized types.".to_owned()),
296296
};
297297

298-
let len = ArrayLength::Value(format!("{}", len.value()));
298+
let len = ArrayLength::Value(len.base10_digits().to_string());
299299
// panic!("panic -> value: {:?}", len);
300300
Type::Array(Box::new(converted), len)
301301
}
@@ -305,15 +305,16 @@ impl Type {
305305
Type::load(&x.ty).map(|opt_ty| {
306306
opt_ty.map(|ty| {
307307
(
308-
x.name.as_ref().map(|name| match name.0 {
309-
syn::BareFnArgName::Named(ref ident) => ident.to_string(),
310-
syn::BareFnArgName::Wild(_) => {
308+
x.name.as_ref().map(|(ref ident, _)| {
309+
if ident == "_" {
311310
wildcard_counter += 1;
312311
if wildcard_counter == 1 {
313312
"_".to_owned()
314313
} else {
315314
format!("_{}", wildcard_counter - 1)
316315
}
316+
} else {
317+
ident.to_string()
317318
}
318319
}),
319320
ty,

0 commit comments

Comments
 (0)