summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2016-08-19 11:47:27 +0800
committerJohn Hodge <tpg@mutabah.net>2016-08-19 11:47:27 +0800
commiteb6e05c941966dfc11a3d0377f67589023a32724 (patch)
treed957ff98684fc8a7db29e4c1871315868427ea1e /src
parentd3e593cc70b2ae197a1c13e38c3982710f22fa69 (diff)
downloadmrust-eb6e05c941966dfc11a3d0377f67589023a32724.tar.gz
Parse - Fix bug in parsing `extern crate`
Diffstat (limited to 'src')
-rw-r--r--src/parse/root.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/parse/root.cpp b/src/parse/root.cpp
index b932bf1a..c21cfba3 100644
--- a/src/parse/root.cpp
+++ b/src/parse/root.cpp
@@ -1304,12 +1304,13 @@ void Parse_ExternCrate(TokenStream& lex, AST::Module& mod, bool is_public, AST::
name = mv$(tok.str());
if(GET_TOK(tok, lex) == TOK_RWORD_AS) {
path = mv$(name);
+
GET_CHECK_TOK(tok, lex, TOK_IDENT);
name = mv$(tok.str());
}
else {
PUTBACK(tok, lex);
- name = path;
+ path = name;
}
break;
default:
@@ -1317,6 +1318,7 @@ void Parse_ExternCrate(TokenStream& lex, AST::Module& mod, bool is_public, AST::
}
GET_CHECK_TOK(tok, lex, TOK_SEMICOLON);
+ DEBUG("- `extern crate` path='" << path << "', name="<<name);
mod.add_ext_crate(is_public, mv$(path), mv$(name), mv$(meta_items));
}