auto merge of #9916 : alexcrichton/rust/issue-9861, r=brson

This was just incorrectly handled before, the path component shouldn't be looked
at at all (we used absolute paths everywhere instead of relative to the current
module location).

Closes #9861
This commit is contained in:
bors 2013-10-17 18:01:22 -07:00
commit 51709fcedc
2 changed files with 13 additions and 9 deletions

View File

@ -115,12 +115,7 @@ impl fmt::Default for clean::Path {
fn resolved_path(w: &mut io::Writer, id: ast::NodeId, p: &clean::Path,
print_all: bool) {
path(w, p, print_all,
|_cache, loc| {
match p.segments[0].name.as_slice() {
"super" => Some("../".repeat(loc.len() - 1)),
_ => Some("../".repeat(loc.len())),
}
},
|_cache, loc| { Some("../".repeat(loc.len())) },
|cache| {
match cache.paths.find(&id) {
None => None,

View File

@ -44,6 +44,7 @@ use std::rt::io::file::{FileInfo, DirectoryInfo};
use std::rt::io::file;
use std::rt::io;
use std::rt::io::Reader;
use std::os;
use std::str;
use std::task;
use std::unstable::finally::Finally;
@ -686,7 +687,15 @@ impl Context {
Process(Context, clean::Item),
}
enum Progress { JobNew, JobDone }
static WORKERS: int = 10;
let workers = match os::getenv("RUSTDOC_WORKERS") {
Some(s) => {
match from_str::<uint>(s) {
Some(n) => n, None => fail2!("{} not a number", s)
}
}
None => 10,
};
let mut item = match crate.module.take() {
Some(i) => i,
@ -706,7 +715,7 @@ impl Context {
// using the same channel/port. Through this, the crate is recursed on
// in a hierarchical fashion, and parallelization is only achieved if
// one node in the hierarchy has more than one child (very common).
for i in range(0, WORKERS) {
for i in range(0, workers) {
let port = port.clone();
let chan = chan.clone();
let prog_chan = prog_chan.clone();
@ -761,7 +770,7 @@ impl Context {
if jobs == 0 { break }
}
for _ in range(0, WORKERS) {
for _ in range(0, workers) {
chan.send(Die);
}
}