Allow underscore as rename in `use` item
diff --git a/src/ident.rs b/src/ident.rs
index cb9978e..72a15ad 100644
--- a/src/ident.rs
+++ b/src/ident.rs
@@ -51,3 +51,9 @@
ident_from_token!(super);
ident_from_token!(crate);
ident_from_token!(extern);
+
+impl From<Token![_]> for Ident {
+ fn from(token: Token![_]) -> Ident {
+ Ident::new("_", token.spans[0])
+ }
+}
diff --git a/src/item.rs b/src/item.rs
index c31bb9c..9018f55 100644
--- a/src/item.rs
+++ b/src/item.rs
@@ -972,7 +972,15 @@
Ok(UseTree::Rename(UseRename {
ident: ident,
as_token: input.parse()?,
- rename: input.parse()?,
+ rename: {
+ if input.peek(Ident) {
+ input.parse()?
+ } else if input.peek(Token![_]) {
+ Ident::from(input.parse::<Token![_]>()?)
+ } else {
+ return Err(input.error("expected identifier or underscore"));
+ }
+ },
}))
} else {
Ok(UseTree::Name(UseName { ident: ident }))