1
Fork 0

rustdoc: De-mode

This commit is contained in:
Brian Anderson 2013-01-30 19:32:36 -08:00
parent 16ea4b06ab
commit baf301cd3e
24 changed files with 254 additions and 255 deletions

View file

@ -47,7 +47,7 @@ pub type Ctxt = {
type SrvOwner<T> = fn(srv: Srv) -> T; type SrvOwner<T> = fn(srv: Srv) -> T;
pub type CtxtHandler<T> = fn~(ctxt: Ctxt) -> T; pub type CtxtHandler<T> = fn~(ctxt: Ctxt) -> T;
type Parser = fn~(Session, +s: ~str) -> @ast::crate; type Parser = fn~(Session, s: ~str) -> @ast::crate;
enum Msg { enum Msg {
HandleRequest(fn~(Ctxt)), HandleRequest(fn~(Ctxt)),
@ -62,15 +62,15 @@ impl Srv: Clone {
fn clone(&self) -> Srv { copy *self } fn clone(&self) -> Srv { copy *self }
} }
pub fn from_str<T>(+source: ~str, owner: SrvOwner<T>) -> T { pub fn from_str<T>(source: ~str, owner: SrvOwner<T>) -> T {
run(owner, copy source, parse::from_str_sess) run(owner, copy source, parse::from_str_sess)
} }
pub fn from_file<T>(+file: ~str, owner: SrvOwner<T>) -> T { pub fn from_file<T>(file: ~str, owner: SrvOwner<T>) -> T {
run(owner, copy file, |sess, f| parse::from_file_sess(sess, &Path(f))) run(owner, copy file, |sess, f| parse::from_file_sess(sess, &Path(f)))
} }
fn run<T>(owner: SrvOwner<T>, +source: ~str, +parse: Parser) -> T { fn run<T>(owner: SrvOwner<T>, source: ~str, parse: Parser) -> T {
let srv_ = Srv({ let srv_ = Srv({
ch: do util::spawn_listener |copy source, move parse, po| { ch: do util::spawn_listener |copy source, move parse, po| {
@ -83,7 +83,7 @@ fn run<T>(owner: SrvOwner<T>, +source: ~str, +parse: Parser) -> T {
move res move res
} }
fn act(po: oldcomm::Port<Msg>, +source: ~str, +parse: Parser) { fn act(po: oldcomm::Port<Msg>, source: ~str, parse: Parser) {
let sess = build_session(); let sess = build_session();
let ctxt = build_ctxt( let ctxt = build_ctxt(
@ -106,7 +106,7 @@ fn act(po: oldcomm::Port<Msg>, +source: ~str, +parse: Parser) {
pub fn exec<T:Owned>( pub fn exec<T:Owned>(
srv: Srv, srv: Srv,
+f: fn~(ctxt: Ctxt) -> T f: fn~(ctxt: Ctxt) -> T
) -> T { ) -> T {
let (po, ch) = stream(); let (po, ch) = stream();
let msg = HandleRequest(fn~(move f, ctxt: Ctxt) { let msg = HandleRequest(fn~(move f, ctxt: Ctxt) {

View file

@ -36,7 +36,7 @@ mod test {
use core::option::None; use core::option::None;
pub fn parse_attributes(+source: ~str) -> ~[ast::attribute] { pub fn parse_attributes(source: ~str) -> ~[ast::attribute] {
use syntax::parse; use syntax::parse;
use syntax::parse::parser; use syntax::parse::parser;
use syntax::parse::attr::parser_attr; use syntax::parse::attr::parser_attr;
@ -52,7 +52,7 @@ mod test {
} }
fn doc_metas( fn doc_metas(
+attrs: ~[ast::attribute] attrs: ~[ast::attribute]
) -> ~[@ast::meta_item] { ) -> ~[@ast::meta_item] {
let doc_attrs = attr::find_attrs_by_name(attrs, ~"doc"); let doc_attrs = attr::find_attrs_by_name(attrs, ~"doc");
@ -63,7 +63,7 @@ fn doc_metas(
return 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); let link_metas = attr::find_linkage_metas(attrs);
{ {
@ -95,7 +95,7 @@ fn should_not_extract_crate_name_if_no_name_value_in_link_attribute() {
assert attrs.name == None; 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| { let doc_strs = do doc_metas(attrs).filter_map |meta| {
attr::get_meta_item_value_str(*meta) attr::get_meta_item_value_str(*meta)
}; };
@ -122,7 +122,7 @@ fn parse_desc_should_parse_simple_doc_attributes() {
assert attrs == Some(~"basic"); 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| { do doc_metas(attrs).find |meta| {
match attr::get_meta_item_list(*meta) { match attr::get_meta_item_list(*meta) {
Some(metas) => { Some(metas) => {

View file

@ -43,7 +43,7 @@ pub fn mk_pass() -> Pass {
pub fn run( pub fn run(
srv: astsrv::Srv, srv: astsrv::Srv,
+doc: doc::Doc doc: doc::Doc
) -> doc::Doc { ) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_crate: fold_crate, fold_crate: fold_crate,
@ -58,7 +58,7 @@ pub fn run(
fn fold_crate( fn fold_crate(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::CrateDoc doc: doc::CrateDoc
) -> doc::CrateDoc { ) -> doc::CrateDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -89,7 +89,7 @@ fn should_replace_top_module_name_with_crate_name() {
fn fold_item( fn fold_item(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ItemDoc doc: doc::ItemDoc
) -> doc::ItemDoc { ) -> doc::ItemDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -113,7 +113,7 @@ fn fold_item(
fn parse_item_attrs<T:Owned>( fn parse_item_attrs<T:Owned>(
srv: astsrv::Srv, srv: astsrv::Srv,
id: doc::AstId, id: doc::AstId,
+parse_attrs: fn~(+a: ~[ast::attribute]) -> T) -> T { parse_attrs: fn~(a: ~[ast::attribute]) -> T) -> T {
do astsrv::exec(srv) |move parse_attrs, ctxt| { do astsrv::exec(srv) |move parse_attrs, ctxt| {
let attrs = match ctxt.ast_map.get(id) { let attrs = match ctxt.ast_map.get(id) {
ast_map::node_item(item, _) => copy item.attrs, ast_map::node_item(item, _) => copy item.attrs,
@ -156,7 +156,7 @@ fn should_extract_fn_attributes() {
fn fold_enum( fn fold_enum(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::EnumDoc doc: doc::EnumDoc
) -> doc::EnumDoc { ) -> doc::EnumDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -207,7 +207,7 @@ fn should_extract_variant_docs() {
fn fold_trait( fn fold_trait(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::TraitDoc doc: doc::TraitDoc
) -> doc::TraitDoc { ) -> doc::TraitDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
let doc = fold::default_seq_fold_trait(fold, doc); let doc = fold::default_seq_fold_trait(fold, doc);
@ -221,7 +221,7 @@ fn fold_trait(
fn merge_method_attrs( fn merge_method_attrs(
srv: astsrv::Srv, srv: astsrv::Srv,
item_id: doc::AstId, item_id: doc::AstId,
+docs: ~[doc::MethodDoc] docs: ~[doc::MethodDoc]
) -> ~[doc::MethodDoc] { ) -> ~[doc::MethodDoc] {
// Create an assoc list from method name to attributes // Create an assoc list from method name to attributes
@ -284,7 +284,7 @@ fn should_extract_trait_method_docs() {
fn fold_impl( fn fold_impl(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ImplDoc doc: doc::ImplDoc
) -> doc::ImplDoc { ) -> doc::ImplDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
let doc = fold::default_seq_fold_impl(fold, doc); let doc = fold::default_seq_fold_impl(fold, doc);
@ -319,7 +319,7 @@ mod test {
use doc; use doc;
use extract; use extract;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
run(srv, doc) run(srv, doc)

View file

@ -123,7 +123,7 @@ pub fn parse_config(args: &[~str]) -> Result<Config, ~str> {
pub fn parse_config_( pub fn parse_config_(
args: &[~str], args: &[~str],
+program_output: ProgramOutput program_output: ProgramOutput
) -> Result<Config, ~str> { ) -> Result<Config, ~str> {
let args = args.tail(); let args = args.tail();
let opts = vec::unzip(opts()).first(); let opts = vec::unzip(opts()).first();
@ -147,7 +147,7 @@ pub fn parse_config_(
fn config_from_opts( fn config_from_opts(
input_crate: &Path, input_crate: &Path,
matches: &getopts::Matches, matches: &getopts::Matches,
+program_output: ProgramOutput program_output: ProgramOutput
) -> Result<Config, ~str> { ) -> Result<Config, ~str> {
let config = default_config(input_crate); let config = default_config(input_crate);
@ -222,8 +222,8 @@ fn parse_output_style(output_style: &str) -> Result<OutputStyle, ~str> {
fn maybe_find_pandoc( fn maybe_find_pandoc(
config: &Config, config: &Config,
+maybe_pandoc_cmd: Option<~str>, maybe_pandoc_cmd: Option<~str>,
+program_output: ProgramOutput program_output: ProgramOutput
) -> Result<Option<~str>, ~str> { ) -> Result<Option<~str>, ~str> {
if config.output_format != PandocHtml { if config.output_format != PandocHtml {
return result::Ok(maybe_pandoc_cmd); return result::Ok(maybe_pandoc_cmd);

View file

@ -39,8 +39,8 @@ enum OmNomNomy {
} }
fn take_my_order_please( fn take_my_order_please(
+_waitperson: WaitPerson, _waitperson: WaitPerson,
+_order: ~[OmNomNomy] _order: ~[OmNomNomy]
) -> uint { ) -> uint {
/*! /*!

View file

@ -37,7 +37,7 @@ pub fn mk_pass() -> Pass {
pub fn run( pub fn run(
_srv: astsrv::Srv, _srv: astsrv::Srv,
+doc: doc::Doc doc: doc::Doc
) -> doc::Doc { ) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_item: fold_item, fold_item: fold_item,
@ -48,7 +48,7 @@ pub fn run(
(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 doc = fold::default_seq_fold_item(fold, doc);
doc::ItemDoc { doc::ItemDoc {
@ -57,7 +57,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); let doc =fold::default_seq_fold_trait(fold, doc);
doc::TraitDoc { doc::TraitDoc {
@ -69,7 +69,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); let doc =fold::default_seq_fold_impl(fold, doc);
doc::ImplDoc { doc::ImplDoc {
@ -108,7 +108,7 @@ pub mod test {
use doc; use doc;
use extract; use extract;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
let doc = (attr_pass::mk_pass().f)(srv, doc); let doc = (attr_pass::mk_pass().f)(srv, doc);
@ -117,7 +117,7 @@ pub mod test {
} }
} }
fn extract(+desc: Option<~str>) -> Option<~str> { fn extract(desc: Option<~str>) -> Option<~str> {
if desc.is_none() { if desc.is_none() {
return None return None
} }
@ -125,7 +125,7 @@ fn extract(+desc: Option<~str>) -> Option<~str> {
parse_desc((copy desc).get()) parse_desc((copy desc).get())
} }
fn parse_desc(+desc: ~str) -> Option<~str> { fn parse_desc(desc: ~str) -> Option<~str> {
const max_brief_len: uint = 120u; const max_brief_len: uint = 120u;
@ -141,7 +141,7 @@ fn parse_desc(+desc: ~str) -> Option<~str> {
} }
} }
fn first_sentence(+s: ~str) -> Option<~str> { fn first_sentence(s: ~str) -> Option<~str> {
let paras = paragraphs(copy s); let paras = paragraphs(copy s);
if !paras.is_empty() { if !paras.is_empty() {
let first_para = vec::head(paras); let first_para = vec::head(paras);
@ -151,7 +151,7 @@ fn first_sentence(+s: ~str) -> Option<~str> {
} }
} }
fn first_sentence_(+s: ~str) -> ~str { fn first_sentence_(s: ~str) -> ~str {
let mut dotcount = 0; let mut dotcount = 0;
// The index of the character following a single dot. This allows // The index of the character following a single dot. This allows
// Things like [0..1) to appear in the brief description // Things like [0..1) to appear in the brief description
@ -182,7 +182,7 @@ fn first_sentence_(+s: ~str) -> ~str {
} }
} }
fn paragraphs(+s: ~str) -> ~[~str] { fn paragraphs(s: ~str) -> ~[~str] {
let lines = str::lines_any(s); let lines = str::lines_any(s);
let mut whitespace_lines = 0; let mut whitespace_lines = 0;
let mut accum = ~""; let mut accum = ~"";

View file

@ -43,7 +43,7 @@ pub fn interner() -> @syntax::parse::token::ident_interner {
pub fn from_srv( pub fn from_srv(
srv: astsrv::Srv, srv: astsrv::Srv,
+default_name: ~str default_name: ~str
) -> doc::Doc { ) -> doc::Doc {
//! Use the AST service to create a document tree //! Use the AST service to create a document tree
@ -55,7 +55,7 @@ pub fn from_srv(
pub fn extract( pub fn extract(
crate: @ast::crate, crate: @ast::crate,
+default_name: ~str default_name: ~str
) -> doc::Doc { ) -> doc::Doc {
doc::Doc { doc::Doc {
pages: ~[ pages: ~[
@ -68,13 +68,13 @@ pub fn extract(
fn top_moddoc_from_crate( fn top_moddoc_from_crate(
crate: @ast::crate, crate: @ast::crate,
+default_name: ~str default_name: ~str
) -> doc::ModDoc { ) -> doc::ModDoc {
moddoc_from_mod(mk_itemdoc(ast::crate_node_id, default_name), moddoc_from_mod(mk_itemdoc(ast::crate_node_id, default_name),
copy crate.node.module) copy 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 {
doc::ItemDoc { doc::ItemDoc {
id: id, id: id,
name: name, name: name,
@ -87,8 +87,8 @@ fn mk_itemdoc(id: ast::node_id, +name: ~str) -> doc::ItemDoc {
} }
fn moddoc_from_mod( fn moddoc_from_mod(
+itemdoc: doc::ItemDoc, itemdoc: doc::ItemDoc,
+module_: ast::_mod module_: ast::_mod
) -> doc::ModDoc { ) -> doc::ModDoc {
doc::ModDoc { doc::ModDoc {
item: itemdoc, item: itemdoc,
@ -148,8 +148,8 @@ fn moddoc_from_mod(
} }
fn nmoddoc_from_mod( fn nmoddoc_from_mod(
+itemdoc: doc::ItemDoc, itemdoc: doc::ItemDoc,
+module_: ast::foreign_mod module_: ast::foreign_mod
) -> doc::NmodDoc { ) -> doc::NmodDoc {
let mut fns = ~[]; let mut fns = ~[];
for module_.items.each |item| { for module_.items.each |item| {
@ -168,14 +168,14 @@ fn nmoddoc_from_mod(
} }
} }
fn fndoc_from_fn(+itemdoc: doc::ItemDoc) -> doc::FnDoc { fn fndoc_from_fn(itemdoc: doc::ItemDoc) -> doc::FnDoc {
doc::SimpleItemDoc { doc::SimpleItemDoc {
item: itemdoc, item: itemdoc,
sig: None sig: None
} }
} }
fn constdoc_from_const(+itemdoc: doc::ItemDoc) -> doc::ConstDoc { fn constdoc_from_const(itemdoc: doc::ItemDoc) -> doc::ConstDoc {
doc::SimpleItemDoc { doc::SimpleItemDoc {
item: itemdoc, item: itemdoc,
sig: None sig: None
@ -190,8 +190,8 @@ fn should_extract_const_name_and_id() {
} }
fn enumdoc_from_enum( fn enumdoc_from_enum(
+itemdoc: doc::ItemDoc, itemdoc: doc::ItemDoc,
+variants: ~[ast::variant] variants: ~[ast::variant]
) -> doc::EnumDoc { ) -> doc::EnumDoc {
doc::EnumDoc { doc::EnumDoc {
item: itemdoc, item: itemdoc,
@ -200,7 +200,7 @@ fn enumdoc_from_enum(
} }
fn variantdocs_from_variants( fn variantdocs_from_variants(
+variants: ~[ast::variant] variants: ~[ast::variant]
) -> ~[doc::VariantDoc] { ) -> ~[doc::VariantDoc] {
vec::map(variants, variantdoc_from_variant) vec::map(variants, variantdoc_from_variant)
} }
@ -227,8 +227,8 @@ fn should_extract_enum_variants() {
} }
fn traitdoc_from_trait( fn traitdoc_from_trait(
+itemdoc: doc::ItemDoc, itemdoc: doc::ItemDoc,
+methods: ~[ast::trait_method] methods: ~[ast::trait_method]
) -> doc::TraitDoc { ) -> doc::TraitDoc {
doc::TraitDoc { doc::TraitDoc {
item: itemdoc, item: itemdoc,
@ -272,8 +272,8 @@ fn should_extract_trait_methods() {
} }
fn impldoc_from_impl( fn impldoc_from_impl(
+itemdoc: doc::ItemDoc, itemdoc: doc::ItemDoc,
+methods: ~[@ast::method] methods: ~[@ast::method]
) -> doc::ImplDoc { ) -> doc::ImplDoc {
doc::ImplDoc { doc::ImplDoc {
item: itemdoc, item: itemdoc,
@ -299,7 +299,7 @@ fn should_extract_impl_methods() {
} }
fn tydoc_from_ty( fn tydoc_from_ty(
+itemdoc: doc::ItemDoc itemdoc: doc::ItemDoc
) -> doc::TyDoc { ) -> doc::TyDoc {
doc::SimpleItemDoc { doc::SimpleItemDoc {
item: itemdoc, item: itemdoc,
@ -314,7 +314,7 @@ fn should_extract_tys() {
} }
fn structdoc_from_struct( fn structdoc_from_struct(
+itemdoc: doc::ItemDoc, itemdoc: doc::ItemDoc,
struct_def: @ast::struct_def struct_def: @ast::struct_def
) -> doc::StructDoc { ) -> doc::StructDoc {
doc::StructDoc { doc::StructDoc {
@ -350,7 +350,7 @@ mod test {
use core::vec; use core::vec;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
let ast = parse::from_str(source); let ast = parse::from_str(source);
extract(ast, ~"") extract(ast, ~"")
} }

View file

@ -55,36 +55,36 @@ impl<T: Clone> Fold<T>: Clone {
} }
} }
type FoldDoc<T> = fn~(fold: &Fold<T>, +doc: doc::Doc) -> doc::Doc; 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 FoldCrate<T> = fn~(fold: &Fold<T>, doc: doc::CrateDoc) -> doc::CrateDoc;
type FoldItem<T> = fn~(fold: &Fold<T>, +doc: doc::ItemDoc) -> doc::ItemDoc; 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 FoldMod<T> = fn~(fold: &Fold<T>, doc: doc::ModDoc) -> doc::ModDoc;
type FoldNmod<T> = fn~(fold: &Fold<T>, +doc: doc::NmodDoc) -> doc::NmodDoc; 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 FoldFn<T> = fn~(fold: &Fold<T>, doc: doc::FnDoc) -> doc::FnDoc;
type FoldConst<T> = fn~(fold: &Fold<T>, +doc: doc::ConstDoc) -> doc::ConstDoc; 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 FoldEnum<T> = fn~(fold: &Fold<T>, doc: doc::EnumDoc) -> doc::EnumDoc;
type FoldTrait<T> = fn~(fold: &Fold<T>, +doc: doc::TraitDoc) -> doc::TraitDoc; 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 FoldImpl<T> = fn~(fold: &Fold<T>, doc: doc::ImplDoc) -> doc::ImplDoc;
type FoldType<T> = fn~(fold: &Fold<T>, +doc: doc::TyDoc) -> doc::TyDoc; type FoldType<T> = fn~(fold: &Fold<T>, doc: doc::TyDoc) -> doc::TyDoc;
type FoldStruct<T> = fn~(fold: &Fold<T>, type FoldStruct<T> = fn~(fold: &Fold<T>,
+doc: doc::StructDoc) -> doc::StructDoc; doc: doc::StructDoc) -> doc::StructDoc;
// This exists because fn types don't infer correctly as record // This exists because fn types don't infer correctly as record
// initializers, but they do as function arguments // initializers, but they do as function arguments
fn mk_fold<T:Clone>( fn mk_fold<T:Clone>(
+ctxt: T, ctxt: T,
+fold_doc: FoldDoc<T>, fold_doc: FoldDoc<T>,
+fold_crate: FoldCrate<T>, fold_crate: FoldCrate<T>,
+fold_item: FoldItem<T>, fold_item: FoldItem<T>,
+fold_mod: FoldMod<T>, fold_mod: FoldMod<T>,
+fold_nmod: FoldNmod<T>, fold_nmod: FoldNmod<T>,
+fold_fn: FoldFn<T>, fold_fn: FoldFn<T>,
+fold_const: FoldConst<T>, fold_const: FoldConst<T>,
+fold_enum: FoldEnum<T>, fold_enum: FoldEnum<T>,
+fold_trait: FoldTrait<T>, fold_trait: FoldTrait<T>,
+fold_impl: FoldImpl<T>, fold_impl: FoldImpl<T>,
+fold_type: FoldType<T>, fold_type: FoldType<T>,
+fold_struct: FoldStruct<T> fold_struct: FoldStruct<T>
) -> Fold<T> { ) -> Fold<T> {
Fold { Fold {
ctxt: move ctxt, ctxt: move ctxt,
@ -103,7 +103,7 @@ fn mk_fold<T:Clone>(
} }
} }
pub fn default_any_fold<T:Owned Clone>(+ctxt: T) -> Fold<T> { pub fn default_any_fold<T:Owned Clone>(ctxt: T) -> Fold<T> {
mk_fold( mk_fold(
move ctxt, move ctxt,
|f, d| default_seq_fold_doc(f, d), |f, d| default_seq_fold_doc(f, d),
@ -121,7 +121,7 @@ pub fn default_any_fold<T:Owned Clone>(+ctxt: T) -> Fold<T> {
) )
} }
pub fn default_seq_fold<T:Clone>(+ctxt: T) -> Fold<T> { pub fn default_seq_fold<T:Clone>(ctxt: T) -> Fold<T> {
mk_fold( mk_fold(
move ctxt, move ctxt,
|f, d| default_seq_fold_doc(f, d), |f, d| default_seq_fold_doc(f, d),
@ -139,7 +139,7 @@ pub fn default_seq_fold<T:Clone>(+ctxt: T) -> Fold<T> {
) )
} }
pub fn default_par_fold<T:Owned Clone>(+ctxt: T) -> Fold<T> { pub fn default_par_fold<T:Owned Clone>(ctxt: T) -> Fold<T> {
mk_fold( mk_fold(
move ctxt, move ctxt,
|f, d| default_seq_fold_doc(f, d), |f, d| default_seq_fold_doc(f, d),
@ -157,7 +157,7 @@ pub fn default_par_fold<T:Owned Clone>(+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 { doc::Doc {
pages: do vec::map(doc.pages) |page| { pages: do vec::map(doc.pages) |page| {
match copy *page { match copy *page {
@ -175,7 +175,7 @@ pub fn default_seq_fold_doc<T>(fold: &Fold<T>, +doc: doc::Doc) -> doc::Doc {
pub fn default_seq_fold_crate<T>( pub fn default_seq_fold_crate<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::CrateDoc doc: doc::CrateDoc
) -> doc::CrateDoc { ) -> doc::CrateDoc {
doc::CrateDoc { doc::CrateDoc {
topmod: (fold.fold_mod)(fold, copy doc.topmod) topmod: (fold.fold_mod)(fold, copy doc.topmod)
@ -184,14 +184,14 @@ pub fn default_seq_fold_crate<T>(
pub fn default_seq_fold_item<T>( pub fn default_seq_fold_item<T>(
_fold: &Fold<T>, _fold: &Fold<T>,
+doc: doc::ItemDoc doc: doc::ItemDoc
) -> doc::ItemDoc { ) -> doc::ItemDoc {
doc doc
} }
pub fn default_any_fold_mod<T:Owned Clone>( pub fn default_any_fold_mod<T:Owned Clone>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
let fold_copy = fold.clone(); let fold_copy = fold.clone();
doc::ModDoc { doc::ModDoc {
@ -205,7 +205,7 @@ pub fn default_any_fold_mod<T:Owned Clone>(
pub fn default_seq_fold_mod<T>( pub fn default_seq_fold_mod<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
doc::ModDoc { doc::ModDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -218,7 +218,7 @@ pub fn default_seq_fold_mod<T>(
pub fn default_par_fold_mod<T:Owned Clone>( pub fn default_par_fold_mod<T:Owned Clone>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
let fold_copy = fold.clone(); let fold_copy = fold.clone();
doc::ModDoc { doc::ModDoc {
@ -232,7 +232,7 @@ pub fn default_par_fold_mod<T:Owned Clone>(
pub fn default_any_fold_nmod<T:Owned Clone>( pub fn default_any_fold_nmod<T:Owned Clone>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::NmodDoc doc: doc::NmodDoc
) -> doc::NmodDoc { ) -> doc::NmodDoc {
let fold_copy = fold.clone(); let fold_copy = fold.clone();
doc::NmodDoc { doc::NmodDoc {
@ -246,7 +246,7 @@ pub fn default_any_fold_nmod<T:Owned Clone>(
pub fn default_seq_fold_nmod<T>( pub fn default_seq_fold_nmod<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::NmodDoc doc: doc::NmodDoc
) -> doc::NmodDoc { ) -> doc::NmodDoc {
doc::NmodDoc { doc::NmodDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -259,7 +259,7 @@ pub fn default_seq_fold_nmod<T>(
pub fn default_par_fold_nmod<T:Owned Clone>( pub fn default_par_fold_nmod<T:Owned Clone>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::NmodDoc doc: doc::NmodDoc
) -> doc::NmodDoc { ) -> doc::NmodDoc {
let fold_copy = fold.clone(); let fold_copy = fold.clone();
doc::NmodDoc { doc::NmodDoc {
@ -271,7 +271,7 @@ pub fn default_par_fold_nmod<T:Owned Clone>(
} }
} }
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 { match doc {
doc::ModTag(ModDoc) => { doc::ModTag(ModDoc) => {
doc::ModTag((fold.fold_mod)(fold, ModDoc)) doc::ModTag((fold.fold_mod)(fold, ModDoc))
@ -305,7 +305,7 @@ pub fn fold_ItemTag<T>(fold: &Fold<T>, +doc: doc::ItemTag) -> doc::ItemTag {
pub fn default_seq_fold_fn<T>( pub fn default_seq_fold_fn<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::FnDoc doc: doc::FnDoc
) -> doc::FnDoc { ) -> doc::FnDoc {
doc::SimpleItemDoc { doc::SimpleItemDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -315,7 +315,7 @@ pub fn default_seq_fold_fn<T>(
pub fn default_seq_fold_const<T>( pub fn default_seq_fold_const<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::ConstDoc doc: doc::ConstDoc
) -> doc::ConstDoc { ) -> doc::ConstDoc {
doc::SimpleItemDoc { doc::SimpleItemDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -325,7 +325,7 @@ pub fn default_seq_fold_const<T>(
pub fn default_seq_fold_enum<T>( pub fn default_seq_fold_enum<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::EnumDoc doc: doc::EnumDoc
) -> doc::EnumDoc { ) -> doc::EnumDoc {
doc::EnumDoc { doc::EnumDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -335,7 +335,7 @@ pub fn default_seq_fold_enum<T>(
pub fn default_seq_fold_trait<T>( pub fn default_seq_fold_trait<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::TraitDoc doc: doc::TraitDoc
) -> doc::TraitDoc { ) -> doc::TraitDoc {
doc::TraitDoc { doc::TraitDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -345,7 +345,7 @@ pub fn default_seq_fold_trait<T>(
pub fn default_seq_fold_impl<T>( pub fn default_seq_fold_impl<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::ImplDoc doc: doc::ImplDoc
) -> doc::ImplDoc { ) -> doc::ImplDoc {
doc::ImplDoc { doc::ImplDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -355,7 +355,7 @@ pub fn default_seq_fold_impl<T>(
pub fn default_seq_fold_type<T>( pub fn default_seq_fold_type<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::TyDoc doc: doc::TyDoc
) -> doc::TyDoc { ) -> doc::TyDoc {
doc::SimpleItemDoc { doc::SimpleItemDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),
@ -365,7 +365,7 @@ pub fn default_seq_fold_type<T>(
pub fn default_seq_fold_struct<T>( pub fn default_seq_fold_struct<T>(
fold: &Fold<T>, fold: &Fold<T>,
+doc: doc::StructDoc doc: doc::StructDoc
) -> doc::StructDoc { ) -> doc::StructDoc {
doc::StructDoc { doc::StructDoc {
item: (fold.fold_item)(fold, copy doc.item), item: (fold.fold_item)(fold, copy doc.item),

View file

@ -25,10 +25,10 @@ use pass::Pass;
use core::str; use core::str;
use std::par; use std::par;
pub fn mk_pass(+config: config::Config) -> Pass { pub fn mk_pass(config: config::Config) -> Pass {
Pass { Pass {
name: ~"markdown_index", 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, copy config) run(srv, doc, copy config)
} }
} }
@ -36,8 +36,8 @@ pub fn mk_pass(+config: config::Config) -> Pass {
pub fn run( pub fn run(
_srv: astsrv::Srv, _srv: astsrv::Srv,
+doc: doc::Doc, doc: doc::Doc,
+config: config::Config config: config::Config
) -> doc::Doc { ) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_mod: fold_mod, fold_mod: fold_mod,
@ -49,7 +49,7 @@ pub fn run(
fn fold_mod( fn fold_mod(
fold: &fold::Fold<config::Config>, fold: &fold::Fold<config::Config>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc); let doc = fold::default_any_fold_mod(fold, doc);
@ -62,7 +62,7 @@ fn fold_mod(
fn fold_nmod( fn fold_nmod(
fold: &fold::Fold<config::Config>, fold: &fold::Fold<config::Config>,
+doc: doc::NmodDoc doc: doc::NmodDoc
) -> doc::NmodDoc { ) -> doc::NmodDoc {
let doc = fold::default_any_fold_nmod(fold, doc); let doc = fold::default_any_fold_nmod(fold, doc);
@ -74,8 +74,8 @@ fn fold_nmod(
} }
fn build_mod_index( fn build_mod_index(
+doc: doc::ModDoc, doc: doc::ModDoc,
+config: config::Config config: config::Config
) -> doc::Index { ) -> doc::Index {
doc::Index { doc::Index {
entries: par::map(doc.items, |doc| { entries: par::map(doc.items, |doc| {
@ -85,8 +85,8 @@ fn build_mod_index(
} }
fn build_nmod_index( fn build_nmod_index(
+doc: doc::NmodDoc, doc: doc::NmodDoc,
+config: config::Config config: config::Config
) -> doc::Index { ) -> doc::Index {
doc::Index { doc::Index {
entries: par::map(doc.fns, |doc| { entries: par::map(doc.fns, |doc| {
@ -96,8 +96,8 @@ fn build_nmod_index(
} }
fn item_to_entry( fn item_to_entry(
+doc: doc::ItemTag, doc: doc::ItemTag,
+config: config::Config config: config::Config
) -> doc::IndexEntry { ) -> doc::IndexEntry {
let link = match doc { let link = match doc {
doc::ModTag(_) | doc::NmodTag(_) doc::ModTag(_) | doc::NmodTag(_)
@ -266,7 +266,7 @@ mod test {
use core::path::Path; use core::path::Path;
pub fn mk_doc(output_style: config::OutputStyle, +source: ~str) pub fn mk_doc(output_style: config::OutputStyle, source: ~str)
-> doc::Doc { -> doc::Doc {
do astsrv::from_str(source) |srv| { do astsrv::from_str(source) |srv| {
let config = config::Config { let config = config::Config {

View file

@ -41,9 +41,9 @@ use core::vec;
use std::par; use std::par;
use syntax; use syntax;
pub fn mk_pass(+writer_factory: WriterFactory) -> Pass { pub fn mk_pass(writer_factory: WriterFactory) -> Pass {
let f = fn~(move writer_factory, 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) run(srv, doc, copy writer_factory)
}; };
@ -55,8 +55,8 @@ pub fn mk_pass(+writer_factory: WriterFactory) -> Pass {
fn run( fn run(
srv: astsrv::Srv, srv: astsrv::Srv,
+doc: doc::Doc, doc: doc::Doc,
+writer_factory: WriterFactory writer_factory: WriterFactory
) -> doc::Doc { ) -> doc::Doc {
pure fn mods_last(item1: &doc::ItemTag, item2: &doc::ItemTag) -> bool { pure fn mods_last(item1: &doc::ItemTag, item2: &doc::ItemTag) -> bool {
@ -115,8 +115,8 @@ type Ctxt = {
}; };
pub fn write_markdown( pub fn write_markdown(
+doc: doc::Doc, doc: doc::Doc,
+writer_factory: WriterFactory writer_factory: WriterFactory
) { ) {
// There is easy parallelism to be had here, but // There is easy parallelism to be had here, but
// we don't want to spawn too many pandoc processes. // we don't want to spawn too many pandoc processes.
@ -159,12 +159,12 @@ fn should_request_new_writer_for_each_page() {
} }
} }
fn write_title(ctxt: &Ctxt, +page: doc::Page) { fn write_title(ctxt: &Ctxt, page: doc::Page) {
ctxt.w.write_line(fmt!("%% %s", make_title(page))); ctxt.w.write_line(fmt!("%% %s", make_title(page)));
ctxt.w.write_line(~""); ctxt.w.write_line(~"");
} }
fn make_title(+page: doc::Page) -> ~str { fn make_title(page: doc::Page) -> ~str {
let item = match page { let item = match page {
doc::CratePage(CrateDoc) => { doc::CratePage(CrateDoc) => {
doc::ModTag(copy CrateDoc.topmod) doc::ModTag(copy CrateDoc.topmod)
@ -205,18 +205,18 @@ enum Hlvl {
H4 = 4 H4 = 4
} }
fn write_header(ctxt: &Ctxt, lvl: Hlvl, +doc: doc::ItemTag) { fn write_header(ctxt: &Ctxt, lvl: Hlvl, doc: doc::ItemTag) {
let text = header_text(doc); let text = header_text(doc);
write_header_(ctxt, lvl, text); write_header_(ctxt, lvl, text);
} }
fn write_header_(ctxt: &Ctxt, lvl: Hlvl, +title: ~str) { fn write_header_(ctxt: &Ctxt, lvl: Hlvl, title: ~str) {
let hashes = str::from_chars(vec::from_elem(lvl as uint, '#')); let hashes = str::from_chars(vec::from_elem(lvl as uint, '#'));
ctxt.w.write_line(fmt!("%s %s", hashes, title)); ctxt.w.write_line(fmt!("%s %s", hashes, title));
ctxt.w.write_line(~""); ctxt.w.write_line(~"");
} }
pub fn header_kind(+doc: doc::ItemTag) -> ~str { pub fn header_kind(doc: doc::ItemTag) -> ~str {
match doc { match doc {
doc::ModTag(_) => { doc::ModTag(_) => {
if doc.id() == syntax::ast::crate_node_id { if doc.id() == syntax::ast::crate_node_id {
@ -252,7 +252,7 @@ pub fn header_kind(+doc: doc::ItemTag) -> ~str {
} }
} }
pub fn header_name(+doc: doc::ItemTag) -> ~str { pub fn header_name(doc: doc::ItemTag) -> ~str {
let fullpath = str::connect(doc.path() + ~[doc.name()], ~"::"); let fullpath = str::connect(doc.path() + ~[doc.name()], ~"::");
match &doc { match &doc {
&doc::ModTag(_) if doc.id() != syntax::ast::crate_node_id => { &doc::ModTag(_) if doc.id() != syntax::ast::crate_node_id => {
@ -281,7 +281,7 @@ pub fn header_name(+doc: doc::ItemTag) -> ~str {
} }
} }
pub fn header_text(+doc: doc::ItemTag) -> ~str { pub fn header_text(doc: doc::ItemTag) -> ~str {
match &doc { match &doc {
&doc::ImplTag(ref ImplDoc) => { &doc::ImplTag(ref ImplDoc) => {
let header_kind = header_kind(copy doc); let header_kind = header_kind(copy doc);
@ -305,21 +305,21 @@ fn header_text_(kind: &str, name: &str) -> ~str {
fn write_crate( fn write_crate(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::CrateDoc doc: doc::CrateDoc
) { ) {
write_top_module(ctxt, copy doc.topmod); write_top_module(ctxt, copy doc.topmod);
} }
fn write_top_module( fn write_top_module(
ctxt: &Ctxt, ctxt: &Ctxt,
+ModDoc: doc::ModDoc ModDoc: doc::ModDoc
) { ) {
write_mod_contents(ctxt, ModDoc); write_mod_contents(ctxt, ModDoc);
} }
fn write_mod( fn write_mod(
ctxt: &Ctxt, ctxt: &Ctxt,
+ModDoc: doc::ModDoc ModDoc: doc::ModDoc
) { ) {
write_mod_contents(ctxt, ModDoc); write_mod_contents(ctxt, ModDoc);
} }
@ -332,7 +332,7 @@ fn should_write_full_path_to_mod() {
fn write_oldcommon( fn write_oldcommon(
ctxt: &Ctxt, ctxt: &Ctxt,
+desc: Option<~str>, desc: Option<~str>,
sections: &[doc::Section] sections: &[doc::Section]
) { ) {
write_desc(ctxt, desc); write_desc(ctxt, desc);
@ -341,7 +341,7 @@ fn write_oldcommon(
fn write_desc( fn write_desc(
ctxt: &Ctxt, ctxt: &Ctxt,
+desc: Option<~str> desc: Option<~str>
) { ) {
match desc { match desc {
Some(desc) => { Some(desc) => {
@ -358,7 +358,7 @@ fn write_sections(ctxt: &Ctxt, sections: &[doc::Section]) {
} }
} }
fn write_section(ctxt: &Ctxt, +section: doc::Section) { fn write_section(ctxt: &Ctxt, section: doc::Section) {
write_header_(ctxt, H4, copy section.header); write_header_(ctxt, H4, copy section.header);
ctxt.w.write_line(copy section.body); ctxt.w.write_line(copy section.body);
ctxt.w.write_line(~""); ctxt.w.write_line(~"");
@ -377,7 +377,7 @@ fn should_write_sections() {
fn write_mod_contents( fn write_mod_contents(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::ModDoc doc: doc::ModDoc
) { ) {
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
if doc.index.is_some() { if doc.index.is_some() {
@ -389,15 +389,15 @@ fn write_mod_contents(
} }
} }
fn write_item(ctxt: &Ctxt, +doc: doc::ItemTag) { fn write_item(ctxt: &Ctxt, doc: doc::ItemTag) {
write_item_(ctxt, doc, true); write_item_(ctxt, doc, true);
} }
fn write_item_no_header(ctxt: &Ctxt, +doc: doc::ItemTag) { fn write_item_no_header(ctxt: &Ctxt, doc: doc::ItemTag) {
write_item_(ctxt, doc, false); write_item_(ctxt, doc, false);
} }
fn write_item_(ctxt: &Ctxt, +doc: doc::ItemTag, write_header: bool) { fn write_item_(ctxt: &Ctxt, doc: doc::ItemTag, write_header: bool) {
if write_header { if write_header {
write_item_header(ctxt, copy doc); write_item_header(ctxt, copy doc);
} }
@ -415,13 +415,13 @@ fn write_item_(ctxt: &Ctxt, +doc: doc::ItemTag, write_header: bool) {
} }
} }
fn write_item_header(ctxt: &Ctxt, +doc: doc::ItemTag) { fn write_item_header(ctxt: &Ctxt, doc: doc::ItemTag) {
write_header(ctxt, item_header_lvl(doc), doc); write_header(ctxt, item_header_lvl(&doc), doc);
} }
fn item_header_lvl(+doc: doc::ItemTag) -> Hlvl { fn item_header_lvl(doc: &doc::ItemTag) -> Hlvl {
match doc { match doc {
doc::ModTag(_) | doc::NmodTag(_) => H1, &doc::ModTag(_) | &doc::NmodTag(_) => H1,
_ => H2 _ => H2
} }
} }
@ -432,7 +432,7 @@ fn should_write_crate_description() {
assert str::contains(markdown, ~"this is the crate"); assert str::contains(markdown, ~"this is the crate");
} }
fn write_index(ctxt: &Ctxt, +index: doc::Index) { fn write_index(ctxt: &Ctxt, index: doc::Index) {
if vec::is_empty(index.entries) { if vec::is_empty(index.entries) {
return; return;
} }
@ -481,7 +481,7 @@ fn should_write_index_for_foreign_mods() {
); );
} }
fn write_nmod(ctxt: &Ctxt, +doc: doc::NmodDoc) { fn write_nmod(ctxt: &Ctxt, doc: doc::NmodDoc) {
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
if doc.index.is_some() { if doc.index.is_some() {
write_index(ctxt, (&doc.index).get()); write_index(ctxt, (&doc.index).get());
@ -516,7 +516,7 @@ fn should_write_foreign_fn_headers() {
fn write_fn( fn write_fn(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::FnDoc doc: doc::FnDoc
) { ) {
write_fnlike( write_fnlike(
ctxt, ctxt,
@ -528,15 +528,15 @@ fn write_fn(
fn write_fnlike( fn write_fnlike(
ctxt: &Ctxt, ctxt: &Ctxt,
+sig: Option<~str>, sig: Option<~str>,
+desc: Option<~str>, desc: Option<~str>,
sections: &[doc::Section] sections: &[doc::Section]
) { ) {
write_sig(ctxt, sig); write_sig(ctxt, sig);
write_oldcommon(ctxt, desc, sections); write_oldcommon(ctxt, desc, sections);
} }
fn write_sig(ctxt: &Ctxt, +sig: Option<~str>) { fn write_sig(ctxt: &Ctxt, sig: Option<~str>) {
match sig { match sig {
Some(sig) => { Some(sig) => {
ctxt.w.write_line(code_block_indent(sig)); ctxt.w.write_line(code_block_indent(sig));
@ -546,7 +546,7 @@ fn write_sig(ctxt: &Ctxt, +sig: Option<~str>) {
} }
} }
fn code_block_indent(+s: ~str) -> ~str { fn code_block_indent(s: ~str) -> ~str {
let lines = str::lines_any(s); let lines = str::lines_any(s);
let indented = vec::map(lines, |line| fmt!(" %s", *line) ); let indented = vec::map(lines, |line| fmt!(" %s", *line) );
str::connect(indented, ~"\n") str::connect(indented, ~"\n")
@ -599,7 +599,7 @@ fn should_leave_blank_line_between_fn_header_and_sig() {
fn write_const( fn write_const(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::ConstDoc doc: doc::ConstDoc
) { ) {
write_sig(ctxt, copy doc.sig); write_sig(ctxt, copy doc.sig);
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
@ -621,7 +621,7 @@ fn should_write_const_description() {
fn write_enum( fn write_enum(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::EnumDoc doc: doc::EnumDoc
) { ) {
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
write_variants(ctxt, doc.variants); write_variants(ctxt, doc.variants);
@ -657,7 +657,7 @@ fn write_variants(
ctxt.w.write_line(~""); ctxt.w.write_line(~"");
} }
fn write_variant(ctxt: &Ctxt, +doc: doc::VariantDoc) { fn write_variant(ctxt: &Ctxt, doc: doc::VariantDoc) {
assert doc.sig.is_some(); assert doc.sig.is_some();
let sig = (&doc.sig).get(); let sig = (&doc.sig).get();
match copy doc.desc { match copy doc.desc {
@ -703,7 +703,7 @@ fn should_write_variant_list_with_signatures() {
\n* `c(int)` - a\n\n"); \n* `c(int)` - a\n\n");
} }
fn write_trait(ctxt: &Ctxt, +doc: doc::TraitDoc) { fn write_trait(ctxt: &Ctxt, doc: doc::TraitDoc) {
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
write_methods(ctxt, doc.methods); write_methods(ctxt, doc.methods);
} }
@ -714,7 +714,7 @@ fn write_methods(ctxt: &Ctxt, docs: &[doc::MethodDoc]) {
} }
} }
fn write_method(ctxt: &Ctxt, +doc: doc::MethodDoc) { fn write_method(ctxt: &Ctxt, doc: doc::MethodDoc) {
write_header_(ctxt, H3, header_text_(~"Method", doc.name)); write_header_(ctxt, H3, header_text_(~"Method", doc.name));
write_fnlike( write_fnlike(
ctxt, ctxt,
@ -751,7 +751,7 @@ fn should_write_trait_method_signature() {
assert str::contains(markdown, ~"\n fn a()"); assert str::contains(markdown, ~"\n fn a()");
} }
fn write_impl(ctxt: &Ctxt, +doc: doc::ImplDoc) { fn write_impl(ctxt: &Ctxt, doc: doc::ImplDoc) {
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
write_methods(ctxt, doc.methods); write_methods(ctxt, doc.methods);
} }
@ -791,7 +791,7 @@ fn should_write_impl_method_signature() {
fn write_type( fn write_type(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::TyDoc doc: doc::TyDoc
) { ) {
write_sig(ctxt, copy doc.sig); write_sig(ctxt, copy doc.sig);
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
@ -818,7 +818,7 @@ fn should_write_type_signature() {
fn write_struct( fn write_struct(
ctxt: &Ctxt, ctxt: &Ctxt,
+doc: doc::StructDoc doc: doc::StructDoc
) { ) {
write_sig(ctxt, copy doc.sig); write_sig(ctxt, copy doc.sig);
write_oldcommon(ctxt, doc.desc(), doc.sections()); write_oldcommon(ctxt, doc.desc(), doc.sections());
@ -851,14 +851,14 @@ mod test {
use core::path::Path; use core::path::Path;
use core::str; use core::str;
pub fn render(+source: ~str) -> ~str { pub fn render(source: ~str) -> ~str {
let (srv, doc) = create_doc_srv(source); let (srv, doc) = create_doc_srv(source);
let markdown = write_markdown_str_srv(srv, doc); let markdown = write_markdown_str_srv(srv, doc);
debug!("markdown: %s", markdown); debug!("markdown: %s", markdown);
markdown markdown
} }
pub fn create_doc_srv(+source: ~str) -> (astsrv::Srv, doc::Doc) { pub fn create_doc_srv(source: ~str) -> (astsrv::Srv, doc::Doc) {
do astsrv::from_str(source) |srv| { do astsrv::from_str(source) |srv| {
let config = config::Config { let config = config::Config {
@ -888,13 +888,13 @@ mod test {
} }
} }
pub fn create_doc(+source: ~str) -> doc::Doc { pub fn create_doc(source: ~str) -> doc::Doc {
let (_, doc) = create_doc_srv(source); let (_, doc) = create_doc_srv(source);
doc doc
} }
pub fn write_markdown_str( pub fn write_markdown_str(
+doc: doc::Doc doc: doc::Doc
) -> ~str { ) -> ~str {
let (writer_factory, po) = markdown_writer::future_writer_factory(); let (writer_factory, po) = markdown_writer::future_writer_factory();
write_markdown(doc, move writer_factory); write_markdown(doc, move writer_factory);
@ -903,7 +903,7 @@ mod test {
pub fn write_markdown_str_srv( pub fn write_markdown_str_srv(
srv: astsrv::Srv, srv: astsrv::Srv,
+doc: doc::Doc doc: doc::Doc
) -> ~str { ) -> ~str {
let (writer_factory, po) = markdown_writer::future_writer_factory(); let (writer_factory, po) = markdown_writer::future_writer_factory();
let pass = mk_pass(move writer_factory); let pass = mk_pass(move writer_factory);

View file

@ -34,8 +34,8 @@ pub enum WriteInstr {
Done Done
} }
pub type Writer = fn~(+v: WriteInstr); pub type Writer = fn~(v: WriteInstr);
pub type WriterFactory = fn~(+page: doc::Page) -> Writer; pub type WriterFactory = fn~(page: doc::Page) -> Writer;
pub trait WriterUtils { pub trait WriterUtils {
fn write_str(+str: ~str); fn write_str(+str: ~str);
@ -44,11 +44,11 @@ pub trait WriterUtils {
} }
impl Writer: WriterUtils { impl Writer: WriterUtils {
fn write_str(+str: ~str) { fn write_str(str: ~str) {
self(Write(str)); self(Write(str));
} }
fn write_line(+str: ~str) { fn write_line(str: ~str) {
self.write_str(str + ~"\n"); self.write_str(str + ~"\n");
} }
@ -57,7 +57,7 @@ impl Writer: WriterUtils {
} }
} }
pub fn make_writer_factory(+config: config::Config) -> WriterFactory { pub fn make_writer_factory(config: config::Config) -> WriterFactory {
match config.output_format { match config.output_format {
config::Markdown => { config::Markdown => {
markdown_writer_factory(config) markdown_writer_factory(config)
@ -68,21 +68,21 @@ pub fn make_writer_factory(+config: config::Config) -> WriterFactory {
} }
} }
fn markdown_writer_factory(+config: config::Config) -> WriterFactory { fn markdown_writer_factory(config: config::Config) -> WriterFactory {
fn~(+page: doc::Page) -> Writer { fn~(page: doc::Page) -> Writer {
markdown_writer(copy config, page) markdown_writer(copy config, page)
} }
} }
fn pandoc_writer_factory(+config: config::Config) -> WriterFactory { fn pandoc_writer_factory(config: config::Config) -> WriterFactory {
fn~(+page: doc::Page) -> Writer { fn~(page: doc::Page) -> Writer {
pandoc_writer(copy config, page) pandoc_writer(copy config, page)
} }
} }
fn markdown_writer( fn markdown_writer(
+config: config::Config, config: config::Config,
+page: doc::Page page: doc::Page
) -> Writer { ) -> Writer {
let filename = make_local_filename(config, page); let filename = make_local_filename(config, page);
do generic_writer |markdown| { do generic_writer |markdown| {
@ -91,8 +91,8 @@ fn markdown_writer(
} }
fn pandoc_writer( fn pandoc_writer(
+config: config::Config, config: config::Config,
+page: doc::Page page: doc::Page
) -> Writer { ) -> Writer {
assert config.pandoc_cmd.is_some(); assert config.pandoc_cmd.is_some();
let pandoc_cmd = (&config.pandoc_cmd).get(); let pandoc_cmd = (&config.pandoc_cmd).get();
@ -167,7 +167,7 @@ fn readclose(fd: libc::c_int) -> ~str {
} }
} }
fn generic_writer(+process: fn~(+markdown: ~str)) -> Writer { fn generic_writer(process: fn~(markdown: ~str)) -> Writer {
let (setup_po, setup_ch) = pipes::stream(); let (setup_po, setup_ch) = pipes::stream();
do task::spawn |move process, move setup_ch| { do task::spawn |move process, move setup_ch| {
let po: oldcomm::Port<WriteInstr> = oldcomm::Port(); let po: oldcomm::Port<WriteInstr> = oldcomm::Port();
@ -186,22 +186,22 @@ fn generic_writer(+process: fn~(+markdown: ~str)) -> Writer {
}; };
let ch = setup_po.recv(); let ch = setup_po.recv();
fn~(+instr: WriteInstr) { fn~(instr: WriteInstr) {
oldcomm::send(ch, instr); oldcomm::send(ch, instr);
} }
} }
fn make_local_filename( fn make_local_filename(
+config: config::Config, config: config::Config,
+page: doc::Page page: doc::Page
) -> Path { ) -> Path {
let filename = make_filename(copy config, page); let filename = make_filename(copy config, page);
config.output_dir.push_rel(&filename) config.output_dir.push_rel(&filename)
} }
pub fn make_filename( pub fn make_filename(
+config: config::Config, config: config::Config,
+page: doc::Page page: doc::Page
) -> Path { ) -> Path {
let filename = { let filename = {
match page { match page {
@ -277,7 +277,7 @@ mod test {
use extract; use extract;
use path_pass; use path_pass;
pub fn mk_doc(+name: ~str, +source: ~str) -> doc::Doc { pub fn mk_doc(name: ~str, source: ~str) -> doc::Doc {
do astsrv::from_str(source) |srv| { do astsrv::from_str(source) |srv| {
let doc = extract::from_srv(srv, copy name); let doc = extract::from_srv(srv, copy name);
let doc = (path_pass::mk_pass().f)(srv, doc); let doc = (path_pass::mk_pass().f)(srv, doc);
@ -286,7 +286,7 @@ mod test {
} }
} }
fn write_file(path: &Path, +s: ~str) { fn write_file(path: &Path, s: ~str) {
use io::WriterUtil; use io::WriterUtil;
match io::file_writer(path, ~[io::Create, io::Truncate]) { match io::file_writer(path, ~[io::Create, io::Truncate]) {
@ -301,7 +301,7 @@ pub fn future_writer_factory(
) -> (WriterFactory, oldcomm::Port<(doc::Page, ~str)>) { ) -> (WriterFactory, oldcomm::Port<(doc::Page, ~str)>) {
let markdown_po = oldcomm::Port(); let markdown_po = oldcomm::Port();
let markdown_ch = oldcomm::Chan(&markdown_po); let markdown_ch = oldcomm::Chan(&markdown_po);
let writer_factory = fn~(+page: doc::Page) -> Writer { let writer_factory = fn~(page: doc::Page) -> Writer {
let (writer_po, writer_ch) = pipes::stream(); let (writer_po, writer_ch) = pipes::stream();
do task::spawn |move writer_ch| { do task::spawn |move writer_ch| {
let (writer, future) = future_writer(); let (writer, future) = future_writer();
@ -317,7 +317,7 @@ pub fn future_writer_factory(
fn future_writer() -> (Writer, future::Future<~str>) { fn future_writer() -> (Writer, future::Future<~str>) {
let (port, chan) = pipes::stream(); let (port, chan) = pipes::stream();
let writer = fn~(move chan, +instr: WriteInstr) { let writer = fn~(move chan, instr: WriteInstr) {
chan.send(copy instr); chan.send(copy instr);
}; };
let future = do future::from_fn |move port| { let future = do future::from_fn |move port| {

View file

@ -36,7 +36,7 @@ use syntax::ast;
pub fn mk_pass(output_style: config::OutputStyle) -> Pass { pub fn mk_pass(output_style: config::OutputStyle) -> Pass {
Pass { Pass {
name: ~"page", 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) run(srv, doc, output_style)
} }
} }
@ -44,7 +44,7 @@ pub fn mk_pass(output_style: config::OutputStyle) -> Pass {
pub fn run( pub fn run(
_srv: astsrv::Srv, _srv: astsrv::Srv,
+doc: doc::Doc, doc: doc::Doc,
output_style: config::OutputStyle output_style: config::OutputStyle
) -> doc::Doc { ) -> doc::Doc {
@ -81,7 +81,7 @@ fn make_doc_from_pages(page_port: PagePort) -> doc::Doc {
} }
} }
fn find_pages(+doc: doc::Doc, page_chan: PageChan) { fn find_pages(doc: doc::Doc, page_chan: PageChan) {
let fold = Fold { let fold = Fold {
fold_crate: fold_crate, fold_crate: fold_crate,
fold_mod: fold_mod, fold_mod: fold_mod,
@ -95,7 +95,7 @@ fn find_pages(+doc: doc::Doc, page_chan: PageChan) {
fn fold_crate( fn fold_crate(
fold: &fold::Fold<NominalPageChan>, fold: &fold::Fold<NominalPageChan>,
+doc: doc::CrateDoc doc: doc::CrateDoc
) -> doc::CrateDoc { ) -> doc::CrateDoc {
let doc = fold::default_seq_fold_crate(fold, doc); let doc = fold::default_seq_fold_crate(fold, doc);
@ -112,7 +112,7 @@ fn fold_crate(
fn fold_mod( fn fold_mod(
fold: &fold::Fold<NominalPageChan>, fold: &fold::Fold<NominalPageChan>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc); let doc = fold::default_any_fold_mod(fold, doc);
@ -127,7 +127,7 @@ fn fold_mod(
doc doc
} }
fn strip_mod(+doc: doc::ModDoc) -> doc::ModDoc { fn strip_mod(doc: doc::ModDoc) -> doc::ModDoc {
doc::ModDoc { doc::ModDoc {
items: do doc.items.filtered |item| { items: do doc.items.filtered |item| {
match *item { match *item {
@ -142,7 +142,7 @@ fn strip_mod(+doc: doc::ModDoc) -> doc::ModDoc {
fn fold_nmod( fn fold_nmod(
fold: &fold::Fold<NominalPageChan>, fold: &fold::Fold<NominalPageChan>,
+doc: doc::NmodDoc doc: doc::NmodDoc
) -> doc::NmodDoc { ) -> doc::NmodDoc {
let doc = fold::default_seq_fold_nmod(fold, doc); let doc = fold::default_seq_fold_nmod(fold, doc);
let page = doc::ItemPage(doc::NmodTag(copy doc)); let page = doc::ItemPage(doc::NmodTag(copy doc));
@ -193,7 +193,7 @@ mod test {
pub fn mk_doc_( pub fn mk_doc_(
output_style: config::OutputStyle, output_style: config::OutputStyle,
+source: ~str source: ~str
) -> doc::Doc { ) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
@ -201,7 +201,7 @@ mod test {
} }
} }
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
mk_doc_(config::DocPerMod, copy source) mk_doc_(config::DocPerMod, copy source)
} }
} }

View file

@ -25,7 +25,7 @@ pub fn from_file(file: &Path) -> @ast::crate {
file, ~[], parse::new_parse_sess(None)) 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( parse::parse_crate_from_source_str(
~"-", @source, ~[], parse::new_parse_sess(None)) ~"-", @source, ~[], parse::new_parse_sess(None))
} }
@ -35,11 +35,11 @@ pub fn from_file_sess(sess: session::Session, file: &Path) -> @ast::crate {
file, cfg(sess, file_input(copy *file)), sess.parse_sess) file, cfg(sess, file_input(copy *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( parse::parse_crate_from_source_str(
~"-", @copy source, cfg(sess, str_input(source)), sess.parse_sess) ~"-", @copy 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) driver::default_configuration(sess, ~"rustdoc", input)
} }

View file

@ -25,8 +25,8 @@ pub struct Pass {
pub fn run_passes( pub fn run_passes(
srv: astsrv::Srv, srv: astsrv::Srv,
+doc: doc::Doc, doc: doc::Doc,
+passes: ~[Pass] passes: ~[Pass]
) -> doc::Doc { ) -> doc::Doc {
let mut passno = 0; let mut passno = 0;
do vec::foldl(doc, passes) |doc, pass| { do vec::foldl(doc, passes) |doc, pass| {
@ -42,7 +42,7 @@ pub fn run_passes(
fn test_run_passes() { fn test_run_passes() {
fn pass1( fn pass1(
_srv: astsrv::Srv, _srv: astsrv::Srv,
+doc: doc::Doc doc: doc::Doc
) -> doc::Doc { ) -> doc::Doc {
doc::Doc{ doc::Doc{
pages: ~[ pages: ~[
@ -61,7 +61,7 @@ fn test_run_passes() {
} }
fn pass2( fn pass2(
_srv: astsrv::Srv, _srv: astsrv::Srv,
+doc: doc::Doc doc: doc::Doc
) -> doc::Doc { ) -> doc::Doc {
doc::Doc{ doc::Doc{
pages: ~[ pages: ~[

View file

@ -39,7 +39,7 @@ impl Ctxt: Clone {
} }
#[allow(non_implicitly_copyable_typarams)] #[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 = Ctxt { let ctxt = Ctxt {
srv: srv, srv: srv,
mut path: ~[] mut path: ~[]
@ -53,7 +53,7 @@ fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
(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 {
doc::ItemDoc { doc::ItemDoc {
path: copy fold.ctxt.path, path: copy fold.ctxt.path,
.. doc .. doc
@ -61,7 +61,7 @@ fn fold_item(fold: &fold::Fold<Ctxt>, +doc: doc::ItemDoc) -> doc::ItemDoc {
} }
#[allow(non_implicitly_copyable_typarams)] #[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; let is_topmod = doc.id() == ast::crate_node_id;
if !is_topmod { fold.ctxt.path.push(doc.name()); } if !is_topmod { fold.ctxt.path.push(doc.name()); }
@ -74,7 +74,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()); fold.ctxt.path.push(doc.name());
let doc = fold::default_seq_fold_nmod(fold, doc); let doc = fold::default_seq_fold_nmod(fold, doc);
fold.ctxt.path.pop(); fold.ctxt.path.pop();

View file

@ -28,7 +28,7 @@ pub fn mk_pass() -> Pass {
} }
} }
pub fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { pub fn run(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_mod: fold_mod, fold_mod: fold_mod,
.. fold::default_any_fold(srv) .. fold::default_any_fold(srv)
@ -38,7 +38,7 @@ pub fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
fn fold_mod( fn fold_mod(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc); let doc = fold::default_any_fold_mod(fold, doc);
@ -50,7 +50,7 @@ fn fold_mod(
} }
} }
fn is_hidden(srv: astsrv::Srv, +doc: doc::ItemDoc) -> bool { fn is_hidden(srv: astsrv::Srv, doc: doc::ItemDoc) -> bool {
use syntax::ast_map; use syntax::ast_map;
let id = doc.id; let id = doc.id;
@ -76,7 +76,7 @@ pub mod test {
use extract; use extract;
use prune_hidden_pass::run; use prune_hidden_pass::run;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
run(srv, doc) run(srv, doc)

View file

@ -29,7 +29,7 @@ pub fn mk_pass() -> Pass {
} }
} }
pub fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { pub fn run(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_mod: fold_mod, fold_mod: fold_mod,
.. fold::default_any_fold(srv) .. fold::default_any_fold(srv)
@ -39,7 +39,7 @@ pub fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
fn fold_mod( fn fold_mod(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc); let doc = fold::default_any_fold_mod(fold, doc);
@ -51,7 +51,7 @@ fn fold_mod(
} }
} }
fn is_visible(srv: astsrv::Srv, +doc: doc::ItemDoc) -> bool { fn is_visible(srv: astsrv::Srv, doc: doc::ItemDoc) -> bool {
use syntax::ast_map; use syntax::ast_map;
use syntax::ast; use syntax::ast;
@ -80,7 +80,7 @@ pub mod test {
use extract; use extract;
use prune_private_pass::run; use prune_private_pass::run;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
run(srv, doc) run(srv, doc)

View file

@ -20,7 +20,6 @@
#[crate_type = "lib"]; #[crate_type = "lib"];
#[no_core]; #[no_core];
#[legacy_modes];
#[legacy_records]; #[legacy_records];
#[allow(non_implicitly_copyable_typarams)]; #[allow(non_implicitly_copyable_typarams)];
@ -88,7 +87,7 @@ fn main() {
} }
/// Runs rustdoc over the given file /// Runs rustdoc over the given file
fn run(+config: Config) { fn run(config: Config) {
let source_file = copy config.input_crate; let source_file = copy config.input_crate;
@ -147,7 +146,7 @@ fn run(+config: Config) {
} }
} }
fn time<T>(+what: ~str, f: fn() -> T) -> T { fn time<T>(what: ~str, f: fn() -> T) -> T {
let start = std::time::precise_time_s(); let start = std::time::precise_time_s();
let rv = f(); let rv = f();
let end = std::time::precise_time_s(); let end = std::time::precise_time_s();

View file

@ -32,7 +32,7 @@ pub fn mk_pass() -> Pass {
} }
} }
pub fn run(_srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc { pub fn run(_srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_item: fold_item, fold_item: fold_item,
fold_trait: fold_trait, fold_trait: fold_trait,
@ -42,7 +42,7 @@ pub fn run(_srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
(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 doc = fold::default_seq_fold_item(fold, doc);
let (desc, sections) = sectionalize(copy doc.desc); let (desc, sections) = sectionalize(copy doc.desc);
@ -53,7 +53,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); let doc = fold::default_seq_fold_trait(fold, doc);
doc::TraitDoc { doc::TraitDoc {
@ -70,7 +70,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); let doc = fold::default_seq_fold_impl(fold, doc);
doc::ImplDoc { doc::ImplDoc {
@ -87,7 +87,7 @@ fn fold_impl(fold: &fold::Fold<()>, +doc: doc::ImplDoc) -> doc::ImplDoc {
} }
} }
fn sectionalize(+desc: Option<~str>) -> (Option<~str>, ~[doc::Section]) { fn sectionalize(desc: Option<~str>) -> (Option<~str>, ~[doc::Section]) {
/*! /*!
* Take a description of the form * Take a description of the form
@ -156,7 +156,7 @@ fn sectionalize(+desc: Option<~str>) -> (Option<~str>, ~[doc::Section]) {
(new_desc, sections) (new_desc, sections)
} }
fn parse_header(+line: ~str) -> Option<~str> { fn parse_header(line: ~str) -> Option<~str> {
if str::starts_with(line, ~"# ") { if str::starts_with(line, ~"# ") {
Some(str::slice(line, 2u, str::len(line))) Some(str::slice(line, 2u, str::len(line)))
} else { } else {
@ -259,7 +259,7 @@ pub mod test {
use extract; use extract;
use sectionalize_pass::run; use sectionalize_pass::run;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
let doc = (attr_pass::mk_pass().f)(srv, doc); let doc = (attr_pass::mk_pass().f)(srv, doc);

View file

@ -27,10 +27,10 @@ pub type ItemLtEqOp = pure fn~(v1: &doc::ItemTag, v2: &doc::ItemTag) -> bool;
type ItemLtEq = NominalOp<ItemLtEqOp>; type ItemLtEq = NominalOp<ItemLtEqOp>;
pub fn mk_pass(+name: ~str, +lteq: ItemLtEqOp) -> Pass { pub fn mk_pass(name: ~str, lteq: ItemLtEqOp) -> Pass {
Pass { Pass {
name: copy name, name: copy 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, NominalOp { op: copy lteq }) run(srv, doc, NominalOp { op: copy lteq })
} }
} }
@ -39,8 +39,8 @@ pub fn mk_pass(+name: ~str, +lteq: ItemLtEqOp) -> Pass {
#[allow(non_implicitly_copyable_typarams)] #[allow(non_implicitly_copyable_typarams)]
fn run( fn run(
_srv: astsrv::Srv, _srv: astsrv::Srv,
+doc: doc::Doc, doc: doc::Doc,
+lteq: ItemLtEq lteq: ItemLtEq
) -> doc::Doc { ) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_mod: fold_mod, fold_mod: fold_mod,
@ -52,7 +52,7 @@ fn run(
#[allow(non_implicitly_copyable_typarams)] #[allow(non_implicitly_copyable_typarams)]
fn fold_mod( fn fold_mod(
fold: &fold::Fold<ItemLtEq>, fold: &fold::Fold<ItemLtEq>,
+doc: doc::ModDoc doc: doc::ModDoc
) -> doc::ModDoc { ) -> doc::ModDoc {
let doc = fold::default_any_fold_mod(fold, doc); let doc = fold::default_any_fold_mod(fold, doc);
doc::ModDoc { doc::ModDoc {

View file

@ -23,11 +23,11 @@ use util::NominalOp;
use std::par; use std::par;
use std::cell::Cell; use std::cell::Cell;
pub fn mk_pass(+name: ~str, +op: fn~(&str) -> ~str) -> Pass { pub fn mk_pass(name: ~str, op: fn~(&str) -> ~str) -> Pass {
let op = Cell(op); let op = Cell(op);
Pass { Pass {
name: copy name, name: copy 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.take()) run(srv, doc, op.take())
} }
} }
@ -38,8 +38,8 @@ type Op = fn~(&str) -> ~str;
#[allow(non_implicitly_copyable_typarams)] #[allow(non_implicitly_copyable_typarams)]
fn run( fn run(
_srv: astsrv::Srv, _srv: astsrv::Srv,
+doc: doc::Doc, doc: doc::Doc,
+op: Op op: Op
) -> doc::Doc { ) -> doc::Doc {
let op = NominalOp { let op = NominalOp {
op: move op op: move op
@ -54,13 +54,13 @@ fn run(
(fold.fold_doc)(&fold, doc) (fold.fold_doc)(&fold, doc)
} }
fn maybe_apply_op(+op: NominalOp<Op>, s: &Option<~str>) -> Option<~str> { fn maybe_apply_op(op: NominalOp<Op>, s: &Option<~str>) -> Option<~str> {
s.map(|s| (op.op)(*s) ) s.map(|s| (op.op)(*s) )
} }
fn fold_item( fn fold_item(
fold: &fold::Fold<NominalOp<Op>>, fold: &fold::Fold<NominalOp<Op>>,
+doc: doc::ItemDoc doc: doc::ItemDoc
) -> doc::ItemDoc { ) -> doc::ItemDoc {
let doc = fold::default_seq_fold_item(fold, doc); let doc = fold::default_seq_fold_item(fold, doc);
@ -73,8 +73,8 @@ fn fold_item(
} }
fn apply_to_sections( fn apply_to_sections(
+op: NominalOp<Op>, op: NominalOp<Op>,
+sections: ~[doc::Section] sections: ~[doc::Section]
) -> ~[doc::Section] { ) -> ~[doc::Section] {
par::map(sections, |section, copy op| doc::Section { par::map(sections, |section, copy op| doc::Section {
header: (op.op)(copy section.header), header: (op.op)(copy section.header),
@ -84,7 +84,7 @@ fn apply_to_sections(
fn fold_enum( fn fold_enum(
fold: &fold::Fold<NominalOp<Op>>, fold: &fold::Fold<NominalOp<Op>>,
+doc: doc::EnumDoc) -> doc::EnumDoc { doc: doc::EnumDoc) -> doc::EnumDoc {
let doc = fold::default_seq_fold_enum(fold, doc); let doc = fold::default_seq_fold_enum(fold, doc);
let fold_copy = copy *fold; let fold_copy = copy *fold;
@ -101,7 +101,7 @@ fn fold_enum(
fn fold_trait( fn fold_trait(
fold: &fold::Fold<NominalOp<Op>>, fold: &fold::Fold<NominalOp<Op>>,
+doc: doc::TraitDoc doc: doc::TraitDoc
) -> doc::TraitDoc { ) -> doc::TraitDoc {
let doc = fold::default_seq_fold_trait(fold, doc); let doc = fold::default_seq_fold_trait(fold, doc);
@ -112,8 +112,8 @@ fn fold_trait(
} }
fn apply_to_methods( fn apply_to_methods(
+op: NominalOp<Op>, op: NominalOp<Op>,
+docs: ~[doc::MethodDoc] docs: ~[doc::MethodDoc]
) -> ~[doc::MethodDoc] { ) -> ~[doc::MethodDoc] {
do par::map(docs) |doc, copy op| { do par::map(docs) |doc, copy op| {
doc::MethodDoc { doc::MethodDoc {
@ -127,7 +127,7 @@ fn apply_to_methods(
fn fold_impl( fn fold_impl(
fold: &fold::Fold<NominalOp<Op>>, fold: &fold::Fold<NominalOp<Op>>,
+doc: doc::ImplDoc doc: doc::ImplDoc
) -> doc::ImplDoc { ) -> doc::ImplDoc {
let doc = fold::default_seq_fold_impl(fold, doc); let doc = fold::default_seq_fold_impl(fold, doc);
@ -303,7 +303,7 @@ mod test {
use core::str; use core::str;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
let doc = (attr_pass::mk_pass().f)(srv, doc); let doc = (attr_pass::mk_pass().f)(srv, doc);

View file

@ -43,7 +43,7 @@ mod test {
use extract; use extract;
use trim_pass::mk_pass; use trim_pass::mk_pass;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
let doc = (attr_pass::mk_pass().f)(srv, doc); let doc = (attr_pass::mk_pass().f)(srv, doc);

View file

@ -37,7 +37,7 @@ pub fn mk_pass() -> Pass {
pub fn run( pub fn run(
srv: astsrv::Srv, srv: astsrv::Srv,
+doc: doc::Doc doc: doc::Doc
) -> doc::Doc { ) -> doc::Doc {
let fold = Fold { let fold = Fold {
fold_fn: fold_fn, fold_fn: fold_fn,
@ -54,7 +54,7 @@ pub fn run(
fn fold_fn( fn fold_fn(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::FnDoc doc: doc::FnDoc
) -> doc::FnDoc { ) -> doc::FnDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -98,7 +98,7 @@ fn should_add_foreign_fn_sig() {
fn fold_const( fn fold_const(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ConstDoc doc: doc::ConstDoc
) -> doc::ConstDoc { ) -> doc::ConstDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -125,7 +125,7 @@ fn should_add_const_types() {
fn fold_enum( fn fold_enum(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::EnumDoc doc: doc::EnumDoc
) -> doc::EnumDoc { ) -> doc::EnumDoc {
let doc_id = doc.id(); let doc_id = doc.id();
let srv = fold.ctxt; let srv = fold.ctxt;
@ -166,7 +166,7 @@ fn should_add_variant_sigs() {
fn fold_trait( fn fold_trait(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::TraitDoc doc: doc::TraitDoc
) -> doc::TraitDoc { ) -> doc::TraitDoc {
doc::TraitDoc { doc::TraitDoc {
methods: merge_methods(fold.ctxt, doc.id(), copy doc.methods), methods: merge_methods(fold.ctxt, doc.id(), copy doc.methods),
@ -177,7 +177,7 @@ fn fold_trait(
fn merge_methods( fn merge_methods(
srv: astsrv::Srv, srv: astsrv::Srv,
item_id: doc::AstId, item_id: doc::AstId,
+docs: ~[doc::MethodDoc] docs: ~[doc::MethodDoc]
) -> ~[doc::MethodDoc] { ) -> ~[doc::MethodDoc] {
do par::map(docs) |doc| { do par::map(docs) |doc| {
doc::MethodDoc { doc::MethodDoc {
@ -190,7 +190,7 @@ fn merge_methods(
fn get_method_sig( fn get_method_sig(
srv: astsrv::Srv, srv: astsrv::Srv,
item_id: doc::AstId, item_id: doc::AstId,
+method_name: ~str method_name: ~str
) -> Option<~str> { ) -> Option<~str> {
do astsrv::exec(srv) |copy method_name, ctxt| { do astsrv::exec(srv) |copy method_name, ctxt| {
match ctxt.ast_map.get(item_id) { match ctxt.ast_map.get(item_id) {
@ -257,7 +257,7 @@ fn should_add_trait_method_sigs() {
fn fold_impl( fn fold_impl(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::ImplDoc doc: doc::ImplDoc
) -> doc::ImplDoc { ) -> doc::ImplDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -312,7 +312,7 @@ fn should_add_impl_method_sigs() {
fn fold_type( fn fold_type(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::TyDoc doc: doc::TyDoc
) -> doc::TyDoc { ) -> doc::TyDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -346,7 +346,7 @@ fn should_add_type_signatures() {
fn fold_struct( fn fold_struct(
fold: &fold::Fold<astsrv::Srv>, fold: &fold::Fold<astsrv::Srv>,
+doc: doc::StructDoc doc: doc::StructDoc
) -> doc::StructDoc { ) -> doc::StructDoc {
let srv = fold.ctxt; let srv = fold.ctxt;
@ -415,7 +415,7 @@ pub mod test {
use extract; use extract;
use tystr_pass::run; use tystr_pass::run;
pub fn mk_doc(+source: ~str) -> doc::Doc { pub fn mk_doc(source: ~str) -> doc::Doc {
do astsrv::from_str(copy source) |srv| { do astsrv::from_str(copy source) |srv| {
let doc = extract::from_srv(srv, ~""); let doc = extract::from_srv(srv, ~"");
run(srv, doc) run(srv, doc)

View file

@ -23,7 +23,7 @@ impl<T: Copy> NominalOp<T>: Clone {
} }
pub fn spawn_listener<A: Owned>( pub fn spawn_listener<A: Owned>(
+f: fn~(oldcomm::Port<A>)) -> oldcomm::Chan<A> { f: fn~(oldcomm::Port<A>)) -> oldcomm::Chan<A> {
let setup_po = oldcomm::Port(); let setup_po = oldcomm::Port();
let setup_ch = oldcomm::Chan(&setup_po); let setup_ch = oldcomm::Chan(&setup_po);
do task::spawn |move f| { do task::spawn |move f| {
@ -36,7 +36,7 @@ pub fn spawn_listener<A: Owned>(
} }
pub fn spawn_conversation<A: Owned, B: Owned> pub fn spawn_conversation<A: Owned, B: Owned>
(+f: fn~(oldcomm::Port<A>, oldcomm::Chan<B>)) (f: fn~(oldcomm::Port<A>, oldcomm::Chan<B>))
-> (oldcomm::Port<B>, oldcomm::Chan<A>) { -> (oldcomm::Port<B>, oldcomm::Chan<A>) {
let from_child = oldcomm::Port(); let from_child = oldcomm::Port();
let to_parent = oldcomm::Chan(&from_child); let to_parent = oldcomm::Chan(&from_child);