rustdoc: Begin removing legacy modes

This commit is contained in:
Brian Anderson 2012-11-19 18:48:46 -08:00
parent 145e02347e
commit 415664181b
19 changed files with 197 additions and 190 deletions

View file

@ -28,7 +28,7 @@ pub type Ctxt = {
type SrvOwner<T> = fn(srv: Srv) -> T;
pub type CtxtHandler<T> = fn~(ctxt: Ctxt) -> T;
type Parser = fn~(Session, ~str) -> @ast::crate;
type Parser = fn~(Session, +s: ~str) -> @ast::crate;
enum Msg {
HandleRequest(fn~(Ctxt)),

View file

@ -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) => {

View file

@ -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<astsrv::Srv>,
doc: doc::CrateDoc
fold: &fold::Fold<astsrv::Srv>,
+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<astsrv::Srv>,
doc: doc::ItemDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ItemDoc
) -> doc::ItemDoc {
let srv = fold.ctxt;
@ -90,7 +90,7 @@ fn fold_item(
fn parse_item_attrs<T:Send>(
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<astsrv::Srv>,
doc: doc::EnumDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::EnumDoc
) -> doc::EnumDoc {
let srv = fold.ctxt;
@ -183,8 +183,8 @@ fn should_extract_variant_docs() {
}
fn fold_trait(
fold: fold::Fold<astsrv::Srv>,
doc: doc::TraitDoc
fold: &fold::Fold<astsrv::Srv>,
+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<astsrv::Srv>,
doc: doc::ImplDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ImplDoc
) -> doc::ImplDoc {
let srv = fold.ctxt;
let doc = fold::default_seq_fold_impl(fold, doc);

View file

@ -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<Config, ~str> {
fn parse_config(args: &[~str]) -> Result<Config, ~str> {
parse_config_(args, run::program_output)
}
fn parse_config_(
args: ~[~str],
program_output: ProgramOutput
args: &[~str],
+program_output: ProgramOutput
) -> Result<Config, ~str> {
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<Config, ~str> {
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<OutputFormat, ~str> {
match output_format {
fn parse_output_format(output_format: &str) -> Result<OutputFormat, ~str> {
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<OutputStyle, ~str> {
match output_style {
fn parse_output_style(output_style: &str) -> Result<OutputStyle, ~str> {
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<OutputStyle, ~str> {
}
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<Option<~str>, ~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<Config, ~str> {
fn parse_config(args: &[~str]) -> Result<Config, ~str> {
parse_config_(args, mock_program_output)
}
}

View file

@ -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);
{

View file

@ -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, ~"")
}

View file

@ -1,18 +1,18 @@
pub enum Fold<T> = Fold_<T>;
type FoldDoc<T> = fn~(fold: Fold<T>, doc: doc::Doc) -> doc::Doc;
type FoldCrate<T> = fn~(fold: Fold<T>, doc: doc::CrateDoc) -> doc::CrateDoc;
type FoldItem<T> = fn~(fold: Fold<T>, doc: doc::ItemDoc) -> doc::ItemDoc;
type FoldMod<T> = fn~(fold: Fold<T>, doc: doc::ModDoc) -> doc::ModDoc;
type FoldNmod<T> = fn~(fold: Fold<T>, doc: doc::NmodDoc) -> doc::NmodDoc;
type FoldFn<T> = fn~(fold: Fold<T>, doc: doc::FnDoc) -> doc::FnDoc;
type FoldConst<T> = fn~(fold: Fold<T>, doc: doc::ConstDoc) -> doc::ConstDoc;
type FoldEnum<T> = fn~(fold: Fold<T>, doc: doc::EnumDoc) -> doc::EnumDoc;
type FoldTrait<T> = fn~(fold: Fold<T>, doc: doc::TraitDoc) -> doc::TraitDoc;
type FoldImpl<T> = fn~(fold: Fold<T>, doc: doc::ImplDoc) -> doc::ImplDoc;
type FoldType<T> = fn~(fold: Fold<T>, doc: doc::TyDoc) -> doc::TyDoc;
type FoldStruct<T> = fn~(fold: Fold<T>,
doc: doc::StructDoc) -> doc::StructDoc;
type FoldDoc<T> = fn~(fold: &Fold<T>, +doc: doc::Doc) -> doc::Doc;
type FoldCrate<T> = fn~(fold: &Fold<T>, +doc: doc::CrateDoc) -> doc::CrateDoc;
type FoldItem<T> = fn~(fold: &Fold<T>, +doc: doc::ItemDoc) -> doc::ItemDoc;
type FoldMod<T> = fn~(fold: &Fold<T>, +doc: doc::ModDoc) -> doc::ModDoc;
type FoldNmod<T> = fn~(fold: &Fold<T>, +doc: doc::NmodDoc) -> doc::NmodDoc;
type FoldFn<T> = fn~(fold: &Fold<T>, +doc: doc::FnDoc) -> doc::FnDoc;
type FoldConst<T> = fn~(fold: &Fold<T>, +doc: doc::ConstDoc) -> doc::ConstDoc;
type FoldEnum<T> = fn~(fold: &Fold<T>, +doc: doc::EnumDoc) -> doc::EnumDoc;
type FoldTrait<T> = fn~(fold: &Fold<T>, +doc: doc::TraitDoc) -> doc::TraitDoc;
type FoldImpl<T> = fn~(fold: &Fold<T>, +doc: doc::ImplDoc) -> doc::ImplDoc;
type FoldType<T> = fn~(fold: &Fold<T>, +doc: doc::TyDoc) -> doc::TyDoc;
type FoldStruct<T> = fn~(fold: &Fold<T>,
+doc: doc::StructDoc) -> doc::StructDoc;
type Fold_<T> = {
ctxt: T,
@ -119,7 +119,7 @@ pub fn default_par_fold<T:Send Copy>(ctxt: T) -> Fold<T> {
)
}
pub fn default_seq_fold_doc<T>(fold: Fold<T>, doc: doc::Doc) -> doc::Doc {
pub fn default_seq_fold_doc<T>(fold: &Fold<T>, +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<T>(fold: Fold<T>, doc: doc::Doc) -> doc::Doc {
}
pub fn default_seq_fold_crate<T>(
fold: Fold<T>,
doc: doc::CrateDoc
fold: &Fold<T>,
+doc: doc::CrateDoc
) -> doc::CrateDoc {
{
topmod: fold.fold_mod(fold, doc.topmod)
@ -145,28 +145,29 @@ pub fn default_seq_fold_crate<T>(
}
pub fn default_seq_fold_item<T>(
_fold: Fold<T>,
doc: doc::ItemDoc
_fold: &Fold<T>,
+doc: doc::ItemDoc
) -> doc::ItemDoc {
doc
}
pub fn default_any_fold_mod<T:Send Copy>(
fold: Fold<T>,
doc: doc::ModDoc
fold: &Fold<T>,
+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<T>(
fold: Fold<T>,
doc: doc::ModDoc
fold: &Fold<T>,
+doc: doc::ModDoc
) -> doc::ModDoc {
doc::ModDoc_({
item: fold.fold_item(fold, doc.item),
@ -178,34 +179,36 @@ pub fn default_seq_fold_mod<T>(
}
pub fn default_par_fold_mod<T:Send Copy>(
fold: Fold<T>,
doc: doc::ModDoc
fold: &Fold<T>,
+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<T:Send Copy>(
fold: Fold<T>,
doc: doc::NmodDoc
fold: &Fold<T>,
+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<T>(
fold: Fold<T>,
doc: doc::NmodDoc
fold: &Fold<T>,
+doc: doc::NmodDoc
) -> doc::NmodDoc {
{
item: fold.fold_item(fold, doc.item),
@ -217,19 +220,20 @@ pub fn default_seq_fold_nmod<T>(
}
pub fn default_par_fold_nmod<T:Send Copy>(
fold: Fold<T>,
doc: doc::NmodDoc
fold: &Fold<T>,
+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<T>(fold: Fold<T>, doc: doc::ItemTag) -> doc::ItemTag {
pub fn fold_ItemTag<T>(fold: &Fold<T>, +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<T>(fold: Fold<T>, doc: doc::ItemTag) -> doc::ItemTag {
}
pub fn default_seq_fold_fn<T>(
fold: Fold<T>,
doc: doc::FnDoc
fold: &Fold<T>,
+doc: doc::FnDoc
) -> doc::FnDoc {
{
item: fold.fold_item(fold, doc.item),
@ -272,8 +276,8 @@ pub fn default_seq_fold_fn<T>(
}
pub fn default_seq_fold_const<T>(
fold: Fold<T>,
doc: doc::ConstDoc
fold: &Fold<T>,
+doc: doc::ConstDoc
) -> doc::ConstDoc {
{
item: fold.fold_item(fold, doc.item),
@ -282,8 +286,8 @@ pub fn default_seq_fold_const<T>(
}
pub fn default_seq_fold_enum<T>(
fold: Fold<T>,
doc: doc::EnumDoc
fold: &Fold<T>,
+doc: doc::EnumDoc
) -> doc::EnumDoc {
{
item: fold.fold_item(fold, doc.item),
@ -292,8 +296,8 @@ pub fn default_seq_fold_enum<T>(
}
pub fn default_seq_fold_trait<T>(
fold: Fold<T>,
doc: doc::TraitDoc
fold: &Fold<T>,
+doc: doc::TraitDoc
) -> doc::TraitDoc {
{
item: fold.fold_item(fold, doc.item),
@ -302,8 +306,8 @@ pub fn default_seq_fold_trait<T>(
}
pub fn default_seq_fold_impl<T>(
fold: Fold<T>,
doc: doc::ImplDoc
fold: &Fold<T>,
+doc: doc::ImplDoc
) -> doc::ImplDoc {
{
item: fold.fold_item(fold, doc.item),
@ -312,8 +316,8 @@ pub fn default_seq_fold_impl<T>(
}
pub fn default_seq_fold_type<T>(
fold: Fold<T>,
doc: doc::TyDoc
fold: &Fold<T>,
+doc: doc::TyDoc
) -> doc::TyDoc {
{
item: fold.fold_item(fold, doc.item),
@ -322,8 +326,8 @@ pub fn default_seq_fold_type<T>(
}
pub fn default_seq_fold_struct<T>(
fold: Fold<T>,
doc: doc::StructDoc
fold: &Fold<T>,
+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;
}

View file

@ -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<config::Config>,
doc: doc::ModDoc
fold: &fold::Fold<config::Config>,
+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<config::Config>,
doc: doc::NmodDoc
fold: &fold::Fold<config::Config>,
+doc: doc::NmodDoc
) -> doc::NmodDoc {
let doc = fold::default_any_fold_nmod(fold, doc);

View file

@ -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)
};

View file

@ -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<PageChan>,
doc: doc::CrateDoc
fold: &fold::Fold<PageChan>,
+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<PageChan>,
doc: doc::ModDoc
fold: &fold::Fold<PageChan>,
+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<PageChan>,
doc: doc::NmodDoc
fold: &fold::Fold<PageChan>,
+doc: doc::NmodDoc
) -> doc::NmodDoc {
let doc = fold::default_seq_fold_nmod(fold, doc);
let page = doc::ItemPage(doc::NmodTag(doc));

View file

@ -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)
}

View file

@ -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: ~[

View file

@ -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<Ctxt>, doc: doc::ItemDoc) -> doc::ItemDoc {
fn fold_item(fold: &fold::Fold<Ctxt>, +doc: doc::ItemDoc) -> doc::ItemDoc {
{
path: fold.ctxt.path,
.. doc
@ -38,7 +38,7 @@ fn fold_item(fold: fold::Fold<Ctxt>, doc: doc::ItemDoc) -> doc::ItemDoc {
}
#[allow(non_implicitly_copyable_typarams)]
fn fold_mod(fold: fold::Fold<Ctxt>, doc: doc::ModDoc) -> doc::ModDoc {
fn fold_mod(fold: &fold::Fold<Ctxt>, +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<Ctxt>, doc: doc::ModDoc) -> doc::ModDoc {
})
}
fn fold_nmod(fold: fold::Fold<Ctxt>, doc: doc::NmodDoc) -> doc::NmodDoc {
fn fold_nmod(fold: &fold::Fold<Ctxt>, +doc: doc::NmodDoc) -> doc::NmodDoc {
fold.ctxt.path.push(doc.name());
let doc = fold::default_seq_fold_nmod(fold, doc);
fold.ctxt.path.pop();

View file

@ -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<astsrv::Srv>,
doc: doc::ModDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ModDoc
) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc);

View file

@ -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<astsrv::Srv>,
doc: doc::ModDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ModDoc
) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc);

View file

@ -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);
{

View file

@ -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<ItemLtEq>,
doc: doc::ModDoc
fold: &fold::Fold<ItemLtEq>,
+doc: doc::ModDoc
) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc);
doc::ModDoc_({

View file

@ -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<Op>, doc: doc::ItemDoc) -> doc::ItemDoc {
fn fold_item(fold: &fold::Fold<Op>, +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<Op>, doc: doc::EnumDoc) -> doc::EnumDoc {
fn fold_enum(fold: &fold::Fold<Op>, +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<Op>, doc: doc::EnumDoc) -> doc::EnumDoc {
}
}
fn fold_trait(fold: fold::Fold<Op>, doc: doc::TraitDoc) -> doc::TraitDoc {
fn fold_trait(fold: &fold::Fold<Op>, +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<Op>, doc: doc::ImplDoc) -> doc::ImplDoc {
fn fold_impl(fold: &fold::Fold<Op>, +doc: doc::ImplDoc) -> doc::ImplDoc {
let doc = fold::default_seq_fold_impl(fold, doc);
{

View file

@ -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<astsrv::Srv>,
doc: doc::FnDoc
fold: &fold::Fold<astsrv::Srv>,
+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<astsrv::Srv>,
doc: doc::ConstDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ConstDoc
) -> doc::ConstDoc {
let srv = fold.ctxt;
@ -102,8 +102,8 @@ fn should_add_const_types() {
}
fn fold_enum(
fold: fold::Fold<astsrv::Srv>,
doc: doc::EnumDoc
fold: &fold::Fold<astsrv::Srv>,
+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<astsrv::Srv>,
doc: doc::TraitDoc
fold: &fold::Fold<astsrv::Srv>,
+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<astsrv::Srv>,
doc: doc::ImplDoc
fold: &fold::Fold<astsrv::Srv>,
+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<astsrv::Srv>,
doc: doc::TyDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::TyDoc
) -> doc::TyDoc {
let srv = fold.ctxt;
@ -323,8 +323,8 @@ fn should_add_type_signatures() {
}
fn fold_struct(
fold: fold::Fold<astsrv::Srv>,
doc: doc::StructDoc
fold: &fold::Fold<astsrv::Srv>,
+doc: doc::StructDoc
) -> doc::StructDoc {
let srv = fold.ctxt;