Rename non-Ident fields previously named ident
It will be clearer to avoid using 'ident' to refer to anything but Ident.
diff --git a/gen/src/namespace.rs b/gen/src/namespace.rs
index 7343875..b79c38f 100644
--- a/gen/src/namespace.rs
+++ b/gen/src/namespace.rs
@@ -4,10 +4,10 @@
impl Api {
pub fn namespace(&self) -> &Namespace {
match self {
- Api::CxxFunction(efn) | Api::RustFunction(efn) => &efn.ident.namespace,
- Api::CxxType(ety) | Api::RustType(ety) => &ety.ident.namespace,
- Api::Enum(enm) => &enm.ident.namespace,
- Api::Struct(strct) => &strct.ident.namespace,
+ Api::CxxFunction(efn) | Api::RustFunction(efn) => &efn.name.namespace,
+ Api::CxxType(ety) | Api::RustType(ety) => &ety.name.namespace,
+ Api::Enum(enm) => &enm.name.namespace,
+ Api::Struct(strct) => &strct.name.namespace,
Api::Impl(_) | Api::Include(_) | Api::TypeAlias(_) => Default::default(),
}
}
diff --git a/gen/src/nested.rs b/gen/src/nested.rs
index 0a8816c..22b0c9f 100644
--- a/gen/src/nested.rs
+++ b/gen/src/nested.rs
@@ -117,7 +117,7 @@
fn assert_ident(api: &Api, expected: &str) {
if let Api::CxxType(cxx_type) = api {
- assert_eq!(cxx_type.ident.cxx.ident, expected);
+ assert_eq!(cxx_type.name.cxx, expected);
} else {
unreachable!()
}
@@ -128,7 +128,7 @@
Api::CxxType(ExternType {
doc: Doc::new(),
type_token: Token),
- ident: Pair::new(ns, Ident::new(ident, Span::call_site())),
+ name: Pair::new(ns, Ident::new(ident, Span::call_site())),
semi_token: Token),
trusted: false,
})
diff --git a/gen/src/write.rs b/gen/src/write.rs
index 7c16e81..8688797 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -32,7 +32,7 @@
fn write_forward_declarations(out: &mut OutFile, apis: &[Api]) {
let needs_forward_declaration = |api: &&Api| match api {
Api::Struct(_) | Api::CxxType(_) | Api::RustType(_) => true,
- Api::Enum(enm) => !out.types.cxx.contains(&enm.ident.rust),
+ Api::Enum(enm) => !out.types.cxx.contains(&enm.name.rust),
_ => false,
};
@@ -47,10 +47,10 @@
for api in apis {
write!(out, "{:1$}", "", indent);
match api {
- Api::Struct(strct) => write_struct_decl(out, &strct.ident.cxx),
+ Api::Struct(strct) => write_struct_decl(out, &strct.name.cxx),
Api::Enum(enm) => write_enum_decl(out, enm),
- Api::CxxType(ety) => write_struct_using(out, &ety.ident),
- Api::RustType(ety) => write_struct_decl(out, &ety.ident.cxx),
+ Api::CxxType(ety) => write_struct_using(out, &ety.name),
+ Api::RustType(ety) => write_struct_decl(out, &ety.name.cxx),
_ => unreachable!(),
}
}
@@ -80,20 +80,20 @@
match api {
Api::Struct(strct) => {
out.next_section();
- if !out.types.cxx.contains(&strct.ident.rust) {
+ if !out.types.cxx.contains(&strct.name.rust) {
write_struct(out, strct);
}
}
Api::Enum(enm) => {
out.next_section();
- if out.types.cxx.contains(&enm.ident.rust) {
+ if out.types.cxx.contains(&enm.name.rust) {
check_enum(out, enm);
} else {
write_enum(out, enm);
}
}
Api::RustType(ety) => {
- if let Some(methods) = methods_for_type.get(&ety.ident.rust) {
+ if let Some(methods) = methods_for_type.get(&ety.name.rust) {
out.next_section();
write_struct_with_methods(out, ety, methods);
}
@@ -105,8 +105,8 @@
out.next_section();
for api in apis {
if let Api::TypeAlias(ety) = api {
- if out.types.required_trivial.contains_key(&ety.ident.rust) {
- check_trivial_extern_type(out, &ety.ident)
+ if out.types.required_trivial.contains_key(&ety.name.rust) {
+ check_trivial_extern_type(out, &ety.name)
}
}
}
@@ -193,14 +193,14 @@
}
fn write_struct<'a>(out: &mut OutFile<'a>, strct: &'a Struct) {
- out.set_namespace(&strct.ident.namespace);
- let guard = format!("CXXBRIDGE05_STRUCT_{}", strct.ident.to_symbol());
+ out.set_namespace(&strct.name.namespace);
+ let guard = format!("CXXBRIDGE05_STRUCT_{}", strct.name.to_symbol());
writeln!(out, "#ifndef {}", guard);
writeln!(out, "#define {}", guard);
for line in strct.doc.to_string().lines() {
writeln!(out, "//{}", line);
}
- writeln!(out, "struct {} final {{", strct.ident.cxx);
+ writeln!(out, "struct {} final {{", strct.name.cxx);
for field in &strct.fields {
write!(out, " ");
write_type_space(out, &field.ty);
@@ -215,7 +215,7 @@
}
fn write_enum_decl(out: &mut OutFile, enm: &Enum) {
- write!(out, "enum class {} : ", enm.ident.cxx);
+ write!(out, "enum class {} : ", enm.name.cxx);
write_atom(out, enm.repr);
writeln!(out, ";");
}
@@ -229,24 +229,24 @@
ety: &'a ExternType,
methods: &[&ExternFn],
) {
- out.set_namespace(&ety.ident.namespace);
- let guard = format!("CXXBRIDGE05_STRUCT_{}", ety.ident.to_symbol());
+ out.set_namespace(&ety.name.namespace);
+ let guard = format!("CXXBRIDGE05_STRUCT_{}", ety.name.to_symbol());
writeln!(out, "#ifndef {}", guard);
writeln!(out, "#define {}", guard);
for line in ety.doc.to_string().lines() {
writeln!(out, "//{}", line);
}
- writeln!(out, "struct {} final {{", ety.ident.cxx);
- writeln!(out, " {}() = delete;", ety.ident.cxx);
+ writeln!(out, "struct {} final {{", ety.name.cxx);
+ writeln!(out, " {}() = delete;", ety.name.cxx);
writeln!(
out,
" {}(const {} &) = delete;",
- ety.ident.cxx, ety.ident.cxx,
+ ety.name.cxx, ety.name.cxx,
);
for method in methods {
write!(out, " ");
let sig = &method.sig;
- let local_name = method.ident.cxx.to_string();
+ let local_name = method.name.cxx.to_string();
write_rust_function_shim_decl(out, &local_name, sig, false);
writeln!(out, ";");
}
@@ -255,14 +255,14 @@
}
fn write_enum<'a>(out: &mut OutFile<'a>, enm: &'a Enum) {
- out.set_namespace(&enm.ident.namespace);
- let guard = format!("CXXBRIDGE05_ENUM_{}", enm.ident.to_symbol());
+ out.set_namespace(&enm.name.namespace);
+ let guard = format!("CXXBRIDGE05_ENUM_{}", enm.name.to_symbol());
writeln!(out, "#ifndef {}", guard);
writeln!(out, "#define {}", guard);
for line in enm.doc.to_string().lines() {
writeln!(out, "//{}", line);
}
- write!(out, "enum class {} : ", enm.ident.cxx);
+ write!(out, "enum class {} : ", enm.name.cxx);
write_atom(out, enm.repr);
writeln!(out, " {{");
for variant in &enm.variants {
@@ -273,8 +273,8 @@
}
fn check_enum<'a>(out: &mut OutFile<'a>, enm: &'a Enum) {
- out.set_namespace(&enm.ident.namespace);
- write!(out, "static_assert(sizeof({}) == sizeof(", enm.ident.cxx);
+ out.set_namespace(&enm.name.namespace);
+ write!(out, "static_assert(sizeof({}) == sizeof(", enm.name.cxx);
write_atom(out, enm.repr);
writeln!(out, "), \"incorrect size\");");
for variant in &enm.variants {
@@ -283,7 +283,7 @@
writeln!(
out,
">({}::{}) == {}, \"disagrees with the value in #[cxx::bridge]\");",
- enm.ident.cxx, variant.ident, variant.discriminant,
+ enm.name.cxx, variant.ident, variant.discriminant,
);
}
}
@@ -331,7 +331,7 @@
fn write_cxx_function_shim<'a>(out: &mut OutFile<'a>, efn: &'a ExternFn) {
out.next_section();
- out.set_namespace(&efn.ident.namespace);
+ out.set_namespace(&efn.name.namespace);
out.begin_block(Block::ExternC);
if let Some(annotation) = &out.opt.cxx_impl_annotations {
write!(out, "{} ", annotation);
@@ -377,12 +377,12 @@
write!(out, " ");
write_return_type(out, &efn.ret);
match &efn.receiver {
- None => write!(out, "(*{}$)(", efn.ident.rust),
+ None => write!(out, "(*{}$)(", efn.name.rust),
Some(receiver) => write!(
out,
"({}::*{}$)(",
out.types.resolve(&receiver.ty).to_fully_qualified(),
- efn.ident.rust,
+ efn.name.rust,
),
}
for (i, arg) in efn.args.iter().enumerate() {
@@ -399,12 +399,12 @@
}
write!(out, " = ");
match &efn.receiver {
- None => write!(out, "{}", efn.ident.to_fully_qualified()),
+ None => write!(out, "{}", efn.name.to_fully_qualified()),
Some(receiver) => write!(
out,
"&{}::{}",
out.types.resolve(&receiver.ty).to_fully_qualified(),
- efn.ident.cxx,
+ efn.name.cxx,
),
}
writeln!(out, ";");
@@ -438,8 +438,8 @@
_ => {}
}
match &efn.receiver {
- None => write!(out, "{}$(", efn.ident.rust),
- Some(_) => write!(out, "(self.*{}$)(", efn.ident.rust),
+ None => write!(out, "{}$(", efn.name.rust),
+ Some(_) => write!(out, "(self.*{}$)(", efn.name.rust),
}
for (i, arg) in efn.args.iter().enumerate() {
if i > 0 {
@@ -533,7 +533,7 @@
}
fn write_rust_function_decl<'a>(out: &mut OutFile<'a>, efn: &'a ExternFn) {
- out.set_namespace(&efn.ident.namespace);
+ out.set_namespace(&efn.name.namespace);
out.begin_block(Block::ExternC);
let link_name = mangle::extern_fn(efn, out.types);
let indirect_call = false;
@@ -592,13 +592,13 @@
}
fn write_rust_function_shim<'a>(out: &mut OutFile<'a>, efn: &'a ExternFn) {
- out.set_namespace(&efn.ident.namespace);
+ out.set_namespace(&efn.name.namespace);
for line in efn.doc.to_string().lines() {
writeln!(out, "//{}", line);
}
let local_name = match &efn.sig.receiver {
- None => efn.ident.cxx.to_string(),
- Some(receiver) => format!("{}::{}", out.types.resolve(&receiver.ty).cxx, efn.ident.cxx),
+ None => efn.name.cxx.to_string(),
+ Some(receiver) => format!("{}::{}", out.types.resolve(&receiver.ty).cxx, efn.name.cxx),
};
let invoke = mangle::extern_fn(efn, out.types);
let indirect_call = false;
diff --git a/macro/src/expand.rs b/macro/src/expand.rs
index 026ec43..029c54f 100644
--- a/macro/src/expand.rs
+++ b/macro/src/expand.rs
@@ -43,10 +43,8 @@
Api::Struct(strct) => expanded.extend(expand_struct(strct)),
Api::Enum(enm) => expanded.extend(expand_enum(enm)),
Api::CxxType(ety) => {
- let ident = &ety.ident;
- if !types.structs.contains_key(&ident.rust)
- && !types.enums.contains_key(&ident.rust)
- {
+ let ident = &ety.name.rust;
+ if !types.structs.contains_key(ident) && !types.enums.contains_key(ident) {
expanded.extend(expand_cxx_type(ety));
}
}
@@ -125,10 +123,10 @@
}
fn expand_struct(strct: &Struct) -> TokenStream {
- let ident = &strct.ident;
+ let ident = &strct.name.rust;
let doc = &strct.doc;
let derives = DeriveAttribute(&strct.derives);
- let type_id = type_id(&strct.ident);
+ let type_id = type_id(&strct.name);
let fields = strct.fields.iter().map(|field| {
// This span on the pub makes "private type in public interface" errors
// appear in the right place.
@@ -152,10 +150,10 @@
}
fn expand_enum(enm: &Enum) -> TokenStream {
- let ident = &enm.ident;
+ let ident = &enm.name.rust;
let doc = &enm.doc;
let repr = enm.repr;
- let type_id = type_id(&enm.ident);
+ let type_id = type_id(&enm.name);
let variants = enm.variants.iter().map(|variant| {
let variant_ident = &variant.ident;
let discriminant = &variant.discriminant;
@@ -185,9 +183,9 @@
}
fn expand_cxx_type(ety: &ExternType) -> TokenStream {
- let ident = &ety.ident;
+ let ident = &ety.name.rust;
let doc = &ety.doc;
- let type_id = type_id(&ety.ident);
+ let type_id = type_id(&ety.name);
quote! {
#doc
@@ -235,7 +233,7 @@
outparam = Some(quote!(__return: *mut #ret));
}
let link_name = mangle::extern_fn(efn, types);
- let local_name = format_ident!("__{}", efn.ident.rust);
+ let local_name = format_ident!("__{}", efn.name.rust);
quote! {
#[link_name = #link_name]
fn #local_name(#(#all_args,)* #outparam) #ret;
@@ -323,7 +321,7 @@
}
})
.collect::<TokenStream>();
- let local_name = format_ident!("__{}", efn.ident.rust);
+ let local_name = format_ident!("__{}", efn.name.rust);
let call = if indirect_return {
let ret = expand_extern_type(efn.ret.as_ref().unwrap());
setup.extend(quote! {
@@ -420,7 +418,7 @@
if unsafety.is_none() {
dispatch = quote!(unsafe { #dispatch });
}
- let ident = &efn.ident;
+ let ident = &efn.name.rust;
let function_shim = quote! {
#doc
pub #unsafety fn #ident(#(#all_args,)*) #ret {
@@ -449,7 +447,7 @@
let c_trampoline = mangle::c_trampoline(efn, var, types);
let r_trampoline = mangle::r_trampoline(efn, var, types);
let local_name = parse_quote!(__);
- let catch_unwind_label = format!("::{}::{}", efn.ident.rust, var);
+ let catch_unwind_label = format!("::{}::{}", efn.name.rust, var);
let shim = expand_rust_function_shim_impl(
sig,
types,
@@ -475,7 +473,7 @@
}
fn expand_rust_type(ety: &ExternType) -> TokenStream {
- let ident = &ety.ident;
+ let ident = &ety.name.rust;
quote! {
use super::#ident;
}
@@ -490,12 +488,12 @@
// | doesn't have a size known at compile-time
// required by this bound in `ffi::_::__AssertSized`
- let ident = &ety.ident;
+ let ident = &ety.name.rust;
let begin_span = Token;
let sized = quote_spanned! {ety.semi_token.span=>
#begin_span std::marker::Sized
};
- quote_spanned! {ident.rust.span()=>
+ quote_spanned! {ident.span()=>
let _ = {
fn __AssertSized<T: ?#sized + #sized>() {}
__AssertSized::<#ident>
@@ -505,9 +503,9 @@
fn expand_rust_function_shim(efn: &ExternFn, types: &Types) -> TokenStream {
let link_name = mangle::extern_fn(efn, types);
- let local_name = format_ident!("__{}", efn.ident.rust);
- let catch_unwind_label = format!("::{}", efn.ident.rust);
- let invoke = Some(&efn.ident.rust);
+ let local_name = format_ident!("__{}", efn.name.rust);
+ let catch_unwind_label = format!("::{}", efn.name.rust);
+ let invoke = Some(&efn.name.rust);
expand_rust_function_shim_impl(
efn,
types,
@@ -675,7 +673,7 @@
fn expand_type_alias(alias: &TypeAlias) -> TokenStream {
let doc = &alias.doc;
- let ident = &alias.ident;
+ let ident = &alias.name.rust;
let ty = &alias.ty;
quote! {
#doc
@@ -684,8 +682,8 @@
}
fn expand_type_alias_verify(alias: &TypeAlias, types: &Types) -> TokenStream {
- let ident = &alias.ident;
- let type_id = type_id(ident);
+ let ident = &alias.name.rust;
+ let type_id = type_id(&alias.name);
let begin_span = alias.type_token.span;
let end_span = alias.semi_token.span;
let begin = quote_spanned!(begin_span=> ::cxx::private::verify_extern_type::<);
@@ -695,7 +693,7 @@
const _: fn() = #begin #ident, #type_id #end;
};
- if types.required_trivial.contains_key(&alias.ident.rust) {
+ if types.required_trivial.contains_key(&alias.name.rust) {
let begin = quote_spanned!(begin_span=> ::cxx::private::verify_extern_kind::<);
verify.extend(quote! {
const _: fn() = #begin #ident, ::cxx::kind::Trivial #end;
diff --git a/syntax/check.rs b/syntax/check.rs
index ba488e1..e8a6448 100644
--- a/syntax/check.rs
+++ b/syntax/check.rs
@@ -167,16 +167,16 @@
}
fn check_api_struct(cx: &mut Check, strct: &Struct) {
- let ident = &strct.ident;
- check_reserved_name(cx, &ident.rust);
+ let name = &strct.name;
+ check_reserved_name(cx, &name.rust);
if strct.fields.is_empty() {
let span = span_for_struct_error(strct);
cx.error(span, "structs without any fields are not supported");
}
- if cx.types.cxx.contains(&ident.rust) {
- if let Some(ety) = cx.types.untrusted.get(&ident.rust) {
+ if cx.types.cxx.contains(&name.rust) {
+ if let Some(ety) = cx.types.untrusted.get(&name.rust) {
let msg = "extern shared struct must be declared in an `unsafe extern` block";
cx.error(ety, msg);
}
@@ -198,7 +198,7 @@
}
fn check_api_enum(cx: &mut Check, enm: &Enum) {
- check_reserved_name(cx, &enm.ident.rust);
+ check_reserved_name(cx, &enm.name.rust);
if enm.variants.is_empty() {
let span = span_for_enum_error(enm);
@@ -207,13 +207,13 @@
}
fn check_api_type(cx: &mut Check, ety: &ExternType) {
- check_reserved_name(cx, &ety.ident.rust);
+ check_reserved_name(cx, &ety.name.rust);
- if let Some(reason) = cx.types.required_trivial.get(&ety.ident.rust) {
+ if let Some(reason) = cx.types.required_trivial.get(&ety.name.rust) {
let what = match reason {
- TrivialReason::StructField(strct) => format!("a field of `{}`", strct.ident.rust),
- TrivialReason::FunctionArgument(efn) => format!("an argument of `{}`", efn.ident.rust),
- TrivialReason::FunctionReturn(efn) => format!("a return value of `{}`", efn.ident.rust),
+ TrivialReason::StructField(strct) => format!("a field of `{}`", strct.name.rust),
+ TrivialReason::FunctionArgument(efn) => format!("an argument of `{}`", efn.name.rust),
+ TrivialReason::FunctionReturn(efn) => format!("a return value of `{}`", efn.name.rust),
};
let msg = format!(
"needs a cxx::ExternType impl in order to be used as {}",
diff --git a/syntax/ident.rs b/syntax/ident.rs
index bb2fe46..aaf7832 100644
--- a/syntax/ident.rs
+++ b/syntax/ident.rs
@@ -24,28 +24,28 @@
match api {
Api::Include(_) | Api::Impl(_) => {}
Api::Struct(strct) => {
- check_ident(cx, &strct.ident);
+ check_ident(cx, &strct.name);
for field in &strct.fields {
check(cx, &field.ident);
}
}
Api::Enum(enm) => {
- check_ident(cx, &enm.ident);
+ check_ident(cx, &enm.name);
for variant in &enm.variants {
check(cx, &variant.ident);
}
}
Api::CxxType(ety) | Api::RustType(ety) => {
- check_ident(cx, &ety.ident);
+ check_ident(cx, &ety.name);
}
Api::CxxFunction(efn) | Api::RustFunction(efn) => {
- check(cx, &efn.ident.rust);
+ check(cx, &efn.name.rust);
for arg in &efn.args {
check(cx, &arg.ident);
}
}
Api::TypeAlias(alias) => {
- check_ident(cx, &alias.ident);
+ check_ident(cx, &alias.name);
}
}
}
diff --git a/syntax/mangle.rs b/syntax/mangle.rs
index 55ffca5..cc5115a 100644
--- a/syntax/mangle.rs
+++ b/syntax/mangle.rs
@@ -15,13 +15,13 @@
Some(receiver) => {
let receiver_ident = types.resolve(&receiver.ty);
join!(
- efn.ident.namespace,
+ efn.name.namespace,
CXXBRIDGE,
receiver_ident.cxx,
- efn.ident.rust
+ efn.name.rust
)
}
- None => join!(efn.ident.namespace, CXXBRIDGE, efn.ident.rust),
+ None => join!(efn.name.namespace, CXXBRIDGE, efn.name.rust),
}
}
diff --git a/syntax/mod.rs b/syntax/mod.rs
index 782d617..ac6350a 100644
--- a/syntax/mod.rs
+++ b/syntax/mod.rs
@@ -67,7 +67,7 @@
pub struct ExternType {
pub doc: Doc,
pub type_token: Token![type],
- pub ident: Pair,
+ pub name: Pair,
pub semi_token: Token![;],
pub trusted: bool,
}
@@ -76,7 +76,7 @@
pub doc: Doc,
pub derives: Vec<Derive>,
pub struct_token: Token![struct],
- pub ident: Pair,
+ pub name: Pair,
pub brace_token: Brace,
pub fields: Vec<Var>,
}
@@ -84,7 +84,7 @@
pub struct Enum {
pub doc: Doc,
pub enum_token: Token![enum],
- pub ident: Pair,
+ pub name: Pair,
pub brace_token: Brace,
pub variants: Vec<Variant>,
pub repr: Atom,
@@ -93,7 +93,7 @@
pub struct ExternFn {
pub lang: Lang,
pub doc: Doc,
- pub ident: Pair,
+ pub name: Pair,
pub sig: Signature,
pub semi_token: Token![;],
}
@@ -101,7 +101,7 @@
pub struct TypeAlias {
pub doc: Doc,
pub type_token: Token![type],
- pub ident: Pair,
+ pub name: Pair,
pub eq_token: Token![=],
pub ty: RustType,
pub semi_token: Token![;],
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 6b5d925..2136653 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -90,7 +90,7 @@
doc,
derives,
struct_token: item.struct_token,
- ident: Pair::new(namespace.clone(), item.ident),
+ name: Pair::new(namespace.clone(), item.ident),
brace_token: fields.brace_token,
fields: fields
.named
@@ -177,7 +177,7 @@
Ok(Api::Enum(Enum {
doc,
enum_token,
- ident: Pair::new(namespace, item.ident),
+ name: Pair::new(namespace, item.ident),
brace_token,
variants,
repr,
@@ -241,8 +241,8 @@
}
let mut types = items.iter().filter_map(|item| match item {
- Api::CxxType(ety) | Api::RustType(ety) => Some(&ety.ident),
- Api::TypeAlias(alias) => Some(&alias.ident),
+ Api::CxxType(ety) | Api::RustType(ety) => Some(&ety.name),
+ Api::TypeAlias(alias) => Some(&alias.name),
_ => None,
});
if let (Some(single_type), None) = (types.next(), types.next()) {
@@ -305,7 +305,7 @@
Ok(api_type(ExternType {
doc,
type_token,
- ident: Pair::new(namespace, ident),
+ name: Pair::new(namespace, ident),
semi_token,
trusted,
}))
@@ -404,7 +404,7 @@
let throws = throws_tokens.is_some();
let unsafety = foreign_fn.sig.unsafety;
let fn_token = foreign_fn.sig.fn_token;
- let ident = Pair::new_from_differing_names(
+ let name = Pair::new_from_differing_names(
namespace,
cxx_name.unwrap_or(foreign_fn.sig.ident.clone()),
rust_name.unwrap_or(foreign_fn.sig.ident.clone()),
@@ -419,7 +419,7 @@
Ok(api_function(ExternFn {
lang,
doc,
- ident,
+ name,
sig: Signature {
unsafety,
fn_token,
@@ -468,7 +468,7 @@
Ok(TypeAlias {
doc,
type_token,
- ident: Pair::new(namespace, ident),
+ name: Pair::new(namespace, ident),
eq_token,
ty,
semi_token,
diff --git a/syntax/tokens.rs b/syntax/tokens.rs
index 2b32532..15c23dc 100644
--- a/syntax/tokens.rs
+++ b/syntax/tokens.rs
@@ -85,7 +85,7 @@
fn to_tokens(&self, tokens: &mut TokenStream) {
// Notional token range for error reporting purposes.
self.type_token.to_tokens(tokens);
- self.ident.to_tokens(tokens);
+ self.name.to_tokens(tokens);
}
}
@@ -93,7 +93,7 @@
fn to_tokens(&self, tokens: &mut TokenStream) {
// Notional token range for error reporting purposes.
self.type_token.to_tokens(tokens);
- self.ident.to_tokens(tokens);
+ self.name.to_tokens(tokens);
}
}
@@ -101,7 +101,7 @@
fn to_tokens(&self, tokens: &mut TokenStream) {
// Notional token range for error reporting purposes.
self.struct_token.to_tokens(tokens);
- self.ident.to_tokens(tokens);
+ self.name.to_tokens(tokens);
}
}
@@ -109,7 +109,7 @@
fn to_tokens(&self, tokens: &mut TokenStream) {
// Notional token range for error reporting purposes.
self.enum_token.to_tokens(tokens);
- self.ident.to_tokens(tokens);
+ self.name.to_tokens(tokens);
}
}
diff --git a/syntax/types.rs b/syntax/types.rs
index d9d6361..67b041b 100644
--- a/syntax/types.rs
+++ b/syntax/types.rs
@@ -70,7 +70,7 @@
match api {
Api::Include(_) => {}
Api::Struct(strct) => {
- let ident = &strct.ident.rust;
+ let ident = &strct.name.rust;
if !type_names.insert(ident)
&& (!cxx.contains(ident)
|| structs.contains_key(ident)
@@ -81,14 +81,14 @@
// type, then error.
duplicate_name(cx, strct, ident);
}
- structs.insert(&strct.ident.rust, strct);
+ structs.insert(&strct.name.rust, strct);
for field in &strct.fields {
visit(&mut all, &field.ty);
}
- add_resolution(&strct.ident);
+ add_resolution(&strct.name);
}
Api::Enum(enm) => {
- let ident = &enm.ident.rust;
+ let ident = &enm.name.rust;
if !type_names.insert(ident)
&& (!cxx.contains(ident)
|| structs.contains_key(ident)
@@ -100,10 +100,10 @@
duplicate_name(cx, enm, ident);
}
enums.insert(ident, enm);
- add_resolution(&enm.ident);
+ add_resolution(&enm.name);
}
Api::CxxType(ety) => {
- let ident = &ety.ident.rust;
+ let ident = &ety.name.rust;
if !type_names.insert(ident)
&& (cxx.contains(ident)
|| !structs.contains_key(ident) && !enums.contains_key(ident))
@@ -117,21 +117,21 @@
if !ety.trusted {
untrusted.insert(ident, ety);
}
- add_resolution(&ety.ident);
+ add_resolution(&ety.name);
}
Api::RustType(ety) => {
- let ident = &ety.ident.rust;
+ let ident = &ety.name.rust;
if !type_names.insert(ident) {
duplicate_name(cx, ety, ident);
}
rust.insert(ident);
- add_resolution(&ety.ident);
+ add_resolution(&ety.name);
}
Api::CxxFunction(efn) | Api::RustFunction(efn) => {
// Note: duplication of the C++ name is fine because C++ has
// function overloading.
- if !function_names.insert((&efn.receiver, &efn.ident.rust)) {
- duplicate_name(cx, efn, &efn.ident.rust);
+ if !function_names.insert((&efn.receiver, &efn.name.rust)) {
+ duplicate_name(cx, efn, &efn.name.rust);
}
for arg in &efn.args {
visit(&mut all, &arg.ty);
@@ -141,13 +141,13 @@
}
}
Api::TypeAlias(alias) => {
- let ident = &alias.ident;
- if !type_names.insert(&ident.rust) {
- duplicate_name(cx, alias, &ident.rust);
+ let ident = &alias.name.rust;
+ if !type_names.insert(ident) {
+ duplicate_name(cx, alias, ident);
}
- cxx.insert(&ident.rust);
- aliases.insert(&ident.rust, alias);
- add_resolution(&alias.ident);
+ cxx.insert(ident);
+ aliases.insert(ident, alias);
+ add_resolution(&alias.name);
}
Api::Impl(imp) => {
visit(&mut all, &imp.ty);