diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs
index d2763f494ea4..aa54642262b8 100644
--- a/src/librustdoc/html/render.rs
+++ b/src/librustdoc/html/render.rs
@@ -313,17 +313,17 @@ pub fn run(mut krate: clean::Crate, dst: Path) -> io::IoResult<()> {
if i > 0 {
try!(write!(&mut w, ","));
}
- try!(write!(&mut w, "\\{ty:{:u},name:\"{}\",path:\"{}\",desc:{}",
+ try!(write!(&mut w, r#"[{:u},"{}","{}",{}"#,
item.ty, item.name, item.path,
item.desc.to_json().to_str()));
match item.parent {
Some(nodeid) => {
let pathid = *nodeid_to_pathid.find(&nodeid).unwrap();
- try!(write!(&mut w, ",parent:{}", pathid));
+ try!(write!(&mut w, ",{}", pathid));
}
None => {}
}
- try!(write!(&mut w, "\\}"));
+ try!(write!(&mut w, "]"));
}
try!(write!(&mut w, "];"));
try!(write!(&mut w, "allPaths['{}'] = [", krate.name));
@@ -332,7 +332,7 @@ pub fn run(mut krate: clean::Crate, dst: Path) -> io::IoResult<()> {
if i > 0 {
try!(write!(&mut w, ","));
}
- try!(write!(&mut w, "\\{type:{:u},name:'{}'\\}",
+ try!(write!(&mut w, r#"[{:u},"{}"]"#,
short, *fqp.last().unwrap()));
}
try!(write!(&mut w, "];"));
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index 43fb02f62be2..692ab5b9ac28 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -294,7 +294,7 @@
if ((validate) &&
(name.toLowerCase().indexOf(keys[i]) > -1 ||
path.toLowerCase().indexOf(keys[i]) > -1 ||
- parent.name.toLowerCase().indexOf(keys[i]) > -1))
+ parent[1].toLowerCase().indexOf(keys[i]) > -1))
{
validate = true;
} else {
@@ -423,12 +423,14 @@
'">' + name + '';
} else if (item.parent !== undefined) {
var myparent = allPaths[item.crate][item.parent];
+ var parentType = myparent[0];
+ var parentName = myparent[1];
var anchor = '#' + type + '.' + name;
- output += item.path + '::' + myparent.name +
+ output += item.path + '::' + parentName +
'::' + name + '';
@@ -545,10 +547,12 @@
// all other search operations have access to this cached data for
// faster analysis operations
for (i = 0; i < len; i += 1) {
- rawSearchIndex[crate][i].crate = crate;
- searchIndex.push(rawSearchIndex[crate][i]);
- if (typeof rawSearchIndex[crate][i].name === "string") {
- var word = rawSearchIndex[crate][i].name.toLowerCase();
+ var rawRow = rawSearchIndex[crate][i];
+ var row = {crate: crate, ty: rawRow[0], name: rawRow[1],
+ path: rawRow[2], desc: rawRow[3], parent: rawRow[4]};
+ searchIndex.push(row);
+ if (typeof row.name === "string") {
+ var word = row.name.toLowerCase();
searchWords.push(word);
} else {
searchWords.push("");