diff options
author | John Hodge <tpg@ucc.asn.au> | 2019-01-20 20:47:51 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2019-01-20 20:47:51 +0800 |
commit | e52b02d47c71fd8c926ac9cac90d3bf6d9b1ba0a (patch) | |
tree | 1f771a3c990c32f7be1fd4bd1aab2b711c77a5b0 /src/parse/root.cpp | |
parent | 150aa5de75f69ba2d91360a51a8aaf5e4b5a2a03 (diff) | |
download | mrust-e52b02d47c71fd8c926ac9cac90d3bf6d9b1ba0a.tar.gz |
Parse - Handle `use {self as foo}`
Diffstat (limited to 'src/parse/root.cpp')
-rw-r--r-- | src/parse/root.cpp | 5 |
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 { |