diff --git a/src/rustdoc/attr_pass.rs b/src/rustdoc/attr_pass.rs index 96cca34ea12..53304341778 100644 --- a/src/rustdoc/attr_pass.rs +++ b/src/rustdoc/attr_pass.rs @@ -1,7 +1,11 @@ import rustc::syntax::ast; import rustc::middle::ast_map; -export run; +export mk_pass; + +fn mk_pass() -> pass { + run +} fn run( srv: astsrv::srv, diff --git a/src/rustdoc/gen.rs b/src/rustdoc/gen.rs index fecfbed8e36..2366f818246 100644 --- a/src/rustdoc/gen.rs +++ b/src/rustdoc/gen.rs @@ -1,7 +1,19 @@ import std::io; import std::io::writer_util; -export write_markdown; +export mk_pass; + +fn mk_pass( + writer: fn~() -> io::writer +) -> pass { + ret fn~( + _srv: astsrv::srv, + doc: doc::cratedoc + ) -> doc::cratedoc { + write_markdown(doc, writer()); + doc + }; +} type ctxt = { w: io::writer, diff --git a/src/rustdoc/prune_undoc_pass.rs b/src/rustdoc/prune_undoc_pass.rs index af9ab970823..527c8828033 100644 --- a/src/rustdoc/prune_undoc_pass.rs +++ b/src/rustdoc/prune_undoc_pass.rs @@ -1,4 +1,8 @@ -export run; +export mk_pass; + +fn mk_pass() -> pass { + run +} type ctxt = { mutable have_docs: bool diff --git a/src/rustdoc/rustdoc.rs b/src/rustdoc/rustdoc.rs index c89a221f0f7..afcacbd5556 100755 --- a/src/rustdoc/rustdoc.rs +++ b/src/rustdoc/rustdoc.rs @@ -74,11 +74,11 @@ fn run(source_file: str) { let default_name = source_file; let srv = astsrv::mk_srv_from_file(source_file); let doc = extract::from_srv(srv, default_name); - let doc = run_passes(srv, doc, [ - attr_pass::run, + run_passes(srv, doc, [ + attr_pass::mk_pass(), // FIXME: This pass should be optional - prune_undoc_pass::run, - tystr_pass::run + prune_undoc_pass::mk_pass(), + tystr_pass::mk_pass(), + gen::mk_pass {|| std::io:: stdout()} ]); - gen::write_markdown(doc, std::io::stdout()); } \ No newline at end of file diff --git a/src/rustdoc/tystr_pass.rs b/src/rustdoc/tystr_pass.rs index 4a06aec5b24..e31a208d1d1 100644 --- a/src/rustdoc/tystr_pass.rs +++ b/src/rustdoc/tystr_pass.rs @@ -2,7 +2,11 @@ import rustc::syntax::ast; import rustc::syntax::print::pprust; import rustc::middle::ast_map; -export run; +export mk_pass; + +fn mk_pass() -> pass { + run +} fn run( srv: astsrv::srv,