Remove ResolvableName from Ty1
This is not treated as resolvable for now. It only supports a hardcoded
set of generic types (UniquePtr, CxxVector, Box, Vec).
diff --git a/syntax/mod.rs b/syntax/mod.rs
index 6684b6a..782d617 100644
--- a/syntax/mod.rs
+++ b/syntax/mod.rs
@@ -160,7 +160,7 @@
}
pub struct Ty1 {
- pub name: ResolvableName,
+ pub name: Ident,
pub langle: Token![<],
pub inner: Type,
pub rangle: Token![>],
diff --git a/syntax/parse.rs b/syntax/parse.rs
index c170f79..6b5d925 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -602,15 +602,14 @@
if ty.qself.is_none() && path.leading_colon.is_none() && path.segments.len() == 1 {
let segment = &path.segments[0];
let ident = segment.ident.clone();
- let maybe_resolved_ident = ResolvableName::new(ident.clone());
match &segment.arguments {
- PathArguments::None => return Ok(Type::Ident(maybe_resolved_ident)),
+ PathArguments::None => return Ok(Type::Ident(ResolvableName::new(ident))),
PathArguments::AngleBracketed(generic) => {
if ident == "UniquePtr" && generic.args.len() == 1 {
if let GenericArgument::Type(arg) = &generic.args[0] {
let inner = parse_type(arg, namespace)?;
return Ok(Type::UniquePtr(Box::new(Ty1 {
- name: maybe_resolved_ident,
+ name: ident,
langle: generic.lt_token,
inner,
rangle: generic.gt_token,
@@ -620,7 +619,7 @@
if let GenericArgument::Type(arg) = &generic.args[0] {
let inner = parse_type(arg, namespace)?;
return Ok(Type::CxxVector(Box::new(Ty1 {
- name: maybe_resolved_ident,
+ name: ident,
langle: generic.lt_token,
inner,
rangle: generic.gt_token,
@@ -630,7 +629,7 @@
if let GenericArgument::Type(arg) = &generic.args[0] {
let inner = parse_type(arg, namespace)?;
return Ok(Type::RustBox(Box::new(Ty1 {
- name: maybe_resolved_ident,
+ name: ident,
langle: generic.lt_token,
inner,
rangle: generic.gt_token,
@@ -640,7 +639,7 @@
if let GenericArgument::Type(arg) = &generic.args[0] {
let inner = parse_type(arg, namespace)?;
return Ok(Type::RustVec(Box::new(Ty1 {
- name: maybe_resolved_ident,
+ name: ident,
langle: generic.lt_token,
inner,
rangle: generic.gt_token,
diff --git a/syntax/tokens.rs b/syntax/tokens.rs
index 57db8eb..2b32532 100644
--- a/syntax/tokens.rs
+++ b/syntax/tokens.rs
@@ -39,7 +39,7 @@
impl ToTokens for Ty1 {
fn to_tokens(&self, tokens: &mut TokenStream) {
let span = self.name.span();
- let name = self.name.rust.to_string();
+ let name = self.name.to_string();
if let "UniquePtr" | "CxxVector" = name.as_str() {
tokens.extend(quote_spanned!(span=> ::cxx::));
} else if name == "Vec" {