Skip to content

Commit

Permalink
Update syn related dependencies to 1.0 and bump version
Browse files Browse the repository at this point in the history
  • Loading branch information
Eijebong committed Aug 18, 2019
1 parent 9197af7 commit 09117c0
Show file tree
Hide file tree
Showing 11 changed files with 122 additions and 154 deletions.
46 changes: 23 additions & 23 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "cbindgen"
version = "0.9.0"
version = "0.9.1"
authors = ["Jeff Muizelaar <jmuizelaar@mozilla.com>",
"Kartikaya Gupta <kats@mozilla.com>",
"Ryan Hunt <rhunt@eqrion.net>"]
Expand All @@ -20,11 +20,11 @@ serde = { version = "1.0", default-features = false, features = ["derive"]}
serde_json = "1.0"
tempfile = "3.0"
toml = "0.5"
proc-macro2 = "0.4"
quote = "0.6"
proc-macro2 = "1"
quote = "1"

[dependencies.syn]
version = "0.15.0"
version = "1"
default-features = false
features = ["clone-impls", "extra-traits", "full", "parsing", "printing"]

Expand Down
38 changes: 20 additions & 18 deletions src/bindgen/ir/cfg.rs
Expand Up @@ -107,14 +107,12 @@ impl Cfg {
let mut configs = Vec::new();

for attr in attrs {
if let Some(syn::Meta::List(syn::MetaList { ident, nested, .. })) =
attr.interpret_meta()
{
if ident != "cfg" || nested.len() != 1 {
if let Ok(syn::Meta::List(syn::MetaList { path, nested, .. })) = attr.parse_meta() {
if !path.is_ident("cfg") || nested.len() != 1 {
continue;
}

if let Some(config) = Cfg::load_single(nested.first().unwrap().value()) {
if let Some(config) = Cfg::load_single(nested.first().unwrap()) {
configs.push(config);
}
}
Expand All @@ -136,11 +134,11 @@ impl Cfg {
.expect("error parsing dependency's target metadata")
})
.and_then(|target| {
if let syn::Meta::List(syn::MetaList { ident, nested, .. }) = target {
if ident != "cfg" || nested.len() != 1 {
if let syn::Meta::List(syn::MetaList { path, nested, .. }) = target {
if !path.is_ident("cfg") || nested.len() != 1 {
return None;
}
Cfg::load_single(nested.first().unwrap().value())
Cfg::load_single(nested.first().unwrap())
} else {
None
}
Expand All @@ -149,35 +147,39 @@ impl Cfg {

fn load_single(item: &syn::NestedMeta) -> Option<Cfg> {
match *item {
syn::NestedMeta::Meta(syn::Meta::Word(ref ident)) => {
Some(Cfg::Boolean(format!("{}", ident)))
}
syn::NestedMeta::Meta(syn::Meta::Path(ref path)) => Some(Cfg::Boolean(format!(
"{}",
path.segments.first().unwrap().ident
))),
syn::NestedMeta::Meta(syn::Meta::NameValue(syn::MetaNameValue {
ref ident,
ref path,
ref lit,
..
})) => match *lit {
syn::Lit::Str(ref value) => Some(Cfg::Named(format!("{}", ident), value.value())),
})) => match lit {
&syn::Lit::Str(ref value) => Some(Cfg::Named(
format!("{}", path.segments.first().unwrap().ident),
value.value(),
)),
_ => None,
},
syn::NestedMeta::Meta(syn::Meta::List(syn::MetaList {
ref ident,
ref path,
ref nested,
..
})) => {
if ident == "any" {
if path.is_ident("any") {
if let Some(configs) = Cfg::load_list(nested.iter()) {
Some(Cfg::Any(configs))
} else {
None
}
} else if ident == "all" {
} else if path.is_ident("all") {
if let Some(configs) = Cfg::load_list(nested.iter()) {
Some(Cfg::All(configs))
} else {
None
}
} else if ident == "not" {
} else if path.is_ident("not") {
if nested.len() != 1 {
return None;
}
Expand Down
24 changes: 2 additions & 22 deletions src/bindgen/ir/constant.rs
Expand Up @@ -5,7 +5,6 @@
use std::borrow::Cow;
use std::fmt;
use std::io::Write;
use std::mem;

use syn;

Expand Down Expand Up @@ -159,30 +158,11 @@ impl Literal {
syn::Expr::Lit(syn::ExprLit {
lit: syn::Lit::Int(ref value),
..
}) => match value.suffix() {
syn::IntSuffix::Usize
| syn::IntSuffix::U8
| syn::IntSuffix::U16
| syn::IntSuffix::U32
| syn::IntSuffix::U64
| syn::IntSuffix::U128
| syn::IntSuffix::None => Ok(Literal::Expr(format!("{}", value.value()))),
syn::IntSuffix::Isize
| syn::IntSuffix::I8
| syn::IntSuffix::I16
| syn::IntSuffix::I32
| syn::IntSuffix::I64
| syn::IntSuffix::I128 => unsafe {
Ok(Literal::Expr(format!(
"{}",
mem::transmute::<u64, i64>(value.value())
)))
},
},
}) => Ok(Literal::Expr(value.base10_digits().to_string())),
syn::Expr::Lit(syn::ExprLit {
lit: syn::Lit::Float(ref value),
..
}) => Ok(Literal::Expr(format!("{}", value.value()))),
}) => Ok(Literal::Expr(value.base10_digits().to_string())),
syn::Expr::Lit(syn::ExprLit {
lit: syn::Lit::Bool(ref value),
..
Expand Down
4 changes: 1 addition & 3 deletions src/bindgen/ir/enumeration.rs
Expand Up @@ -32,9 +32,7 @@ pub struct EnumVariant {
fn value_from_expr(val: &syn::Expr) -> Option<i64> {
match *val {
syn::Expr::Lit(ref lit) => match lit.lit {
syn::Lit::Int(ref lit) if lit.value() <= ::std::i64::MAX as u64 => {
Some(lit.value() as i64)
}
syn::Lit::Int(ref lit) => lit.base10_parse::<i64>().ok(),
_ => None,
},
syn::Expr::Unary(ref unary) => {
Expand Down
29 changes: 15 additions & 14 deletions src/bindgen/ir/function.rs
Expand Up @@ -34,13 +34,13 @@ pub struct Function {
impl Function {
pub fn load(
path: Path,
decl: &syn::FnDecl,
sig: &syn::Signature,
extern_decl: bool,
attrs: &[syn::Attribute],
mod_cfg: Option<&Cfg>,
) -> Result<Function, String> {
let args = decl.inputs.iter().try_skip_map(|x| x.as_ident_and_type())?;
let ret = match decl.output {
let args = sig.inputs.iter().try_skip_map(|x| x.as_ident_and_type())?;
let ret = match sig.output {
syn::ReturnType::Default => Type::Primitive(PrimitiveType::Void),
syn::ReturnType::Type(_, ref ty) => {
if let Some(x) = Type::load(ty)? {
Expand Down Expand Up @@ -226,18 +226,19 @@ pub trait SynFnArgHelpers {

impl SynFnArgHelpers for syn::FnArg {
fn as_ident_and_type(&self) -> Result<Option<(String, Type)>, String> {
match *self {
syn::FnArg::Captured(syn::ArgCaptured {
pat: syn::Pat::Ident(syn::PatIdent { ref ident, .. }),
ref ty,
..
}) => {
if let Some(x) = Type::load(ty)? {
Ok(Some((ident.to_string(), x)))
} else {
Ok(None)
match self {
&syn::FnArg::Typed(syn::PatType {
ref pat, ref ty, ..
}) => match **pat {
syn::Pat::Ident(syn::PatIdent { ref ident, .. }) => {
if let Some(x) = Type::load(ty)? {
Ok(Some((ident.to_string(), x)))
} else {
Ok(None)
}
}
}
_ => Err("Parameter has an unsupported type.".to_owned()),
},
_ => Err("Parameter has an unsupported type.".to_owned()),
}
}
Expand Down
3 changes: 1 addition & 2 deletions src/bindgen/ir/generic_path.rs
Expand Up @@ -120,8 +120,7 @@ impl GenericPath {
"{:?} doesn't have any segments",
path
);
let last_segment_token = path.segments.last().unwrap();
let last_segment = last_segment_token.value();
let last_segment = path.segments.last().unwrap();
let name = last_segment.ident.to_string();

let path = Path::new(name);
Expand Down
10 changes: 6 additions & 4 deletions src/bindgen/ir/repr.rs
Expand Up @@ -55,18 +55,20 @@ impl Repr {
let ids = attrs
.iter()
.filter_map(|attr| {
if let syn::Meta::List(syn::MetaList { ident, nested, .. }) =
attr.interpret_meta()?
if let syn::Meta::List(syn::MetaList { path, nested, .. }) =
attr.parse_meta().ok()?
{
if ident == "repr" {
if path.is_ident("repr") {
return Some(nested.into_iter().collect::<Vec<_>>());
}
}
None
})
.flat_map(|nested| nested)
.filter_map(|meta| match meta {
syn::NestedMeta::Meta(syn::Meta::Word(ident)) => Some(ident.to_string()),
syn::NestedMeta::Meta(syn::Meta::Path(path)) => {
Some(path.segments.first().unwrap().ident.to_string())
}
_ => None,
});

Expand Down
9 changes: 5 additions & 4 deletions src/bindgen/ir/ty.rs
Expand Up @@ -295,7 +295,7 @@ impl Type {
None => return Err("Cannot have an array of zero sized types.".to_owned()),
};

let len = ArrayLength::Value(format!("{}", len.value()));
let len = ArrayLength::Value(len.base10_digits().to_string());
// panic!("panic -> value: {:?}", len);
Type::Array(Box::new(converted), len)
}
Expand All @@ -305,15 +305,16 @@ impl Type {
Type::load(&x.ty).map(|opt_ty| {
opt_ty.map(|ty| {
(
x.name.as_ref().map(|name| match name.0 {
syn::BareFnArgName::Named(ref ident) => ident.to_string(),
syn::BareFnArgName::Wild(_) => {
x.name.as_ref().map(|(ref ident, _)| {
if ident == "_" {
wildcard_counter += 1;
if wildcard_counter == 1 {
"_".to_owned()
} else {
format!("_{}", wildcard_counter - 1)
}
} else {
ident.to_string()
}
}),
ty,
Expand Down

0 comments on commit 09117c0

Please sign in to comment.