summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2019-01-20 20:47:51 +0800
committerJohn Hodge <tpg@ucc.asn.au>2019-01-20 20:47:51 +0800
commite52b02d47c71fd8c926ac9cac90d3bf6d9b1ba0a (patch)
tree1f771a3c990c32f7be1fd4bd1aab2b711c77a5b0
parent150aa5de75f69ba2d91360a51a8aaf5e4b5a2a03 (diff)
downloadmrust-e52b02d47c71fd8c926ac9cac90d3bf6d9b1ba0a.tar.gz
Parse - Handle `use {self as foo}`
-rw-r--r--src/parse/root.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/parse/root.cpp b/src/parse/root.cpp
index c3fbfdd1..4d9c96e0 100644
--- a/src/parse/root.cpp
+++ b/src/parse/root.cpp
@@ -1361,6 +1361,11 @@ void Parse_Use_Inner(TokenStream& lex, ::std::vector<AST::UseItem::Ent>& entries
else if( LOOK_AHEAD(lex) == TOK_RWORD_SELF ) {
GET_TOK(tok, lex);
auto name = path.nodes().back().name();
+ if( LOOK_AHEAD(lex) == TOK_RWORD_AS ) {
+ GET_TOK(tok, lex);
+ GET_CHECK_TOK(tok, lex, TOK_IDENT);
+ name = mv$(tok.str());
+ }
entries.push_back({ lex.point_span(), AST::Path(path), ::std::move(name) });
}
else {