Preserve empty parameter lists
diff --git a/src/ty.rs b/src/ty.rs
index 22dbc7f..5f8ba37 100644
--- a/src/ty.rs
+++ b/src/ty.rs
@@ -105,6 +105,15 @@
pub fn none() -> Self {
PathParameters::AngleBracketed(AngleBracketedParameterData::default())
}
+
+ pub fn is_empty(&self) -> bool {
+ match *self {
+ PathParameters::AngleBracketed(ref bracketed) => {
+ bracketed.lifetimes.is_empty() && bracketed.types.is_empty() && bracketed.bindings.is_empty()
+ }
+ PathParameters::Parenthesized(_) => false,
+ }
+ }
}
/// A path like `Foo<'a, T>`
@@ -664,7 +673,12 @@
impl ToTokens for PathSegment {
fn to_tokens(&self, tokens: &mut Tokens) {
self.ident.to_tokens(tokens);
- self.parameters.to_tokens(tokens);
+ if self.ident.as_ref().is_empty() && self.parameters.is_empty() {
+ tokens.append("<");
+ tokens.append(">");
+ } else {
+ self.parameters.to_tokens(tokens);
+ }
}
}