std/rustc/rustpkg/syntax: Support the extern mod = ... form

This commit allows you to write:

 extern mod x = "a/b/c";

which means rustc will search in the RUST_PATH for a package with
ID a/b/c, and bind it to the name `x` if it's found.

Incidentally, move get_relative_to from back::rpath into std::path
This commit is contained in:
Tim Chevalier
2013-07-31 13:47:32 -07:00
parent e751c90513
commit 96fd606ddd
29 changed files with 819 additions and 602 deletions

View File

@@ -1856,9 +1856,13 @@ pub fn print_view_item(s: @ps, item: &ast::view_item) {
print_outer_attributes(s, item.attrs);
print_visibility(s, item.vis);
match item.node {
ast::view_item_extern_mod(id, ref mta, _) => {
ast::view_item_extern_mod(id, ref optional_path, ref mta, _) => {
head(s, "extern mod");
print_ident(s, id);
for p in optional_path.iter() {
word(s.s, "=");
print_string(s, *p);
}
if !mta.is_empty() {
popen(s);
commasep(s, consistent, *mta, |p, &i| print_meta_item(p, i));