self.this_token_to_str()));
}
- let (sort, ident) = match *self.token {
- token::IDENT(*) => (ast::named, self.parse_ident()),
+ let (sort, maybe_path, ident) = match *self.token {
+ token::IDENT(*) => {
+ let the_ident = self.parse_ident();
+ let path = if *self.token == token::EQ {
+ self.bump();
+ Some(self.parse_str())
+ }
+ else { None };
+ (ast::named, path, the_ident)
+ }
_ => {
if must_be_named_mod {
self.span_fatal(*self.span,
self.this_token_to_str()));
}
- (ast::anonymous,
+ (ast::anonymous, None,
special_idents::clownshoes_foreign_mod)
}
};
let metadata = self.parse_optional_meta();
self.expect(&token::SEMI);
iovi_view_item(ast::view_item {
- node: view_item_extern_mod(ident, metadata, self.get_id()),
+ node: view_item_extern_mod(ident, maybe_path, metadata, self.get_id()),
attrs: attrs,
vis: visibility,
span: mk_sp(lo, self.last_span.hi)
seq_sep_trailing_disallowed(token::COMMA),
|p| p.parse_ty(false)
);
- for ty in arg_tys.consume_iter() {
+ for ty in arg_tys.move_iter() {
args.push(ast::variant_arg {
ty: ty,
id: self.get_id(),
} else if self.eat_keyword(keywords::Extern) {
self.expect_keyword(keywords::Mod);
let ident = self.parse_ident();
+ let path = if *self.token == token::EQ {
+ self.bump();
+ Some(self.parse_str())
+ }
+ else { None };
let metadata = self.parse_optional_meta();
- view_item_extern_mod(ident, metadata, self.get_id())
+ view_item_extern_mod(ident, path, metadata, self.get_id())
} else {
self.bug("expected view item");
};