rustdoc: De-mode
This commit is contained in:
parent
16ea4b06ab
commit
baf301cd3e
24 changed files with 254 additions and 255 deletions
|
@ -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) {
|
||||||
|
|
|
@ -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) => {
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -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 = ~"";
|
||||||
|
|
|
@ -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, ~"")
|
||||||
}
|
}
|
||||||
|
|
|
@ -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),
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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| {
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
@ -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: ~[
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue