From 415664181b04574a5dfa553a54efb4df7924c15f Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 19 Nov 2012 18:48:46 -0800 Subject: [PATCH] rustdoc: Begin removing legacy modes --- src/librustdoc/astsrv.rs | 2 +- src/librustdoc/attr_parser.rs | 10 +-- src/librustdoc/attr_pass.rs | 26 +++--- src/librustdoc/config.rs | 36 ++++---- src/librustdoc/desc_to_brief_pass.rs | 10 +-- src/librustdoc/extract.rs | 34 ++++---- src/librustdoc/fold.rs | 118 +++++++++++++------------- src/librustdoc/markdown_index_pass.rs | 18 ++-- src/librustdoc/markdown_pass.rs | 2 +- src/librustdoc/page_pass.rs | 18 ++-- src/librustdoc/parse.rs | 6 +- src/librustdoc/pass.rs | 10 +-- src/librustdoc/path_pass.rs | 10 +-- src/librustdoc/prune_hidden_pass.rs | 8 +- src/librustdoc/prune_private_pass.rs | 8 +- src/librustdoc/sectionalize_pass.rs | 10 +-- src/librustdoc/sort_pass.rs | 10 +-- src/librustdoc/text_pass.rs | 19 +++-- src/librustdoc/tystr_pass.rs | 32 +++---- 19 files changed, 197 insertions(+), 190 deletions(-) diff --git a/src/librustdoc/astsrv.rs b/src/librustdoc/astsrv.rs index 2f78351e545c..79e0deb77ce6 100644 --- a/src/librustdoc/astsrv.rs +++ b/src/librustdoc/astsrv.rs @@ -28,7 +28,7 @@ pub type Ctxt = { type SrvOwner = fn(srv: Srv) -> T; pub type CtxtHandler = fn~(ctxt: Ctxt) -> T; -type Parser = fn~(Session, ~str) -> @ast::crate; +type Parser = fn~(Session, +s: ~str) -> @ast::crate; enum Msg { HandleRequest(fn~(Ctxt)), diff --git a/src/librustdoc/attr_parser.rs b/src/librustdoc/attr_parser.rs index 5dbf18e87381..0dec45e02c53 100644 --- a/src/librustdoc/attr_parser.rs +++ b/src/librustdoc/attr_parser.rs @@ -17,7 +17,7 @@ pub type CrateAttrs = { mod test { #[legacy_exports]; - fn parse_attributes(source: ~str) -> ~[ast::attribute] { + fn parse_attributes(+source: ~str) -> ~[ast::attribute] { use syntax::parse; use parse::parser; use parse::attr::parser_attr; @@ -33,7 +33,7 @@ mod test { } fn doc_metas( - attrs: ~[ast::attribute] + +attrs: ~[ast::attribute] ) -> ~[@ast::meta_item] { let doc_attrs = attr::find_attrs_by_name(attrs, ~"doc"); @@ -44,7 +44,7 @@ fn doc_metas( return doc_metas; } -pub fn parse_crate(attrs: ~[ast::attribute]) -> CrateAttrs { +pub fn parse_crate(+attrs: ~[ast::attribute]) -> CrateAttrs { let link_metas = attr::find_linkage_metas(attrs); { @@ -76,7 +76,7 @@ fn should_not_extract_crate_name_if_no_name_value_in_link_attribute() { assert attrs.name == None; } -pub fn parse_desc(attrs: ~[ast::attribute]) -> Option<~str> { +pub fn parse_desc(+attrs: ~[ast::attribute]) -> Option<~str> { let doc_strs = do doc_metas(attrs).filter_map |meta| { attr::get_meta_item_value_str(*meta) }; @@ -103,7 +103,7 @@ fn parse_desc_should_parse_simple_doc_attributes() { assert attrs == Some(~"basic"); } -pub fn parse_hidden(attrs: ~[ast::attribute]) -> bool { +pub fn parse_hidden(+attrs: ~[ast::attribute]) -> bool { do doc_metas(attrs).find |meta| { match attr::get_meta_item_list(meta) { Some(metas) => { diff --git a/src/librustdoc/attr_pass.rs b/src/librustdoc/attr_pass.rs index 160836db6387..fd68c48a5a7a 100644 --- a/src/librustdoc/attr_pass.rs +++ b/src/librustdoc/attr_pass.rs @@ -21,7 +21,7 @@ pub fn mk_pass() -> Pass { fn run( srv: astsrv::Srv, - doc: doc::Doc + +doc: doc::Doc ) -> doc::Doc { let fold = fold::Fold({ fold_crate: fold_crate, @@ -31,12 +31,12 @@ fn run( fold_impl: fold_impl, .. *fold::default_any_fold(srv) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } fn fold_crate( - fold: fold::Fold, - doc: doc::CrateDoc + fold: &fold::Fold, + +doc: doc::CrateDoc ) -> doc::CrateDoc { let srv = fold.ctxt; @@ -65,8 +65,8 @@ fn should_replace_top_module_name_with_crate_name() { } fn fold_item( - fold: fold::Fold, - doc: doc::ItemDoc + fold: &fold::Fold, + +doc: doc::ItemDoc ) -> doc::ItemDoc { let srv = fold.ctxt; @@ -90,7 +90,7 @@ fn fold_item( fn parse_item_attrs( srv: astsrv::Srv, id: doc::AstId, - +parse_attrs: fn~(~[ast::attribute]) -> T) -> T { + +parse_attrs: fn~(+a: ~[ast::attribute]) -> T) -> T { do astsrv::exec(srv) |move parse_attrs, ctxt| { let attrs = match ctxt.ast_map.get(id) { ast_map::node_item(item, _) => item.attrs, @@ -132,8 +132,8 @@ fn should_extract_fn_attributes() { } fn fold_enum( - fold: fold::Fold, - doc: doc::EnumDoc + fold: &fold::Fold, + +doc: doc::EnumDoc ) -> doc::EnumDoc { let srv = fold.ctxt; @@ -183,8 +183,8 @@ fn should_extract_variant_docs() { } fn fold_trait( - fold: fold::Fold, - doc: doc::TraitDoc + fold: &fold::Fold, + +doc: doc::TraitDoc ) -> doc::TraitDoc { let srv = fold.ctxt; let doc = fold::default_seq_fold_trait(fold, doc); @@ -259,8 +259,8 @@ fn should_extract_trait_method_docs() { fn fold_impl( - fold: fold::Fold, - doc: doc::ImplDoc + fold: &fold::Fold, + +doc: doc::ImplDoc ) -> doc::ImplDoc { let srv = fold.ctxt; let doc = fold::default_seq_fold_impl(fold, doc); diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs index 19f0bf2a9eff..87f601ccc45a 100644 --- a/src/librustdoc/config.rs +++ b/src/librustdoc/config.rs @@ -1,5 +1,6 @@ use result::Result; use std::getopts; +use std::cell::Cell; /// The type of document to output pub enum OutputFormat { @@ -115,13 +116,13 @@ fn mock_program_output(_prog: &str, _args: &[~str]) -> { } } -fn parse_config(args: ~[~str]) -> Result { +fn parse_config(args: &[~str]) -> Result { parse_config_(args, run::program_output) } fn parse_config_( - args: ~[~str], - program_output: ProgramOutput + args: &[~str], + +program_output: ProgramOutput ) -> Result { let args = vec::tail(args); let opts = vec::unzip(opts()).first(); @@ -129,7 +130,7 @@ fn parse_config_( result::Ok(matches) => { if vec::len(matches.free) == 1u { let input_crate = Path(vec::head(matches.free)); - config_from_opts(&input_crate, matches, program_output) + config_from_opts(&input_crate, matches, move program_output) } else if vec::is_empty(matches.free) { result::Err(~"no crates specified") } else { @@ -144,8 +145,8 @@ fn parse_config_( fn config_from_opts( input_crate: &Path, - matches: getopts::Matches, - program_output: ProgramOutput + +matches: getopts::Matches, + +program_output: ProgramOutput ) -> Result { let config = default_config(input_crate); @@ -187,10 +188,11 @@ fn config_from_opts( } } }; + let program_output = Cell(move program_output); let result = do result::chain(result) |config| { let pandoc_cmd = getopts::opt_maybe_str(matches, opt_pandoc_cmd()); let pandoc_cmd = maybe_find_pandoc( - config, pandoc_cmd, program_output); + &config, pandoc_cmd, move program_output.take()); do result::chain(pandoc_cmd) |pandoc_cmd| { result::Ok({ pandoc_cmd: pandoc_cmd, @@ -201,16 +203,16 @@ fn config_from_opts( return result; } -fn parse_output_format(output_format: ~str) -> Result { - match output_format { +fn parse_output_format(output_format: &str) -> Result { + match output_format.to_str() { ~"markdown" => result::Ok(Markdown), ~"html" => result::Ok(PandocHtml), _ => result::Err(fmt!("unknown output format '%s'", output_format)) } } -fn parse_output_style(output_style: ~str) -> Result { - match output_style { +fn parse_output_style(output_style: &str) -> Result { + match output_style.to_str() { ~"doc-per-crate" => result::Ok(DocPerCrate), ~"doc-per-mod" => result::Ok(DocPerMod), _ => result::Err(fmt!("unknown output style '%s'", output_style)) @@ -218,9 +220,9 @@ fn parse_output_style(output_style: ~str) -> Result { } fn maybe_find_pandoc( - config: Config, - maybe_pandoc_cmd: Option<~str>, - program_output: ProgramOutput + config: &Config, + +maybe_pandoc_cmd: Option<~str>, + +program_output: ProgramOutput ) -> Result, ~str> { if config.output_format != PandocHtml { return result::Ok(maybe_pandoc_cmd); @@ -264,7 +266,7 @@ fn should_find_pandoc() { status: 0, out: ~"pandoc 1.8.2.1", err: ~"" } }; - let result = maybe_find_pandoc(config, None, mock_program_output); + let result = maybe_find_pandoc(&config, None, move mock_program_output); assert result == result::Ok(Some(~"pandoc")); } @@ -281,14 +283,14 @@ fn should_error_with_no_pandoc() { status: 1, out: ~"", err: ~"" } }; - let result = maybe_find_pandoc(config, None, mock_program_output); + let result = maybe_find_pandoc(&config, None, move mock_program_output); assert result == result::Err(~"couldn't find pandoc"); } #[cfg(test)] mod test { #[legacy_exports]; - fn parse_config(args: ~[~str]) -> Result { + fn parse_config(args: &[~str]) -> Result { parse_config_(args, mock_program_output) } } diff --git a/src/librustdoc/desc_to_brief_pass.rs b/src/librustdoc/desc_to_brief_pass.rs index bdcb3f026ec1..0fbdc0f7e5b7 100644 --- a/src/librustdoc/desc_to_brief_pass.rs +++ b/src/librustdoc/desc_to_brief_pass.rs @@ -16,7 +16,7 @@ pub fn mk_pass() -> Pass { fn run( _srv: astsrv::Srv, - doc: doc::Doc + +doc: doc::Doc ) -> doc::Doc { let fold = fold::Fold({ fold_item: fold_item, @@ -24,10 +24,10 @@ fn run( fold_impl: fold_impl, .. *fold::default_any_fold(()) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } -fn fold_item(fold: fold::Fold<()>, doc: doc::ItemDoc) -> doc::ItemDoc { +fn fold_item(fold: &fold::Fold<()>, +doc: doc::ItemDoc) -> doc::ItemDoc { let doc = fold::default_seq_fold_item(fold, doc); { @@ -36,7 +36,7 @@ fn fold_item(fold: fold::Fold<()>, doc: doc::ItemDoc) -> doc::ItemDoc { } } -fn fold_trait(fold: fold::Fold<()>, doc: doc::TraitDoc) -> doc::TraitDoc { +fn fold_trait(fold: &fold::Fold<()>, +doc: doc::TraitDoc) -> doc::TraitDoc { let doc =fold::default_seq_fold_trait(fold, doc); { @@ -48,7 +48,7 @@ fn fold_trait(fold: fold::Fold<()>, doc: doc::TraitDoc) -> doc::TraitDoc { } } -fn fold_impl(fold: fold::Fold<()>, doc: doc::ImplDoc) -> doc::ImplDoc { +fn fold_impl(fold: &fold::Fold<()>, +doc: doc::ImplDoc) -> doc::ImplDoc { let doc =fold::default_seq_fold_impl(fold, doc); { diff --git a/src/librustdoc/extract.rs b/src/librustdoc/extract.rs index 323c321d0e19..9111c6242c98 100644 --- a/src/librustdoc/extract.rs +++ b/src/librustdoc/extract.rs @@ -25,7 +25,7 @@ pub fn interner() -> @syntax::parse::token::ident_interner { pub fn from_srv( srv: astsrv::Srv, - default_name: ~str + +default_name: ~str ) -> doc::Doc { //! Use the AST service to create a document tree @@ -37,7 +37,7 @@ pub fn from_srv( pub fn extract( crate: @ast::crate, - default_name: ~str + +default_name: ~str ) -> doc::Doc { doc::Doc_({ pages: ~[ @@ -50,13 +50,13 @@ pub fn extract( fn top_moddoc_from_crate( crate: @ast::crate, - default_name: ~str + +default_name: ~str ) -> doc::ModDoc { moddoc_from_mod(mk_itemdoc(ast::crate_node_id, default_name), crate.node.module) } -fn mk_itemdoc(id: ast::node_id, name: ~str) -> doc::ItemDoc { +fn mk_itemdoc(id: ast::node_id, +name: ~str) -> doc::ItemDoc { { id: id, name: name, @@ -69,7 +69,7 @@ fn mk_itemdoc(id: ast::node_id, name: ~str) -> doc::ItemDoc { } fn moddoc_from_mod( - itemdoc: doc::ItemDoc, + +itemdoc: doc::ItemDoc, module_: ast::_mod ) -> doc::ModDoc { doc::ModDoc_({ @@ -130,7 +130,7 @@ fn moddoc_from_mod( } fn nmoddoc_from_mod( - itemdoc: doc::ItemDoc, + +itemdoc: doc::ItemDoc, module_: ast::foreign_mod ) -> doc::NmodDoc { let mut fns = ~[]; @@ -150,14 +150,14 @@ fn nmoddoc_from_mod( } } -fn fndoc_from_fn(itemdoc: doc::ItemDoc) -> doc::FnDoc { +fn fndoc_from_fn(+itemdoc: doc::ItemDoc) -> doc::FnDoc { { item: itemdoc, sig: None } } -fn constdoc_from_const(itemdoc: doc::ItemDoc) -> doc::ConstDoc { +fn constdoc_from_const(+itemdoc: doc::ItemDoc) -> doc::ConstDoc { { item: itemdoc, sig: None @@ -172,8 +172,8 @@ fn should_extract_const_name_and_id() { } fn enumdoc_from_enum( - itemdoc: doc::ItemDoc, - variants: ~[ast::variant] + +itemdoc: doc::ItemDoc, + +variants: ~[ast::variant] ) -> doc::EnumDoc { { item: itemdoc, @@ -182,7 +182,7 @@ fn enumdoc_from_enum( } fn variantdocs_from_variants( - variants: ~[ast::variant] + +variants: ~[ast::variant] ) -> ~[doc::VariantDoc] { vec::map(variants, variantdoc_from_variant) } @@ -210,8 +210,8 @@ fn should_extract_enum_variants() { } fn traitdoc_from_trait( - itemdoc: doc::ItemDoc, - methods: ~[ast::trait_method] + +itemdoc: doc::ItemDoc, + +methods: ~[ast::trait_method] ) -> doc::TraitDoc { { item: itemdoc, @@ -255,7 +255,7 @@ fn should_extract_trait_methods() { } fn impldoc_from_impl( - itemdoc: doc::ItemDoc, + +itemdoc: doc::ItemDoc, methods: ~[@ast::method] ) -> doc::ImplDoc { { @@ -282,7 +282,7 @@ fn should_extract_impl_methods() { } fn tydoc_from_ty( - itemdoc: doc::ItemDoc + +itemdoc: doc::ItemDoc ) -> doc::TyDoc { { item: itemdoc, @@ -297,7 +297,7 @@ fn should_extract_tys() { } fn structdoc_from_struct( - itemdoc: doc::ItemDoc, + +itemdoc: doc::ItemDoc, struct_def: @ast::struct_def ) -> doc::StructDoc { { @@ -328,7 +328,7 @@ fn should_extract_struct_fields() { mod test { #[legacy_exports]; - fn mk_doc(source: ~str) -> doc::Doc { + fn mk_doc(+source: ~str) -> doc::Doc { let ast = parse::from_str(source); extract(ast, ~"") } diff --git a/src/librustdoc/fold.rs b/src/librustdoc/fold.rs index f30baacb1f44..7722379c330f 100644 --- a/src/librustdoc/fold.rs +++ b/src/librustdoc/fold.rs @@ -1,18 +1,18 @@ pub enum Fold = Fold_; -type FoldDoc = fn~(fold: Fold, doc: doc::Doc) -> doc::Doc; -type FoldCrate = fn~(fold: Fold, doc: doc::CrateDoc) -> doc::CrateDoc; -type FoldItem = fn~(fold: Fold, doc: doc::ItemDoc) -> doc::ItemDoc; -type FoldMod = fn~(fold: Fold, doc: doc::ModDoc) -> doc::ModDoc; -type FoldNmod = fn~(fold: Fold, doc: doc::NmodDoc) -> doc::NmodDoc; -type FoldFn = fn~(fold: Fold, doc: doc::FnDoc) -> doc::FnDoc; -type FoldConst = fn~(fold: Fold, doc: doc::ConstDoc) -> doc::ConstDoc; -type FoldEnum = fn~(fold: Fold, doc: doc::EnumDoc) -> doc::EnumDoc; -type FoldTrait = fn~(fold: Fold, doc: doc::TraitDoc) -> doc::TraitDoc; -type FoldImpl = fn~(fold: Fold, doc: doc::ImplDoc) -> doc::ImplDoc; -type FoldType = fn~(fold: Fold, doc: doc::TyDoc) -> doc::TyDoc; -type FoldStruct = fn~(fold: Fold, - doc: doc::StructDoc) -> doc::StructDoc; +type FoldDoc = fn~(fold: &Fold, +doc: doc::Doc) -> doc::Doc; +type FoldCrate = fn~(fold: &Fold, +doc: doc::CrateDoc) -> doc::CrateDoc; +type FoldItem = fn~(fold: &Fold, +doc: doc::ItemDoc) -> doc::ItemDoc; +type FoldMod = fn~(fold: &Fold, +doc: doc::ModDoc) -> doc::ModDoc; +type FoldNmod = fn~(fold: &Fold, +doc: doc::NmodDoc) -> doc::NmodDoc; +type FoldFn = fn~(fold: &Fold, +doc: doc::FnDoc) -> doc::FnDoc; +type FoldConst = fn~(fold: &Fold, +doc: doc::ConstDoc) -> doc::ConstDoc; +type FoldEnum = fn~(fold: &Fold, +doc: doc::EnumDoc) -> doc::EnumDoc; +type FoldTrait = fn~(fold: &Fold, +doc: doc::TraitDoc) -> doc::TraitDoc; +type FoldImpl = fn~(fold: &Fold, +doc: doc::ImplDoc) -> doc::ImplDoc; +type FoldType = fn~(fold: &Fold, +doc: doc::TyDoc) -> doc::TyDoc; +type FoldStruct = fn~(fold: &Fold, + +doc: doc::StructDoc) -> doc::StructDoc; type Fold_ = { ctxt: T, @@ -119,7 +119,7 @@ pub fn default_par_fold(ctxt: T) -> Fold { ) } -pub fn default_seq_fold_doc(fold: Fold, doc: doc::Doc) -> doc::Doc { +pub fn default_seq_fold_doc(fold: &Fold, +doc: doc::Doc) -> doc::Doc { doc::Doc_({ pages: do vec::map(doc.pages) |page| { match *page { @@ -136,8 +136,8 @@ pub fn default_seq_fold_doc(fold: Fold, doc: doc::Doc) -> doc::Doc { } pub fn default_seq_fold_crate( - fold: Fold, - doc: doc::CrateDoc + fold: &Fold, + +doc: doc::CrateDoc ) -> doc::CrateDoc { { topmod: fold.fold_mod(fold, doc.topmod) @@ -145,28 +145,29 @@ pub fn default_seq_fold_crate( } pub fn default_seq_fold_item( - _fold: Fold, - doc: doc::ItemDoc + _fold: &Fold, + +doc: doc::ItemDoc ) -> doc::ItemDoc { doc } pub fn default_any_fold_mod( - fold: Fold, - doc: doc::ModDoc + fold: &Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { + let fold_copy = copy *fold; doc::ModDoc_({ item: fold.fold_item(fold, doc.item), - items: par::map(doc.items, |ItemTag, copy fold| { - fold_ItemTag(fold, *ItemTag) + items: par::map(doc.items, |ItemTag, move fold_copy| { + fold_ItemTag(&fold_copy, *ItemTag) }), .. *doc }) } pub fn default_seq_fold_mod( - fold: Fold, - doc: doc::ModDoc + fold: &Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { doc::ModDoc_({ item: fold.fold_item(fold, doc.item), @@ -178,34 +179,36 @@ pub fn default_seq_fold_mod( } pub fn default_par_fold_mod( - fold: Fold, - doc: doc::ModDoc + fold: &Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { + let fold_copy = copy *fold; doc::ModDoc_({ item: fold.fold_item(fold, doc.item), - items: par::map(doc.items, |ItemTag, copy fold| { - fold_ItemTag(fold, *ItemTag) + items: par::map(doc.items, |ItemTag, move fold_copy| { + fold_ItemTag(&fold_copy, *ItemTag) }), .. *doc }) } pub fn default_any_fold_nmod( - fold: Fold, - doc: doc::NmodDoc + fold: &Fold, + +doc: doc::NmodDoc ) -> doc::NmodDoc { + let fold_copy = copy *fold; { item: fold.fold_item(fold, doc.item), - fns: par::map(doc.fns, |FnDoc, copy fold| { - fold.fold_fn(fold, *FnDoc) + fns: par::map(doc.fns, |FnDoc, move fold_copy| { + fold_copy.fold_fn(&fold_copy, *FnDoc) }), .. doc } } pub fn default_seq_fold_nmod( - fold: Fold, - doc: doc::NmodDoc + fold: &Fold, + +doc: doc::NmodDoc ) -> doc::NmodDoc { { item: fold.fold_item(fold, doc.item), @@ -217,19 +220,20 @@ pub fn default_seq_fold_nmod( } pub fn default_par_fold_nmod( - fold: Fold, - doc: doc::NmodDoc + fold: &Fold, + +doc: doc::NmodDoc ) -> doc::NmodDoc { + let fold_copy = copy *fold; { item: fold.fold_item(fold, doc.item), - fns: par::map(doc.fns, |FnDoc, copy fold| { - fold.fold_fn(fold, *FnDoc) + fns: par::map(doc.fns, |FnDoc, move fold_copy| { + fold_copy.fold_fn(&fold_copy, *FnDoc) }), .. doc } } -pub fn fold_ItemTag(fold: Fold, doc: doc::ItemTag) -> doc::ItemTag { +pub fn fold_ItemTag(fold: &Fold, +doc: doc::ItemTag) -> doc::ItemTag { match doc { doc::ModTag(ModDoc) => { doc::ModTag(fold.fold_mod(fold, ModDoc)) @@ -262,8 +266,8 @@ pub fn fold_ItemTag(fold: Fold, doc: doc::ItemTag) -> doc::ItemTag { } pub fn default_seq_fold_fn( - fold: Fold, - doc: doc::FnDoc + fold: &Fold, + +doc: doc::FnDoc ) -> doc::FnDoc { { item: fold.fold_item(fold, doc.item), @@ -272,8 +276,8 @@ pub fn default_seq_fold_fn( } pub fn default_seq_fold_const( - fold: Fold, - doc: doc::ConstDoc + fold: &Fold, + +doc: doc::ConstDoc ) -> doc::ConstDoc { { item: fold.fold_item(fold, doc.item), @@ -282,8 +286,8 @@ pub fn default_seq_fold_const( } pub fn default_seq_fold_enum( - fold: Fold, - doc: doc::EnumDoc + fold: &Fold, + +doc: doc::EnumDoc ) -> doc::EnumDoc { { item: fold.fold_item(fold, doc.item), @@ -292,8 +296,8 @@ pub fn default_seq_fold_enum( } pub fn default_seq_fold_trait( - fold: Fold, - doc: doc::TraitDoc + fold: &Fold, + +doc: doc::TraitDoc ) -> doc::TraitDoc { { item: fold.fold_item(fold, doc.item), @@ -302,8 +306,8 @@ pub fn default_seq_fold_trait( } pub fn default_seq_fold_impl( - fold: Fold, - doc: doc::ImplDoc + fold: &Fold, + +doc: doc::ImplDoc ) -> doc::ImplDoc { { item: fold.fold_item(fold, doc.item), @@ -312,8 +316,8 @@ pub fn default_seq_fold_impl( } pub fn default_seq_fold_type( - fold: Fold, - doc: doc::TyDoc + fold: &Fold, + +doc: doc::TyDoc ) -> doc::TyDoc { { item: fold.fold_item(fold, doc.item), @@ -322,8 +326,8 @@ pub fn default_seq_fold_type( } pub fn default_seq_fold_struct( - fold: Fold, - doc: doc::StructDoc + fold: &Fold, + +doc: doc::StructDoc ) -> doc::StructDoc { { item: fold.fold_item(fold, doc.item), @@ -337,7 +341,7 @@ fn default_fold_should_produce_same_doc() { let ast = parse::from_str(source); let doc = extract::extract(ast, ~""); let fld = default_seq_fold(()); - let folded = fld.fold_doc(fld, doc); + let folded = fld.fold_doc(&fld, doc); assert doc == folded; } @@ -347,7 +351,7 @@ fn default_fold_should_produce_same_consts() { let ast = parse::from_str(source); let doc = extract::extract(ast, ~""); let fld = default_seq_fold(()); - let folded = fld.fold_doc(fld, doc); + let folded = fld.fold_doc(&fld, doc); assert doc == folded; } @@ -357,7 +361,7 @@ fn default_fold_should_produce_same_enums() { let ast = parse::from_str(source); let doc = extract::extract(ast, ~""); let fld = default_seq_fold(()); - let folded = fld.fold_doc(fld, doc); + let folded = fld.fold_doc(&fld, doc); assert doc == folded; } @@ -367,6 +371,6 @@ fn default_parallel_fold_should_produce_same_doc() { let ast = parse::from_str(source); let doc = extract::extract(ast, ~""); let fld = default_par_fold(()); - let folded = fld.fold_doc(fld, doc); + let folded = fld.fold_doc(&fld, doc); assert doc == folded; } diff --git a/src/librustdoc/markdown_index_pass.rs b/src/librustdoc/markdown_index_pass.rs index d04986ea4de8..916393c0ff60 100644 --- a/src/librustdoc/markdown_index_pass.rs +++ b/src/librustdoc/markdown_index_pass.rs @@ -2,10 +2,10 @@ use doc::ItemUtils; -pub fn mk_pass(config: config::Config) -> Pass { +pub fn mk_pass(+config: config::Config) -> Pass { { name: ~"markdown_index", - f: fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { + f: fn~(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { run(srv, doc, config) } } @@ -13,20 +13,20 @@ pub fn mk_pass(config: config::Config) -> Pass { fn run( _srv: astsrv::Srv, - doc: doc::Doc, - config: config::Config + +doc: doc::Doc, + +config: config::Config ) -> doc::Doc { let fold = fold::Fold({ fold_mod: fold_mod, fold_nmod: fold_nmod, .. *fold::default_any_fold(config) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } fn fold_mod( - fold: fold::Fold, - doc: doc::ModDoc + fold: &fold::Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { let doc = fold::default_any_fold_mod(fold, doc); @@ -38,8 +38,8 @@ fn fold_mod( } fn fold_nmod( - fold: fold::Fold, - doc: doc::NmodDoc + fold: &fold::Fold, + +doc: doc::NmodDoc ) -> doc::NmodDoc { let doc = fold::default_any_fold_nmod(fold, doc); diff --git a/src/librustdoc/markdown_pass.rs b/src/librustdoc/markdown_pass.rs index 71a38b532584..845bb7f52cea 100644 --- a/src/librustdoc/markdown_pass.rs +++ b/src/librustdoc/markdown_pass.rs @@ -7,7 +7,7 @@ use markdown_writer::WriterFactory; pub fn mk_pass(+writer_factory: WriterFactory) -> Pass { let f = fn~(move writer_factory, - srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { + srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { run(srv, doc, copy writer_factory) }; diff --git a/src/librustdoc/page_pass.rs b/src/librustdoc/page_pass.rs index 3e690c834637..67323a3d4c34 100644 --- a/src/librustdoc/page_pass.rs +++ b/src/librustdoc/page_pass.rs @@ -11,7 +11,7 @@ use syntax::ast; pub fn mk_pass(output_style: config::OutputStyle) -> Pass { { name: ~"page", - f: fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { + f: fn~(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { run(srv, doc, output_style) } } @@ -19,7 +19,7 @@ pub fn mk_pass(output_style: config::OutputStyle) -> Pass { fn run( _srv: astsrv::Srv, - doc: doc::Doc, + +doc: doc::Doc, output_style: config::OutputStyle ) -> doc::Doc { @@ -61,14 +61,14 @@ fn find_pages(doc: doc::Doc, page_chan: PageChan) { fold_nmod: fold_nmod, .. *fold::default_any_fold(page_chan) }); - fold.fold_doc(fold, doc); + fold.fold_doc(&fold, doc); comm::send(page_chan, None); } fn fold_crate( - fold: fold::Fold, - doc: doc::CrateDoc + fold: &fold::Fold, + +doc: doc::CrateDoc ) -> doc::CrateDoc { let doc = fold::default_seq_fold_crate(fold, doc); @@ -84,8 +84,8 @@ fn fold_crate( } fn fold_mod( - fold: fold::Fold, - doc: doc::ModDoc + fold: &fold::Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { let doc = fold::default_any_fold_mod(fold, doc); @@ -114,8 +114,8 @@ fn strip_mod(doc: doc::ModDoc) -> doc::ModDoc { } fn fold_nmod( - fold: fold::Fold, - doc: doc::NmodDoc + fold: &fold::Fold, + +doc: doc::NmodDoc ) -> doc::NmodDoc { let doc = fold::default_seq_fold_nmod(fold, doc); let page = doc::ItemPage(doc::NmodTag(doc)); diff --git a/src/librustdoc/parse.rs b/src/librustdoc/parse.rs index 0f1d82b3737e..768f445de3b2 100644 --- a/src/librustdoc/parse.rs +++ b/src/librustdoc/parse.rs @@ -13,7 +13,7 @@ pub fn from_file(file: &Path) -> @ast::crate { file, ~[], parse::new_parse_sess(None)) } -pub fn from_str(source: ~str) -> @ast::crate { +pub fn from_str(+source: ~str) -> @ast::crate { parse::parse_crate_from_source_str( ~"-", @source, ~[], parse::new_parse_sess(None)) } @@ -23,11 +23,11 @@ pub fn from_file_sess(sess: session::Session, file: &Path) -> @ast::crate { file, cfg(sess, file_input(*file)), sess.parse_sess) } -pub fn from_str_sess(sess: session::Session, source: ~str) -> @ast::crate { +pub fn from_str_sess(sess: session::Session, +source: ~str) -> @ast::crate { parse::parse_crate_from_source_str( ~"-", @source, cfg(sess, str_input(source)), sess.parse_sess) } -fn cfg(sess: session::Session, input: driver::input) -> ast::crate_cfg { +fn cfg(sess: session::Session, +input: driver::input) -> ast::crate_cfg { driver::default_configuration(sess, ~"rustdoc", input) } diff --git a/src/librustdoc/pass.rs b/src/librustdoc/pass.rs index 0ceccda209d9..68ea4774fb51 100644 --- a/src/librustdoc/pass.rs +++ b/src/librustdoc/pass.rs @@ -1,13 +1,13 @@ /// A single operation on the document model pub type Pass = { name: ~str, - f: fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc + f: fn~(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc }; pub fn run_passes( srv: astsrv::Srv, - doc: doc::Doc, - passes: ~[Pass] + +doc: doc::Doc, + +passes: ~[Pass] ) -> doc::Doc { let mut passno = 0; do vec::foldl(doc, passes) |doc, pass| { @@ -24,7 +24,7 @@ pub fn run_passes( fn test_run_passes() { fn pass1( _srv: astsrv::Srv, - doc: doc::Doc + +doc: doc::Doc ) -> doc::Doc { doc::Doc_({ pages: ~[ @@ -43,7 +43,7 @@ fn test_run_passes() { } fn pass2( _srv: astsrv::Srv, - doc: doc::Doc + +doc: doc::Doc ) -> doc::Doc { doc::Doc_({ pages: ~[ diff --git a/src/librustdoc/path_pass.rs b/src/librustdoc/path_pass.rs index 11fba49026ee..9b76efc756e2 100644 --- a/src/librustdoc/path_pass.rs +++ b/src/librustdoc/path_pass.rs @@ -16,7 +16,7 @@ type Ctxt = { }; #[allow(non_implicitly_copyable_typarams)] -fn run(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { +fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { let ctxt = { srv: srv, mut path: ~[] @@ -27,10 +27,10 @@ fn run(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { fold_nmod: fold_nmod, .. *fold::default_any_fold(ctxt) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } -fn fold_item(fold: fold::Fold, doc: doc::ItemDoc) -> doc::ItemDoc { +fn fold_item(fold: &fold::Fold, +doc: doc::ItemDoc) -> doc::ItemDoc { { path: fold.ctxt.path, .. doc @@ -38,7 +38,7 @@ fn fold_item(fold: fold::Fold, doc: doc::ItemDoc) -> doc::ItemDoc { } #[allow(non_implicitly_copyable_typarams)] -fn fold_mod(fold: fold::Fold, doc: doc::ModDoc) -> doc::ModDoc { +fn fold_mod(fold: &fold::Fold, +doc: doc::ModDoc) -> doc::ModDoc { let is_topmod = doc.id() == ast::crate_node_id; if !is_topmod { fold.ctxt.path.push(doc.name()); } @@ -51,7 +51,7 @@ fn fold_mod(fold: fold::Fold, doc: doc::ModDoc) -> doc::ModDoc { }) } -fn fold_nmod(fold: fold::Fold, doc: doc::NmodDoc) -> doc::NmodDoc { +fn fold_nmod(fold: &fold::Fold, +doc: doc::NmodDoc) -> doc::NmodDoc { fold.ctxt.path.push(doc.name()); let doc = fold::default_seq_fold_nmod(fold, doc); fold.ctxt.path.pop(); diff --git a/src/librustdoc/prune_hidden_pass.rs b/src/librustdoc/prune_hidden_pass.rs index 5a62efa67205..c86dbcba7362 100644 --- a/src/librustdoc/prune_hidden_pass.rs +++ b/src/librustdoc/prune_hidden_pass.rs @@ -10,17 +10,17 @@ pub fn mk_pass() -> Pass { } } -fn run(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { +fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { let fold = fold::Fold({ fold_mod: fold_mod, .. *fold::default_any_fold(srv) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } fn fold_mod( - fold: fold::Fold, - doc: doc::ModDoc + fold: &fold::Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { let doc = fold::default_any_fold_mod(fold, doc); diff --git a/src/librustdoc/prune_private_pass.rs b/src/librustdoc/prune_private_pass.rs index 0f97dc081370..ee50dfd360b3 100644 --- a/src/librustdoc/prune_private_pass.rs +++ b/src/librustdoc/prune_private_pass.rs @@ -11,17 +11,17 @@ fn mk_pass() -> Pass { } } -fn run(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { +fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { let fold = fold::Fold({ fold_mod: fold_mod, .. *fold::default_any_fold(srv) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } fn fold_mod( - fold: fold::Fold, - doc: doc::ModDoc + fold: &fold::Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { let doc = fold::default_any_fold_mod(fold, doc); diff --git a/src/librustdoc/sectionalize_pass.rs b/src/librustdoc/sectionalize_pass.rs index a530b4b5c8f1..864522f419a2 100644 --- a/src/librustdoc/sectionalize_pass.rs +++ b/src/librustdoc/sectionalize_pass.rs @@ -9,17 +9,17 @@ pub fn mk_pass() -> Pass { } } -fn run(_srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { +fn run(_srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { let fold = fold::Fold({ fold_item: fold_item, fold_trait: fold_trait, fold_impl: fold_impl, .. *fold::default_any_fold(()) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } -fn fold_item(fold: fold::Fold<()>, doc: doc::ItemDoc) -> doc::ItemDoc { +fn fold_item(fold: &fold::Fold<()>, +doc: doc::ItemDoc) -> doc::ItemDoc { let doc = fold::default_seq_fold_item(fold, doc); let (desc, sections) = sectionalize(doc.desc); @@ -30,7 +30,7 @@ fn fold_item(fold: fold::Fold<()>, doc: doc::ItemDoc) -> doc::ItemDoc { } } -fn fold_trait(fold: fold::Fold<()>, doc: doc::TraitDoc) -> doc::TraitDoc { +fn fold_trait(fold: &fold::Fold<()>, +doc: doc::TraitDoc) -> doc::TraitDoc { let doc = fold::default_seq_fold_trait(fold, doc); { @@ -47,7 +47,7 @@ fn fold_trait(fold: fold::Fold<()>, doc: doc::TraitDoc) -> doc::TraitDoc { } } -fn fold_impl(fold: fold::Fold<()>, doc: doc::ImplDoc) -> doc::ImplDoc { +fn fold_impl(fold: &fold::Fold<()>, +doc: doc::ImplDoc) -> doc::ImplDoc { let doc = fold::default_seq_fold_impl(fold, doc); { diff --git a/src/librustdoc/sort_pass.rs b/src/librustdoc/sort_pass.rs index ea86f4e10c82..53607ba46d0b 100644 --- a/src/librustdoc/sort_pass.rs +++ b/src/librustdoc/sort_pass.rs @@ -8,7 +8,7 @@ pub type ItemLtEq = pure fn~(v1: &doc::ItemTag, v2: &doc::ItemTag) -> bool; pub fn mk_pass(name: ~str, +lteq: ItemLtEq) -> Pass { { name: name, - f: fn~(move lteq, srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { + f: fn~(move lteq, srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { run(srv, doc, lteq) } } @@ -17,20 +17,20 @@ pub fn mk_pass(name: ~str, +lteq: ItemLtEq) -> Pass { #[allow(non_implicitly_copyable_typarams)] fn run( _srv: astsrv::Srv, - doc: doc::Doc, + +doc: doc::Doc, lteq: ItemLtEq ) -> doc::Doc { let fold = fold::Fold({ fold_mod: fold_mod, .. *fold::default_any_fold(lteq) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } #[allow(non_implicitly_copyable_typarams)] fn fold_mod( - fold: fold::Fold, - doc: doc::ModDoc + fold: &fold::Fold, + +doc: doc::ModDoc ) -> doc::ModDoc { let doc = fold::default_any_fold_mod(fold, doc); doc::ModDoc_({ diff --git a/src/librustdoc/text_pass.rs b/src/librustdoc/text_pass.rs index 9b2eb924ae40..79466c4ec1ea 100644 --- a/src/librustdoc/text_pass.rs +++ b/src/librustdoc/text_pass.rs @@ -5,7 +5,7 @@ use doc::ItemUtils; pub fn mk_pass(name: ~str, +op: fn~(~str) -> ~str) -> Pass { { name: name, - f: fn~(move op, srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc { + f: fn~(move op, srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { run(srv, doc, op) } } @@ -16,7 +16,7 @@ type Op = fn~(~str) -> ~str; #[allow(non_implicitly_copyable_typarams)] fn run( _srv: astsrv::Srv, - doc: doc::Doc, + +doc: doc::Doc, op: Op ) -> doc::Doc { let fold = fold::Fold({ @@ -26,14 +26,14 @@ fn run( fold_impl: fold_impl, .. *fold::default_any_fold(op) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } fn maybe_apply_op(op: Op, s: Option<~str>) -> Option<~str> { s.map(|s| op(*s) ) } -fn fold_item(fold: fold::Fold, doc: doc::ItemDoc) -> doc::ItemDoc { +fn fold_item(fold: &fold::Fold, +doc: doc::ItemDoc) -> doc::ItemDoc { let doc = fold::default_seq_fold_item(fold, doc); { @@ -51,13 +51,14 @@ fn apply_to_sections(op: Op, sections: ~[doc::Section]) -> ~[doc::Section] { }) } -fn fold_enum(fold: fold::Fold, doc: doc::EnumDoc) -> doc::EnumDoc { +fn fold_enum(fold: &fold::Fold, +doc: doc::EnumDoc) -> doc::EnumDoc { let doc = fold::default_seq_fold_enum(fold, doc); + let fold_copy = copy *fold; { - variants: do par::map(doc.variants) |variant, copy fold| { + variants: do par::map(doc.variants) |variant, copy fold_copy| { { - desc: maybe_apply_op(fold.ctxt, variant.desc), + desc: maybe_apply_op(fold_copy.ctxt, variant.desc), .. *variant } }, @@ -65,7 +66,7 @@ fn fold_enum(fold: fold::Fold, doc: doc::EnumDoc) -> doc::EnumDoc { } } -fn fold_trait(fold: fold::Fold, doc: doc::TraitDoc) -> doc::TraitDoc { +fn fold_trait(fold: &fold::Fold, +doc: doc::TraitDoc) -> doc::TraitDoc { let doc = fold::default_seq_fold_trait(fold, doc); { @@ -85,7 +86,7 @@ fn apply_to_methods(op: Op, docs: ~[doc::MethodDoc]) -> ~[doc::MethodDoc] { } } -fn fold_impl(fold: fold::Fold, doc: doc::ImplDoc) -> doc::ImplDoc { +fn fold_impl(fold: &fold::Fold, +doc: doc::ImplDoc) -> doc::ImplDoc { let doc = fold::default_seq_fold_impl(fold, doc); { diff --git a/src/librustdoc/tystr_pass.rs b/src/librustdoc/tystr_pass.rs index c00486cda213..791caa44d814 100644 --- a/src/librustdoc/tystr_pass.rs +++ b/src/librustdoc/tystr_pass.rs @@ -16,7 +16,7 @@ pub fn mk_pass() -> Pass { fn run( srv: astsrv::Srv, - doc: doc::Doc + +doc: doc::Doc ) -> doc::Doc { let fold = fold::Fold({ fold_fn: fold_fn, @@ -28,12 +28,12 @@ fn run( fold_struct: fold_struct, .. *fold::default_any_fold(srv) }); - fold.fold_doc(fold, doc) + fold.fold_doc(&fold, doc) } fn fold_fn( - fold: fold::Fold, - doc: doc::FnDoc + fold: &fold::Fold, + +doc: doc::FnDoc ) -> doc::FnDoc { let srv = fold.ctxt; @@ -75,8 +75,8 @@ fn should_add_foreign_fn_sig() { } fn fold_const( - fold: fold::Fold, - doc: doc::ConstDoc + fold: &fold::Fold, + +doc: doc::ConstDoc ) -> doc::ConstDoc { let srv = fold.ctxt; @@ -102,8 +102,8 @@ fn should_add_const_types() { } fn fold_enum( - fold: fold::Fold, - doc: doc::EnumDoc + fold: &fold::Fold, + +doc: doc::EnumDoc ) -> doc::EnumDoc { let doc_id = doc.id(); let srv = fold.ctxt; @@ -143,8 +143,8 @@ fn should_add_variant_sigs() { } fn fold_trait( - fold: fold::Fold, - doc: doc::TraitDoc + fold: &fold::Fold, + +doc: doc::TraitDoc ) -> doc::TraitDoc { { methods: merge_methods(fold.ctxt, doc.id(), doc.methods), @@ -234,8 +234,8 @@ fn should_add_trait_method_sigs() { } fn fold_impl( - fold: fold::Fold, - doc: doc::ImplDoc + fold: &fold::Fold, + +doc: doc::ImplDoc ) -> doc::ImplDoc { let srv = fold.ctxt; @@ -289,8 +289,8 @@ fn should_add_impl_method_sigs() { } fn fold_type( - fold: fold::Fold, - doc: doc::TyDoc + fold: &fold::Fold, + +doc: doc::TyDoc ) -> doc::TyDoc { let srv = fold.ctxt; @@ -323,8 +323,8 @@ fn should_add_type_signatures() { } fn fold_struct( - fold: fold::Fold, - doc: doc::StructDoc + fold: &fold::Fold, + +doc: doc::StructDoc ) -> doc::StructDoc { let srv = fold.ctxt;