Skip to content

Commit 1ee9452

Browse files
committed
rustdoc: Various bits of modernization
1 parent 49472ec commit 1ee9452

23 files changed

+259
-259
lines changed

src/librustdoc/astsrv.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use core::prelude::*;
2222
use parse;
2323
use util;
2424

25+
use core::pipes::stream;
2526
use core::oldcomm;
2627
use core::vec;
2728
use rustc::back::link;
@@ -62,18 +63,18 @@ impl Srv: Clone {
6263
}
6364

6465
pub fn from_str<T>(source: ~str, owner: SrvOwner<T>) -> T {
65-
run(owner, source, parse::from_str_sess)
66+
run(owner, copy source, parse::from_str_sess)
6667
}
6768

6869
pub fn from_file<T>(file: ~str, owner: SrvOwner<T>) -> T {
69-
run(owner, file, |sess, f| parse::from_file_sess(sess, &Path(f)))
70+
run(owner, copy file, |sess, f| parse::from_file_sess(sess, &Path(f)))
7071
}
7172

7273
fn run<T>(owner: SrvOwner<T>, source: ~str, +parse: Parser) -> T {
7374

7475
let srv_ = Srv({
75-
ch: do util::spawn_listener |move parse, po| {
76-
act(po, source, parse);
76+
ch: do util::spawn_listener |copy source, move parse, po| {
77+
act(po, copy source, parse);
7778
}
7879
});
7980

@@ -87,7 +88,7 @@ fn act(po: oldcomm::Port<Msg>, source: ~str, parse: Parser) {
8788

8889
let ctxt = build_ctxt(
8990
sess,
90-
parse(sess, source)
91+
parse(sess, copy source)
9192
);
9293

9394
let mut keep_going = true;
@@ -107,13 +108,12 @@ pub fn exec<T:Owned>(
107108
srv: Srv,
108109
+f: fn~(ctxt: Ctxt) -> T
109110
) -> T {
110-
let po = oldcomm::Port();
111-
let ch = oldcomm::Chan(&po);
111+
let (po, ch) = stream();
112112
let msg = HandleRequest(fn~(move f, ctxt: Ctxt) {
113-
oldcomm::send(ch, f(ctxt))
113+
ch.send(f(ctxt))
114114
});
115115
oldcomm::send(srv.ch, move msg);
116-
oldcomm::recv(po)
116+
po.recv()
117117
}
118118

119119
fn build_ctxt(sess: Session,
@@ -123,7 +123,7 @@ fn build_ctxt(sess: Session,
123123

124124
let ast = config::strip_unconfigured_items(ast);
125125
let ast = syntax::ext::expand::expand_crate(sess.parse_sess,
126-
sess.opts.cfg, ast);
126+
copy sess.opts.cfg, ast);
127127
let ast = front::test::modify_for_testing(sess, ast);
128128
let ast_map = ast_map::map_crate(sess.diagnostic(), *ast);
129129

src/librustdoc/attr_pass.rs

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,18 @@ fn fold_crate(
6565
let doc = fold::default_seq_fold_crate(fold, doc);
6666

6767
let attrs = do astsrv::exec(srv) |ctxt| {
68-
let attrs = ctxt.ast.node.attrs;
68+
let attrs = copy ctxt.ast.node.attrs;
6969
attr_parser::parse_crate(attrs)
7070
};
7171

7272
doc::CrateDoc {
7373
topmod: doc::ModDoc {
7474
item: doc::ItemDoc {
75-
name: option::get_or_default(attrs.name, doc.topmod.name()),
76-
.. doc.topmod.item
75+
name: option::get_or_default(copy attrs.name,
76+
doc.topmod.name()),
77+
.. copy doc.topmod.item
7778
},
78-
.. doc.topmod
79+
.. copy doc.topmod
7980
}
8081
}
8182
}
@@ -97,7 +98,7 @@ fn fold_item(
9798
let desc = if doc.id == ast::crate_node_id {
9899
// This is the top-level mod, use the crate attributes
99100
do astsrv::exec(srv) |ctxt| {
100-
attr_parser::parse_desc(ctxt.ast.node.attrs)
101+
attr_parser::parse_desc(copy ctxt.ast.node.attrs)
101102
}
102103
} else {
103104
parse_item_attrs(srv, doc.id, attr_parser::parse_desc)
@@ -115,8 +116,8 @@ fn parse_item_attrs<T:Owned>(
115116
+parse_attrs: fn~(+a: ~[ast::attribute]) -> T) -> T {
116117
do astsrv::exec(srv) |move parse_attrs, ctxt| {
117118
let attrs = match ctxt.ast_map.get(id) {
118-
ast_map::node_item(item, _) => item.attrs,
119-
ast_map::node_foreign_item(item, _, _) => item.attrs,
119+
ast_map::node_item(item, _) => copy item.attrs,
120+
ast_map::node_foreign_item(item, _, _) => copy item.attrs,
120121
_ => fail ~"parse_item_attrs: not an item"
121122
};
122123
parse_attrs(attrs)
@@ -164,18 +165,18 @@ fn fold_enum(
164165

165166
doc::EnumDoc {
166167
variants: do par::map(doc.variants) |variant| {
167-
let variant = *variant;
168-
let desc = do astsrv::exec(srv) |ctxt| {
168+
let variant = copy *variant;
169+
let desc = do astsrv::exec(srv) |ctxt, copy variant| {
169170
match ctxt.ast_map.get(doc_id) {
170171
ast_map::node_item(@ast::item {
171-
node: ast::item_enum(enum_definition, _), _
172+
node: ast::item_enum(ref enum_definition, _), _
172173
}, _) => {
173174
let ast_variant = option::get(
174175
vec::find(enum_definition.variants, |v| {
175176
to_str(v.node.name) == variant.name
176177
}));
177178

178-
attr_parser::parse_desc(ast_variant.node.attrs)
179+
attr_parser::parse_desc(copy ast_variant.node.attrs)
179180
}
180181
_ => fail fmt!("Enum variant %s has id that's not bound \
181182
to an enum item", variant.name)
@@ -212,7 +213,7 @@ fn fold_trait(
212213
let doc = fold::default_seq_fold_trait(fold, doc);
213214
214215
doc::TraitDoc {
215-
methods: merge_method_attrs(srv, doc.id(), doc.methods),
216+
methods: merge_method_attrs(srv, doc.id(), copy doc.methods),
216217
.. doc
217218
}
218219
}
@@ -227,25 +228,26 @@ fn merge_method_attrs(
227228
let attrs: ~[(~str, Option<~str>)] = do astsrv::exec(srv) |ctxt| {
228229
match ctxt.ast_map.get(item_id) {
229230
ast_map::node_item(@ast::item {
230-
node: ast::item_trait(_, _, methods), _
231+
node: ast::item_trait(_, _, ref methods), _
231232
}, _) => {
232-
vec::map(methods, |method| {
233-
match *method {
233+
vec::map(*methods, |method| {
234+
match copy *method {
234235
ast::required(ty_m) => {
235-
(to_str(ty_m.ident), attr_parser::parse_desc(ty_m.attrs))
236+
(to_str(ty_m.ident),
237+
attr_parser::parse_desc(copy ty_m.attrs))
236238
}
237239
ast::provided(m) => {
238-
(to_str(m.ident), attr_parser::parse_desc(m.attrs))
240+
(to_str(m.ident), attr_parser::parse_desc(copy m.attrs))
239241
}
240242
}
241243
})
242244
}
243245
ast_map::node_item(@ast::item {
244-
node: ast::item_impl(_, _, _, methods), _
246+
node: ast::item_impl(_, _, _, ref methods), _
245247
}, _) => {
246-
vec::map(methods, |method| {
248+
vec::map(*methods, |method| {
247249
(to_str(method.ident),
248-
attr_parser::parse_desc(method.attrs))
250+
attr_parser::parse_desc(copy method.attrs))
249251
})
250252
}
251253
_ => fail ~"unexpected item"
@@ -258,7 +260,7 @@ fn merge_method_attrs(
258260

259261
doc::MethodDoc {
260262
desc: desc,
261-
..*doc
263+
.. copy *doc
262264
}
263265
}
264266
}
@@ -288,7 +290,7 @@ fn fold_impl(
288290
let doc = fold::default_seq_fold_impl(fold, doc);
289291

290292
doc::ImplDoc {
291-
methods: merge_method_attrs(srv, doc.id(), doc.methods),
293+
methods: merge_method_attrs(srv, doc.id(), copy doc.methods),
292294
.. doc
293295
}
294296
}
@@ -318,7 +320,7 @@ mod test {
318320
use extract;
319321

320322
pub fn mk_doc(source: ~str) -> doc::Doc {
321-
do astsrv::from_str(source) |srv| {
323+
do astsrv::from_str(copy source) |srv| {
322324
let doc = extract::from_srv(srv, ~"");
323325
run(srv, doc)
324326
}

src/librustdoc/config.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ pub fn usage() {
9696

9797
pub fn default_config(input_crate: &Path) -> Config {
9898
Config {
99-
input_crate: *input_crate,
99+
input_crate: copy *input_crate,
100100
output_dir: Path("."),
101101
output_format: PandocHtml,
102102
output_style: DocPerMod,
@@ -156,35 +156,35 @@ fn config_from_opts(
156156
let output_dir = getopts::opt_maybe_str(matches, opt_output_dir());
157157
let output_dir = output_dir.map(|s| Path(*s));
158158
result::Ok(Config {
159-
output_dir: output_dir.get_or_default(config.output_dir),
159+
output_dir: output_dir.get_or_default(copy config.output_dir),
160160
.. config
161161
})
162162
};
163163
let result = do result::chain(result) |config| {
164164
let output_format = getopts::opt_maybe_str(
165165
matches, opt_output_format());
166-
do output_format.map_default(result::Ok(config))
166+
do output_format.map_default(result::Ok(copy config))
167167
|output_format| {
168168
do result::chain(parse_output_format(*output_format))
169169
|output_format| {
170170

171171
result::Ok(Config {
172172
output_format: output_format,
173-
.. config
173+
.. copy config
174174
})
175175
}
176176
}
177177
};
178178
let result = do result::chain(result) |config| {
179179
let output_style =
180180
getopts::opt_maybe_str(matches, opt_output_style());
181-
do output_style.map_default(result::Ok(config))
181+
do output_style.map_default(result::Ok(copy config))
182182
|output_style| {
183183
do result::chain(parse_output_style(*output_style))
184184
|output_style| {
185185
result::Ok(Config {
186186
output_style: output_style,
187-
.. config
187+
.. copy config
188188
})
189189
}
190190
}
@@ -197,7 +197,7 @@ fn config_from_opts(
197197
do result::chain(pandoc_cmd) |pandoc_cmd| {
198198
result::Ok(Config {
199199
pandoc_cmd: pandoc_cmd,
200-
.. config
200+
.. copy config
201201
})
202202
}
203203
};

src/librustdoc/desc_to_brief_pass.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ fn fold_trait(fold: &fold::Fold<()>, +doc: doc::TraitDoc) -> doc::TraitDoc {
6363
doc::TraitDoc {
6464
methods: par::map(doc.methods, |doc| doc::MethodDoc {
6565
brief: extract(doc.desc),
66-
.. *doc
66+
.. copy *doc
6767
}),
6868
.. doc
6969
}
@@ -75,7 +75,7 @@ fn fold_impl(fold: &fold::Fold<()>, +doc: doc::ImplDoc) -> doc::ImplDoc {
7575
doc::ImplDoc {
7676
methods: par::map(doc.methods, |doc| doc::MethodDoc {
7777
brief: extract(doc.desc),
78-
.. *doc
78+
.. copy *doc
7979
}),
8080
.. doc
8181
}
@@ -109,7 +109,7 @@ pub mod test {
109109
use extract;
110110

111111
pub fn mk_doc(source: ~str) -> doc::Doc {
112-
do astsrv::from_str(source) |srv| {
112+
do astsrv::from_str(copy source) |srv| {
113113
let doc = extract::from_srv(srv, ~"");
114114
let doc = (attr_pass::mk_pass().f)(srv, doc);
115115
run(srv, doc)
@@ -122,14 +122,14 @@ fn extract(desc: Option<~str>) -> Option<~str> {
122122
return None
123123
}
124124

125-
parse_desc(desc.get())
125+
parse_desc((copy desc).get())
126126
}
127127

128128
fn parse_desc(desc: ~str) -> Option<~str> {
129129

130130
const max_brief_len: uint = 120u;
131131

132-
match first_sentence(desc) {
132+
match first_sentence(copy desc) {
133133
Some(first_sentence) => {
134134
if str::len(first_sentence) <= max_brief_len {
135135
Some(first_sentence)
@@ -142,7 +142,7 @@ fn parse_desc(desc: ~str) -> Option<~str> {
142142
}
143143

144144
fn first_sentence(s: ~str) -> Option<~str> {
145-
let paras = paragraphs(s);
145+
let paras = paragraphs(copy s);
146146
if !paras.is_empty() {
147147
let first_para = vec::head(paras);
148148
Some(str::replace(first_sentence_(first_para), ~"\n", ~" "))
@@ -176,7 +176,7 @@ fn first_sentence_(s: ~str) -> ~str {
176176
if str::ends_with(s, ~".") {
177177
str::slice(s, 0u, str::len(s))
178178
} else {
179-
s
179+
copy s
180180
}
181181
}
182182
}
@@ -202,7 +202,7 @@ fn paragraphs(s: ~str) -> ~[~str] {
202202
whitespace_lines = 0;
203203

204204
accum = if str::is_empty(accum) {
205-
*line
205+
copy *line
206206
} else {
207207
accum + ~"\n" + *line
208208
}

0 commit comments

Comments
 (0)