Fix missing cstdint import when generating enums
diff --git a/syntax/mod.rs b/syntax/mod.rs
index 33ed31c..2d527dd 100644
--- a/syntax/mod.rs
+++ b/syntax/mod.rs
@@ -90,6 +90,7 @@
pub brace_token: Brace,
pub variants: Vec<Variant>,
pub repr: Atom,
+ pub repr_type: Type,
}
pub struct ExternFn {
diff --git a/syntax/parse.rs b/syntax/parse.rs
index b557584..57520d9 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -7,7 +7,7 @@
Namespace, Pair, Receiver, Ref, ResolvableName, Signature, Slice, Struct, Ty1, Type, TypeAlias,
Var, Variant,
};
-use proc_macro2::{Delimiter, Group, TokenStream, TokenTree};
+use proc_macro2::{Delimiter, Group, Span, TokenStream, TokenTree};
use quote::{format_ident, quote, quote_spanned};
use syn::parse::{ParseStream, Parser};
use syn::punctuated::Punctuated;
@@ -178,6 +178,9 @@
}
}
+ let ident = Ident::new(repr.as_ref(), Span::call_site());
+ let repr_type = Type::Ident(ResolvableName::new(ident));
+
Ok(Api::Enum(Enum {
doc,
enum_token,
@@ -185,6 +188,7 @@
brace_token,
variants,
repr,
+ repr_type,
}))
}
diff --git a/syntax/types.rs b/syntax/types.rs
index 90a8221..92c9a75 100644
--- a/syntax/types.rs
+++ b/syntax/types.rs
@@ -94,6 +94,7 @@
add_resolution(&strct.name);
}
Api::Enum(enm) => {
+ all.insert(&enm.repr_type);
let ident = &enm.name.rust;
if !type_names.insert(ident)
&& (!cxx.contains(ident)