1
Fork 0

rustc: "extern mod { ... }" should be written "extern { ... }" instead

This commit is contained in:
Patrick Walton 2012-08-30 17:09:04 -07:00
parent c3ac0f8fd9
commit 4846affedb
4 changed files with 25 additions and 8 deletions

View file

@ -2915,15 +2915,34 @@ struct parser {
attrs: ~[attribute],
items_allowed: bool)
-> item_or_view_item {
let mut must_be_named_mod = false;
if self.is_keyword(~"mod") {
must_be_named_mod = true;
self.expect_keyword(~"mod");
} else {
} else if self.is_keyword(~"module") {
must_be_named_mod = true;
self.expect_keyword(~"module");
} else if self.token != token::LBRACE {
self.span_fatal(copy self.span,
fmt!("expected `{` or `mod` but found %s",
token_to_str(self.reader, self.token)));
}
let (sort, ident) = match self.token {
token::IDENT(*) => (ast::named, self.parse_ident()),
_ => (ast::anonymous,
token::special_idents::clownshoes_foreign_mod)
token::IDENT(*) => (ast::named, self.parse_ident()),
_ => {
if must_be_named_mod {
self.span_fatal(copy self.span,
fmt!("expected foreign module name but \
found %s",
token_to_str(self.reader,
self.token)));
}
(ast::anonymous,
token::special_idents::clownshoes_foreign_mod)
}
};
// extern mod { ... }

View file

@ -823,7 +823,6 @@ fn encode_info_for_foreign_item(ecx: @encode_ctxt, ebml_w: ebml::Writer,
encode_type(ecx, ebml_w, node_id_to_type(ecx.tcx, nitem.id));
encode_symbol(ecx, ebml_w, nitem.id);
encode_path(ecx, ebml_w, path, ast_map::path_name(nitem.ident));
ebml_w.end_tag();
}
}
ebml_w.end_tag();

View file

@ -5528,7 +5528,6 @@ fn get_item_val(ccx: @crate_ctxt, id: ast::node_id) -> ValueRef {
let g = do str::as_c_str(*ident) |buf| {
llvm::LLVMAddGlobal(ccx.llmod, type_of(ccx, typ), buf)
};
ccx.item_symbols.insert(ni.id, copy *ident);
g
}
}

View file

@ -1,9 +1,9 @@
#[abi = "cdecl"]
#[link_name = "rustrt"]
extern mod {
extern {
fn last_os_error() -> ~str;
}
fn main() {
last_os_error();
}
}