Skip to content

Commit 13c8b00

Browse files
committed
---
yaml --- r: 7310 b: refs/heads/master c: ae58426 h: refs/heads/master v: v3
1 parent a0fd732 commit 13c8b00

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 77690baa7049cf636ff5dd6124f7b1550fe42acc
2+
refs/heads/master: ae584263da8139c35d15a26e588eace2d7513808

trunk/src/rustdoc/extract.rs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,19 @@ export extract;
55

66
#[doc = "Converts the Rust AST to the rustdoc document model"]
77
fn extract(
8-
crate: @ast::crate
8+
crate: @ast::crate,
9+
default_name: str
910
) -> doc::cratedoc {
1011
~{
11-
topmod: top_moddoc_from_crate(crate),
12+
topmod: top_moddoc_from_crate(crate, default_name),
1213
}
1314
}
1415

1516
fn top_moddoc_from_crate(
16-
crate: @ast::crate
17+
crate: @ast::crate,
18+
default_name: str
1719
) -> doc::moddoc {
18-
moddoc_from_mod(crate.node.module, "crate", crate.node.attrs)
20+
moddoc_from_mod(crate.node.module, default_name, crate.node.attrs)
1921
}
2022

2123
fn moddoc_from_mod(
@@ -69,7 +71,7 @@ mod tests {
6971
fn extract_empty_crate() {
7072
let source = ""; // empty crate
7173
let ast = parse::from_str(source);
72-
let doc = extract(ast);
74+
let doc = extract(ast, "");
7375
// FIXME #1535: These are boxed to prevent a crash
7476
assert ~doc.topmod.mods == ~doc::modlist([]);
7577
assert ~doc.topmod.fns == ~doc::fnlist([]);
@@ -79,7 +81,7 @@ mod tests {
7981
fn extract_mods() {
8082
let source = "mod a { mod b { } mod c { } }";
8183
let ast = parse::from_str(source);
82-
let doc = extract(ast);
84+
let doc = extract(ast, "");
8385
assert doc.topmod.mods[0].name == "a";
8486
assert doc.topmod.mods[0].mods[0].name == "b";
8587
assert doc.topmod.mods[0].mods[1].name == "c";
@@ -89,7 +91,7 @@ mod tests {
8991
fn extract_mods_deep() {
9092
let source = "mod a { mod b { mod c { } } }";
9193
let ast = parse::from_str(source);
92-
let doc = extract(ast);
94+
let doc = extract(ast, "");
9395
assert doc.topmod.mods[0].mods[0].mods[0].name == "c";
9496
}
9597

@@ -99,7 +101,7 @@ mod tests {
99101
"fn a() { } \
100102
mod b { fn c() { } }";
101103
let ast = parse::from_str(source);
102-
let doc = extract(ast);
104+
let doc = extract(ast, "");
103105
assert doc.topmod.fns[0].name == "a";
104106
assert doc.topmod.mods[0].fns[0].name == "c";
105107
}
@@ -108,7 +110,15 @@ mod tests {
108110
fn extract_should_set_fn_ast_id() {
109111
let source = "fn a() { }";
110112
let ast = parse::from_str(source);
111-
let doc = extract(ast);
113+
let doc = extract(ast, "");
112114
assert doc.topmod.fns[0].id != 0;
113115
}
116+
117+
#[test]
118+
fn extract_should_use_default_crate_name_if_no_link_name_exists() {
119+
let source = "";
120+
let ast = parse::from_str(source);
121+
let doc = extract(ast, "burp");
122+
assert doc.topmod.name == "burp";
123+
}
114124
}

0 commit comments

Comments
 (0)