@@ -5,17 +5,19 @@ export extract;
5
5
6
6
#[ doc = "Converts the Rust AST to the rustdoc document model" ]
7
7
fn extract (
8
- crate : @ast:: crate
8
+ crate : @ast:: crate ,
9
+ default_name : str
9
10
) -> doc:: cratedoc {
10
11
~{
11
- topmod: top_moddoc_from_crate( crate ) ,
12
+ topmod: top_moddoc_from_crate ( crate , default_name ) ,
12
13
}
13
14
}
14
15
15
16
fn top_moddoc_from_crate (
16
- crate : @ast:: crate
17
+ crate : @ast:: crate ,
18
+ default_name : str
17
19
) -> 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 )
19
21
}
20
22
21
23
fn moddoc_from_mod (
@@ -69,7 +71,7 @@ mod tests {
69
71
fn extract_empty_crate ( ) {
70
72
let source = "" ; // empty crate
71
73
let ast = parse:: from_str ( source) ;
72
- let doc = extract ( ast) ;
74
+ let doc = extract ( ast, "" ) ;
73
75
// FIXME #1535: These are boxed to prevent a crash
74
76
assert ~doc. topmod . mods == ~doc:: modlist ( [ ] ) ;
75
77
assert ~doc. topmod . fns == ~doc:: fnlist ( [ ] ) ;
@@ -79,7 +81,7 @@ mod tests {
79
81
fn extract_mods ( ) {
80
82
let source = "mod a { mod b { } mod c { } }" ;
81
83
let ast = parse:: from_str ( source) ;
82
- let doc = extract ( ast) ;
84
+ let doc = extract ( ast, "" ) ;
83
85
assert doc. topmod . mods [ 0 ] . name == "a" ;
84
86
assert doc. topmod . mods [ 0 ] . mods [ 0 ] . name == "b" ;
85
87
assert doc. topmod . mods [ 0 ] . mods [ 1 ] . name == "c" ;
@@ -89,7 +91,7 @@ mod tests {
89
91
fn extract_mods_deep ( ) {
90
92
let source = "mod a { mod b { mod c { } } }" ;
91
93
let ast = parse:: from_str ( source) ;
92
- let doc = extract ( ast) ;
94
+ let doc = extract ( ast, "" ) ;
93
95
assert doc. topmod . mods [ 0 ] . mods [ 0 ] . mods [ 0 ] . name == "c" ;
94
96
}
95
97
@@ -99,7 +101,7 @@ mod tests {
99
101
"fn a() { } \
100
102
mod b { fn c() { } }";
101
103
let ast = parse:: from_str ( source) ;
102
- let doc = extract ( ast) ;
104
+ let doc = extract ( ast, "" ) ;
103
105
assert doc. topmod . fns [ 0 ] . name == "a" ;
104
106
assert doc. topmod . mods [ 0 ] . fns [ 0 ] . name == "c" ;
105
107
}
@@ -108,7 +110,15 @@ mod tests {
108
110
fn extract_should_set_fn_ast_id ( ) {
109
111
let source = "fn a() { }" ;
110
112
let ast = parse:: from_str ( source) ;
111
- let doc = extract ( ast) ;
113
+ let doc = extract ( ast, "" ) ;
112
114
assert doc. topmod . fns [ 0 ] . id != 0 ;
113
115
}
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
+ }
114
124
}
0 commit comments