about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2013-01-30 19:32:36 -0800
committerBrian Anderson <banderson@mozilla.com>2013-01-30 19:32:36 -0800
commitbaf301cd3ef97115c82cac7f84827b54886f5635 (patch)
treeb6f160fd94998ac5a37ef682a689ae59b6011469
parent16ea4b06abf4bbcec05cccf58d644085f3862541 (diff)
downloadrust-baf301cd3ef97115c82cac7f84827b54886f5635.tar.gz
rust-baf301cd3ef97115c82cac7f84827b54886f5635.zip
rustdoc: De-mode
-rw-r--r--src/librustdoc/astsrv.rs12
-rw-r--r--src/librustdoc/attr_parser.rs10
-rw-r--r--src/librustdoc/attr_pass.rs18
-rw-r--r--src/librustdoc/config.rs8
-rw-r--r--src/librustdoc/demo.rs4
-rw-r--r--src/librustdoc/desc_to_brief_pass.rs20
-rw-r--r--src/librustdoc/extract.rs40
-rw-r--r--src/librustdoc/fold.rs90
-rw-r--r--src/librustdoc/markdown_index_pass.rs26
-rw-r--r--src/librustdoc/markdown_pass.rs94
-rw-r--r--src/librustdoc/markdown_writer.rs46
-rw-r--r--src/librustdoc/page_pass.rs18
-rw-r--r--src/librustdoc/parse.rs6
-rw-r--r--src/librustdoc/pass.rs8
-rw-r--r--src/librustdoc/path_pass.rs8
-rw-r--r--src/librustdoc/prune_hidden_pass.rs8
-rw-r--r--src/librustdoc/prune_private_pass.rs8
-rw-r--r--src/librustdoc/rustdoc.rc5
-rw-r--r--src/librustdoc/sectionalize_pass.rs14
-rw-r--r--src/librustdoc/sort_pass.rs10
-rw-r--r--src/librustdoc/text_pass.rs28
-rw-r--r--src/librustdoc/trim_pass.rs2
-rw-r--r--src/librustdoc/tystr_pass.rs22
-rw-r--r--src/librustdoc/util.rs4
24 files changed, 254 insertions, 255 deletions
diff --git a/src/librustdoc/astsrv.rs b/src/librustdoc/astsrv.rs
index 3f117f049f3..c222ad10025 100644
--- a/src/librustdoc/astsrv.rs
+++ b/src/librustdoc/astsrv.rs
@@ -47,7 +47,7 @@ pub type Ctxt = {
 
 type SrvOwner<T> = fn(srv: Srv) -> 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 {
     HandleRequest(fn~(Ctxt)),
@@ -62,15 +62,15 @@ impl Srv: Clone {
     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)
 }
 
-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)))
 }
 
-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({
         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
 }
 
-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 ctxt = build_ctxt(
@@ -106,7 +106,7 @@ fn act(po: oldcomm::Port<Msg>, +source: ~str, +parse: Parser) {
 
 pub fn exec<T:Owned>(
     srv: Srv,
-    +f: fn~(ctxt: Ctxt) -> T
+    f: fn~(ctxt: Ctxt) -> T
 ) -> T {
     let (po, ch) = stream();
     let msg = HandleRequest(fn~(move f, ctxt: Ctxt) {
diff --git a/src/librustdoc/attr_parser.rs b/src/librustdoc/attr_parser.rs
index 311245ccc34..377b6a62c85 100644
--- a/src/librustdoc/attr_parser.rs
+++ b/src/librustdoc/attr_parser.rs
@@ -36,7 +36,7 @@ mod test {
 
     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::parser;
         use syntax::parse::attr::parser_attr;
@@ -52,7 +52,7 @@ mod test {
 }
 
 fn doc_metas(
-    +attrs: ~[ast::attribute]
+    attrs: ~[ast::attribute]
 ) -> ~[@ast::meta_item] {
 
     let doc_attrs = attr::find_attrs_by_name(attrs, ~"doc");
@@ -63,7 +63,7 @@ fn doc_metas(
     return doc_metas;
 }
 
-pub fn parse_crate(+attrs: ~[ast::attribute]) -> CrateAttrs {
+pub fn parse_crate(attrs: ~[ast::attribute]) -> CrateAttrs {
     let link_metas = attr::find_linkage_metas(attrs);
 
     {
@@ -95,7 +95,7 @@ fn should_not_extract_crate_name_if_no_name_value_in_link_attribute() {
     assert attrs.name == None;
 }
 
-pub fn parse_desc(+attrs: ~[ast::attribute]) -> Option<~str> {
+pub fn parse_desc(attrs: ~[ast::attribute]) -> Option<~str> {
     let doc_strs = do doc_metas(attrs).filter_map |meta| {
         attr::get_meta_item_value_str(*meta)
     };
@@ -122,7 +122,7 @@ fn parse_desc_should_parse_simple_doc_attributes() {
     assert attrs == Some(~"basic");
 }
 
-pub fn parse_hidden(+attrs: ~[ast::attribute]) -> bool {
+pub fn parse_hidden(attrs: ~[ast::attribute]) -> bool {
     do doc_metas(attrs).find |meta| {
         match attr::get_meta_item_list(*meta) {
           Some(metas) => {
diff --git a/src/librustdoc/attr_pass.rs b/src/librustdoc/attr_pass.rs
index c4671f0e839..f8fa3ccd3d9 100644
--- a/src/librustdoc/attr_pass.rs
+++ b/src/librustdoc/attr_pass.rs
@@ -43,7 +43,7 @@ pub fn mk_pass() -> Pass {
 
 pub fn run(
     srv: astsrv::Srv,
-    +doc: doc::Doc
+    doc: doc::Doc
 ) -> doc::Doc {
     let fold = Fold {
         fold_crate: fold_crate,
@@ -58,7 +58,7 @@ pub fn run(
 
 fn fold_crate(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::CrateDoc
+    doc: doc::CrateDoc
 ) -> doc::CrateDoc {
 
     let srv = fold.ctxt;
@@ -89,7 +89,7 @@ fn should_replace_top_module_name_with_crate_name() {
 
 fn fold_item(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::ItemDoc
+    doc: doc::ItemDoc
 ) -> doc::ItemDoc {
 
     let srv = fold.ctxt;
@@ -113,7 +113,7 @@ fn fold_item(
 fn parse_item_attrs<T:Owned>(
     srv: astsrv::Srv,
     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| {
         let attrs = match ctxt.ast_map.get(id) {
           ast_map::node_item(item, _) => copy item.attrs,
@@ -156,7 +156,7 @@ fn should_extract_fn_attributes() {
 
 fn fold_enum(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::EnumDoc
+    doc: doc::EnumDoc
 ) -> doc::EnumDoc {
 
     let srv = fold.ctxt;
@@ -207,7 +207,7 @@ fn should_extract_variant_docs() {
 
 fn fold_trait(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::TraitDoc
+    doc: doc::TraitDoc
 ) -> doc::TraitDoc {
     let srv = fold.ctxt;
     let doc = fold::default_seq_fold_trait(fold, doc);
@@ -221,7 +221,7 @@ fn fold_trait(
 fn merge_method_attrs(
     srv: astsrv::Srv,
     item_id: doc::AstId,
-    +docs: ~[doc::MethodDoc]
+    docs: ~[doc::MethodDoc]
 ) -> ~[doc::MethodDoc] {
 
     // Create an assoc list from method name to attributes
@@ -284,7 +284,7 @@ fn should_extract_trait_method_docs() {
 
 fn fold_impl(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::ImplDoc
+    doc: doc::ImplDoc
 ) -> doc::ImplDoc {
     let srv = fold.ctxt;
     let doc = fold::default_seq_fold_impl(fold, doc);
@@ -319,7 +319,7 @@ mod test {
     use doc;
     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| {
             let doc = extract::from_srv(srv, ~"");
             run(srv, doc)
diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs
index 12d7109c106..8277ac0e45d 100644
--- a/src/librustdoc/config.rs
+++ b/src/librustdoc/config.rs
@@ -123,7 +123,7 @@ pub fn parse_config(args: &[~str]) -> Result<Config, ~str> {
 
 pub fn parse_config_(
     args: &[~str],
-    +program_output: ProgramOutput
+    program_output: ProgramOutput
 ) -> Result<Config, ~str> {
     let args = args.tail();
     let opts = vec::unzip(opts()).first();
@@ -147,7 +147,7 @@ pub fn parse_config_(
 fn config_from_opts(
     input_crate: &Path,
     matches: &getopts::Matches,
-    +program_output: ProgramOutput
+    program_output: ProgramOutput
 ) -> Result<Config, ~str> {
 
     let config = default_config(input_crate);
@@ -222,8 +222,8 @@ fn parse_output_style(output_style: &str) -> Result<OutputStyle, ~str> {
 
 fn maybe_find_pandoc(
     config: &Config,
-    +maybe_pandoc_cmd: Option<~str>,
-    +program_output: ProgramOutput
+    maybe_pandoc_cmd: Option<~str>,
+    program_output: ProgramOutput
 ) -> Result<Option<~str>, ~str> {
     if config.output_format != PandocHtml {
         return result::Ok(maybe_pandoc_cmd);
diff --git a/src/librustdoc/demo.rs b/src/librustdoc/demo.rs
index 81b10666673..4a046aaf503 100644
--- a/src/librustdoc/demo.rs
+++ b/src/librustdoc/demo.rs
@@ -39,8 +39,8 @@ enum OmNomNomy {
 }
 
 fn take_my_order_please(
-    +_waitperson: WaitPerson,
-    +_order: ~[OmNomNomy]
+    _waitperson: WaitPerson,
+    _order: ~[OmNomNomy]
 ) -> uint {
 
     /*!
diff --git a/src/librustdoc/desc_to_brief_pass.rs b/src/librustdoc/desc_to_brief_pass.rs
index b6632c602ff..9cb74a522a7 100644
--- a/src/librustdoc/desc_to_brief_pass.rs
+++ b/src/librustdoc/desc_to_brief_pass.rs
@@ -37,7 +37,7 @@ pub fn mk_pass() -> Pass {
 
 pub fn run(
     _srv: astsrv::Srv,
-    +doc: doc::Doc
+    doc: doc::Doc
 ) -> doc::Doc {
     let fold = Fold {
         fold_item: fold_item,
@@ -48,7 +48,7 @@ pub fn run(
     (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);
 
     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);
 
     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);
 
     doc::ImplDoc {
@@ -108,7 +108,7 @@ pub mod test {
     use doc;
     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| {
             let doc = extract::from_srv(srv, ~"");
             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() {
         return None
     }
@@ -125,7 +125,7 @@ fn extract(+desc: Option<~str>) -> Option<~str> {
     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;
 
@@ -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);
     if !paras.is_empty() {
         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;
     // The index of the character following a single dot. This allows
     // 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 mut whitespace_lines = 0;
     let mut accum = ~"";
diff --git a/src/librustdoc/extract.rs b/src/librustdoc/extract.rs
index 70e4d547bd4..de336d9e07e 100644
--- a/src/librustdoc/extract.rs
+++ b/src/librustdoc/extract.rs
@@ -43,7 +43,7 @@ pub fn interner() -> @syntax::parse::token::ident_interner {
 
 pub fn from_srv(
     srv: astsrv::Srv,
-    +default_name: ~str
+    default_name: ~str
 ) -> doc::Doc {
 
     //! Use the AST service to create a document tree
@@ -55,7 +55,7 @@ pub fn from_srv(
 
 pub fn extract(
     crate: @ast::crate,
-    +default_name: ~str
+    default_name: ~str
 ) -> doc::Doc {
     doc::Doc {
         pages: ~[
@@ -68,13 +68,13 @@ pub fn extract(
 
 fn top_moddoc_from_crate(
     crate: @ast::crate,
-    +default_name: ~str
+    default_name: ~str
 ) -> doc::ModDoc {
     moddoc_from_mod(mk_itemdoc(ast::crate_node_id, default_name),
                     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 {
         id: id,
         name: name,
@@ -87,8 +87,8 @@ fn mk_itemdoc(id: ast::node_id, +name: ~str) -> doc::ItemDoc {
 }
 
 fn moddoc_from_mod(
-    +itemdoc: doc::ItemDoc,
-    +module_: ast::_mod
+    itemdoc: doc::ItemDoc,
+    module_: ast::_mod
 ) -> doc::ModDoc {
     doc::ModDoc {
         item: itemdoc,
@@ -148,8 +148,8 @@ fn moddoc_from_mod(
 }
 
 fn nmoddoc_from_mod(
-    +itemdoc: doc::ItemDoc,
-    +module_: ast::foreign_mod
+    itemdoc: doc::ItemDoc,
+    module_: ast::foreign_mod
 ) -> doc::NmodDoc {
     let mut fns = ~[];
     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 {
         item: itemdoc,
         sig: None
     }
 }
 
-fn constdoc_from_const(+itemdoc: doc::ItemDoc) -> doc::ConstDoc {
+fn constdoc_from_const(itemdoc: doc::ItemDoc) -> doc::ConstDoc {
     doc::SimpleItemDoc {
         item: itemdoc,
         sig: None
@@ -190,8 +190,8 @@ fn should_extract_const_name_and_id() {
 }
 
 fn enumdoc_from_enum(
-    +itemdoc: doc::ItemDoc,
-    +variants: ~[ast::variant]
+    itemdoc: doc::ItemDoc,
+    variants: ~[ast::variant]
 ) -> doc::EnumDoc {
     doc::EnumDoc {
         item: itemdoc,
@@ -200,7 +200,7 @@ fn enumdoc_from_enum(
 }
 
 fn variantdocs_from_variants(
-    +variants: ~[ast::variant]
+    variants: ~[ast::variant]
 ) -> ~[doc::VariantDoc] {
     vec::map(variants, variantdoc_from_variant)
 }
@@ -227,8 +227,8 @@ fn should_extract_enum_variants() {
 }
 
 fn traitdoc_from_trait(
-    +itemdoc: doc::ItemDoc,
-    +methods: ~[ast::trait_method]
+    itemdoc: doc::ItemDoc,
+    methods: ~[ast::trait_method]
 ) -> doc::TraitDoc {
     doc::TraitDoc {
         item: itemdoc,
@@ -272,8 +272,8 @@ fn should_extract_trait_methods() {
 }
 
 fn impldoc_from_impl(
-    +itemdoc: doc::ItemDoc,
-    +methods: ~[@ast::method]
+    itemdoc: doc::ItemDoc,
+    methods: ~[@ast::method]
 ) -> doc::ImplDoc {
     doc::ImplDoc {
         item: itemdoc,
@@ -299,7 +299,7 @@ fn should_extract_impl_methods() {
 }
 
 fn tydoc_from_ty(
-    +itemdoc: doc::ItemDoc
+    itemdoc: doc::ItemDoc
 ) -> doc::TyDoc {
     doc::SimpleItemDoc {
         item: itemdoc,
@@ -314,7 +314,7 @@ fn should_extract_tys() {
 }
 
 fn structdoc_from_struct(
-    +itemdoc: doc::ItemDoc,
+    itemdoc: doc::ItemDoc,
     struct_def: @ast::struct_def
 ) -> doc::StructDoc {
     doc::StructDoc {
@@ -350,7 +350,7 @@ mod test {
 
     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);
         extract(ast, ~"")
     }
diff --git a/src/librustdoc/fold.rs b/src/librustdoc/fold.rs
index 2f1dbdf3f50..e85f8595a5a 100644
--- a/src/librustdoc/fold.rs
+++ b/src/librustdoc/fold.rs
@@ -55,36 +55,36 @@ impl<T: Clone> Fold<T>: Clone {
     }
 }
 
-type FoldDoc<T> = fn~(fold: &Fold<T>, +doc: doc::Doc) -> doc::Doc;
-type FoldCrate<T> = fn~(fold: &Fold<T>, +doc: doc::CrateDoc) -> doc::CrateDoc;
-type FoldItem<T> = fn~(fold: &Fold<T>, +doc: doc::ItemDoc) -> doc::ItemDoc;
-type FoldMod<T> = fn~(fold: &Fold<T>, +doc: doc::ModDoc) -> doc::ModDoc;
-type FoldNmod<T> = fn~(fold: &Fold<T>, +doc: doc::NmodDoc) -> doc::NmodDoc;
-type FoldFn<T> = fn~(fold: &Fold<T>, +doc: doc::FnDoc) -> doc::FnDoc;
-type FoldConst<T> = fn~(fold: &Fold<T>, +doc: doc::ConstDoc) -> doc::ConstDoc;
-type FoldEnum<T> = fn~(fold: &Fold<T>, +doc: doc::EnumDoc) -> doc::EnumDoc;
-type FoldTrait<T> = fn~(fold: &Fold<T>, +doc: doc::TraitDoc) -> doc::TraitDoc;
-type FoldImpl<T> = fn~(fold: &Fold<T>, +doc: doc::ImplDoc) -> doc::ImplDoc;
-type FoldType<T> = fn~(fold: &Fold<T>, +doc: doc::TyDoc) -> doc::TyDoc;
+type FoldDoc<T> = fn~(fold: &Fold<T>, doc: doc::Doc) -> doc::Doc;
+type FoldCrate<T> = fn~(fold: &Fold<T>, doc: doc::CrateDoc) -> doc::CrateDoc;
+type FoldItem<T> = fn~(fold: &Fold<T>, doc: doc::ItemDoc) -> doc::ItemDoc;
+type FoldMod<T> = fn~(fold: &Fold<T>, doc: doc::ModDoc) -> doc::ModDoc;
+type FoldNmod<T> = fn~(fold: &Fold<T>, doc: doc::NmodDoc) -> doc::NmodDoc;
+type FoldFn<T> = fn~(fold: &Fold<T>, doc: doc::FnDoc) -> doc::FnDoc;
+type FoldConst<T> = fn~(fold: &Fold<T>, doc: doc::ConstDoc) -> doc::ConstDoc;
+type FoldEnum<T> = fn~(fold: &Fold<T>, doc: doc::EnumDoc) -> doc::EnumDoc;
+type FoldTrait<T> = fn~(fold: &Fold<T>, doc: doc::TraitDoc) -> doc::TraitDoc;
+type FoldImpl<T> = fn~(fold: &Fold<T>, doc: doc::ImplDoc) -> doc::ImplDoc;
+type FoldType<T> = fn~(fold: &Fold<T>, doc: doc::TyDoc) -> doc::TyDoc;
 type FoldStruct<T> = fn~(fold: &Fold<T>,
-                         +doc: doc::StructDoc) -> doc::StructDoc;
+                         doc: doc::StructDoc) -> doc::StructDoc;
 
 // This exists because fn types don't infer correctly as record
 // initializers, but they do as function arguments
 fn mk_fold<T:Clone>(
-    +ctxt: T,
-    +fold_doc: FoldDoc<T>,
-    +fold_crate: FoldCrate<T>,
-    +fold_item: FoldItem<T>,
-    +fold_mod: FoldMod<T>,
-    +fold_nmod: FoldNmod<T>,
-    +fold_fn: FoldFn<T>,
-    +fold_const: FoldConst<T>,
-    +fold_enum: FoldEnum<T>,
-    +fold_trait: FoldTrait<T>,
-    +fold_impl: FoldImpl<T>,
-    +fold_type: FoldType<T>,
-    +fold_struct: FoldStruct<T>
+    ctxt: T,
+    fold_doc: FoldDoc<T>,
+    fold_crate: FoldCrate<T>,
+    fold_item: FoldItem<T>,
+    fold_mod: FoldMod<T>,
+    fold_nmod: FoldNmod<T>,
+    fold_fn: FoldFn<T>,
+    fold_const: FoldConst<T>,
+    fold_enum: FoldEnum<T>,
+    fold_trait: FoldTrait<T>,
+    fold_impl: FoldImpl<T>,
+    fold_type: FoldType<T>,
+    fold_struct: FoldStruct<T>
 ) -> Fold<T> {
     Fold {
         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(
         move ctxt,
         |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(
         move ctxt,
         |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(
         move ctxt,
         |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 {
         pages: do vec::map(doc.pages) |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>(
     fold: &Fold<T>,
-    +doc: doc::CrateDoc
+    doc: doc::CrateDoc
 ) -> doc::CrateDoc {
     doc::CrateDoc {
         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>(
     _fold: &Fold<T>,
-    +doc: doc::ItemDoc
+    doc: doc::ItemDoc
 ) -> doc::ItemDoc {
     doc
 }
 
 pub fn default_any_fold_mod<T:Owned Clone>(
     fold: &Fold<T>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
     let fold_copy = fold.clone();
     doc::ModDoc {
@@ -205,7 +205,7 @@ pub fn default_any_fold_mod<T:Owned Clone>(
 
 pub fn default_seq_fold_mod<T>(
     fold: &Fold<T>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
     doc::ModDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
     let fold_copy = fold.clone();
     doc::ModDoc {
@@ -232,7 +232,7 @@ pub fn default_par_fold_mod<T:Owned Clone>(
 
 pub fn default_any_fold_nmod<T:Owned Clone>(
     fold: &Fold<T>,
-    +doc: doc::NmodDoc
+    doc: doc::NmodDoc
 ) -> doc::NmodDoc {
     let fold_copy = fold.clone();
     doc::NmodDoc {
@@ -246,7 +246,7 @@ pub fn default_any_fold_nmod<T:Owned Clone>(
 
 pub fn default_seq_fold_nmod<T>(
     fold: &Fold<T>,
-    +doc: doc::NmodDoc
+    doc: doc::NmodDoc
 ) -> doc::NmodDoc {
     doc::NmodDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::NmodDoc
+    doc: doc::NmodDoc
 ) -> doc::NmodDoc {
     let fold_copy = fold.clone();
     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 {
       doc::ModTag(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>(
     fold: &Fold<T>,
-    +doc: doc::FnDoc
+    doc: doc::FnDoc
 ) -> doc::FnDoc {
     doc::SimpleItemDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::ConstDoc
+    doc: doc::ConstDoc
 ) -> doc::ConstDoc {
     doc::SimpleItemDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::EnumDoc
+    doc: doc::EnumDoc
 ) -> doc::EnumDoc {
     doc::EnumDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::TraitDoc
+    doc: doc::TraitDoc
 ) -> doc::TraitDoc {
     doc::TraitDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::ImplDoc
+    doc: doc::ImplDoc
 ) -> doc::ImplDoc {
     doc::ImplDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::TyDoc
+    doc: doc::TyDoc
 ) -> doc::TyDoc {
     doc::SimpleItemDoc {
         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>(
     fold: &Fold<T>,
-    +doc: doc::StructDoc
+    doc: doc::StructDoc
 ) -> doc::StructDoc {
     doc::StructDoc {
         item: (fold.fold_item)(fold, copy doc.item),
diff --git a/src/librustdoc/markdown_index_pass.rs b/src/librustdoc/markdown_index_pass.rs
index 61da26b568d..0c5a31ea7ed 100644
--- a/src/librustdoc/markdown_index_pass.rs
+++ b/src/librustdoc/markdown_index_pass.rs
@@ -25,10 +25,10 @@ use pass::Pass;
 use core::str;
 use std::par;
 
-pub fn mk_pass(+config: config::Config) -> Pass {
+pub fn mk_pass(config: config::Config) -> Pass {
     Pass {
         name: ~"markdown_index",
-        f: fn~(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
+        f: fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
             run(srv, doc, copy config)
         }
     }
@@ -36,8 +36,8 @@ pub fn mk_pass(+config: config::Config) -> Pass {
 
 pub fn run(
     _srv: astsrv::Srv,
-    +doc: doc::Doc,
-    +config: config::Config
+    doc: doc::Doc,
+    config: config::Config
 ) -> doc::Doc {
     let fold = Fold {
         fold_mod: fold_mod,
@@ -49,7 +49,7 @@ pub fn run(
 
 fn fold_mod(
     fold: &fold::Fold<config::Config>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
 
     let doc = fold::default_any_fold_mod(fold, doc);
@@ -62,7 +62,7 @@ fn fold_mod(
 
 fn fold_nmod(
     fold: &fold::Fold<config::Config>,
-    +doc: doc::NmodDoc
+    doc: doc::NmodDoc
 ) -> doc::NmodDoc {
 
     let doc = fold::default_any_fold_nmod(fold, doc);
@@ -74,8 +74,8 @@ fn fold_nmod(
 }
 
 fn build_mod_index(
-    +doc: doc::ModDoc,
-    +config: config::Config
+    doc: doc::ModDoc,
+    config: config::Config
 ) -> doc::Index {
     doc::Index {
         entries: par::map(doc.items, |doc| {
@@ -85,8 +85,8 @@ fn build_mod_index(
 }
 
 fn build_nmod_index(
-    +doc: doc::NmodDoc,
-    +config: config::Config
+    doc: doc::NmodDoc,
+    config: config::Config
 ) -> doc::Index {
     doc::Index {
         entries: par::map(doc.fns, |doc| {
@@ -96,8 +96,8 @@ fn build_nmod_index(
 }
 
 fn item_to_entry(
-    +doc: doc::ItemTag,
-    +config: config::Config
+    doc: doc::ItemTag,
+    config: config::Config
 ) -> doc::IndexEntry {
     let link = match doc {
       doc::ModTag(_) | doc::NmodTag(_)
@@ -266,7 +266,7 @@ mod test {
 
     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 {
         do astsrv::from_str(source) |srv| {
             let config = config::Config {
diff --git a/src/librustdoc/markdown_pass.rs b/src/librustdoc/markdown_pass.rs
index d1ae5d4ecf3..a6be38b4eb4 100644
--- a/src/librustdoc/markdown_pass.rs
+++ b/src/librustdoc/markdown_pass.rs
@@ -41,9 +41,9 @@ use core::vec;
 use std::par;
 use syntax;
 
-pub fn mk_pass(+writer_factory: WriterFactory) -> Pass {
+pub fn mk_pass(writer_factory: WriterFactory) -> Pass {
     let f = fn~(move writer_factory,
-                srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
+                srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
         run(srv, doc, copy writer_factory)
     };
 
@@ -55,8 +55,8 @@ pub fn mk_pass(+writer_factory: WriterFactory) -> Pass {
 
 fn run(
     srv: astsrv::Srv,
-    +doc: doc::Doc,
-    +writer_factory: WriterFactory
+    doc: doc::Doc,
+    writer_factory: WriterFactory
 ) -> doc::Doc {
 
     pure fn mods_last(item1: &doc::ItemTag, item2: &doc::ItemTag) -> bool {
@@ -115,8 +115,8 @@ type Ctxt = {
 };
 
 pub fn write_markdown(
-    +doc: doc::Doc,
-    +writer_factory: WriterFactory
+    doc: doc::Doc,
+    writer_factory: WriterFactory
 ) {
     // There is easy parallelism to be had here, but
     // 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(~"");
 }
 
-fn make_title(+page: doc::Page) -> ~str {
+fn make_title(page: doc::Page) -> ~str {
     let item = match page {
       doc::CratePage(CrateDoc) => {
         doc::ModTag(copy CrateDoc.topmod)
@@ -205,18 +205,18 @@ enum Hlvl {
     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);
     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, '#'));
     ctxt.w.write_line(fmt!("%s %s", hashes, title));
     ctxt.w.write_line(~"");
 }
 
-pub fn header_kind(+doc: doc::ItemTag) -> ~str {
+pub fn header_kind(doc: doc::ItemTag) -> ~str {
     match doc {
       doc::ModTag(_) => {
         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()], ~"::");
     match &doc {
       &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 {
       &doc::ImplTag(ref ImplDoc) => {
         let header_kind = header_kind(copy doc);
@@ -305,21 +305,21 @@ fn header_text_(kind: &str, name: &str) -> ~str {
 
 fn write_crate(
     ctxt: &Ctxt,
-    +doc: doc::CrateDoc
+    doc: doc::CrateDoc
 ) {
     write_top_module(ctxt, copy doc.topmod);
 }
 
 fn write_top_module(
     ctxt: &Ctxt,
-    +ModDoc: doc::ModDoc
+    ModDoc: doc::ModDoc
 ) {
     write_mod_contents(ctxt, ModDoc);
 }
 
 fn write_mod(
     ctxt: &Ctxt,
-    +ModDoc: doc::ModDoc
+    ModDoc: doc::ModDoc
 ) {
     write_mod_contents(ctxt, ModDoc);
 }
@@ -332,7 +332,7 @@ fn should_write_full_path_to_mod() {
 
 fn write_oldcommon(
     ctxt: &Ctxt,
-    +desc: Option<~str>,
+    desc: Option<~str>,
     sections: &[doc::Section]
 ) {
     write_desc(ctxt, desc);
@@ -341,7 +341,7 @@ fn write_oldcommon(
 
 fn write_desc(
     ctxt: &Ctxt,
-    +desc: Option<~str>
+    desc: Option<~str>
 ) {
     match 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);
     ctxt.w.write_line(copy section.body);
     ctxt.w.write_line(~"");
@@ -377,7 +377,7 @@ fn should_write_sections() {
 
 fn write_mod_contents(
     ctxt: &Ctxt,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) {
     write_oldcommon(ctxt, doc.desc(), doc.sections());
     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);
 }
 
-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);
 }
 
-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 {
         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) {
-    write_header(ctxt, item_header_lvl(doc), doc);
+fn write_item_header(ctxt: &Ctxt, doc: doc::ItemTag) {
+    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 {
-      doc::ModTag(_) | doc::NmodTag(_) => H1,
+      &doc::ModTag(_) | &doc::NmodTag(_) => H1,
       _ => H2
     }
 }
@@ -432,7 +432,7 @@ fn should_write_crate_description() {
     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) {
         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());
     if doc.index.is_some() {
         write_index(ctxt, (&doc.index).get());
@@ -516,7 +516,7 @@ fn should_write_foreign_fn_headers() {
 
 fn write_fn(
     ctxt: &Ctxt,
-    +doc: doc::FnDoc
+    doc: doc::FnDoc
 ) {
     write_fnlike(
         ctxt,
@@ -528,15 +528,15 @@ fn write_fn(
 
 fn write_fnlike(
     ctxt: &Ctxt,
-    +sig: Option<~str>,
-    +desc: Option<~str>,
+    sig: Option<~str>,
+    desc: Option<~str>,
     sections: &[doc::Section]
 ) {
     write_sig(ctxt, sig);
     write_oldcommon(ctxt, desc, sections);
 }
 
-fn write_sig(ctxt: &Ctxt, +sig: Option<~str>) {
+fn write_sig(ctxt: &Ctxt, sig: Option<~str>) {
     match sig {
       Some(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 indented = vec::map(lines, |line| fmt!("    %s", *line) );
     str::connect(indented, ~"\n")
@@ -599,7 +599,7 @@ fn should_leave_blank_line_between_fn_header_and_sig() {
 
 fn write_const(
     ctxt: &Ctxt,
-    +doc: doc::ConstDoc
+    doc: doc::ConstDoc
 ) {
     write_sig(ctxt, copy doc.sig);
     write_oldcommon(ctxt, doc.desc(), doc.sections());
@@ -621,7 +621,7 @@ fn should_write_const_description() {
 
 fn write_enum(
     ctxt: &Ctxt,
-    +doc: doc::EnumDoc
+    doc: doc::EnumDoc
 ) {
     write_oldcommon(ctxt, doc.desc(), doc.sections());
     write_variants(ctxt, doc.variants);
@@ -657,7 +657,7 @@ fn write_variants(
     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();
     let sig = (&doc.sig).get();
     match copy doc.desc {
@@ -703,7 +703,7 @@ fn should_write_variant_list_with_signatures() {
          \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_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_fnlike(
         ctxt,
@@ -751,7 +751,7 @@ fn should_write_trait_method_signature() {
     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_methods(ctxt, doc.methods);
 }
@@ -791,7 +791,7 @@ fn should_write_impl_method_signature() {
 
 fn write_type(
     ctxt: &Ctxt,
-    +doc: doc::TyDoc
+    doc: doc::TyDoc
 ) {
     write_sig(ctxt, copy doc.sig);
     write_oldcommon(ctxt, doc.desc(), doc.sections());
@@ -818,7 +818,7 @@ fn should_write_type_signature() {
 
 fn write_struct(
     ctxt: &Ctxt,
-    +doc: doc::StructDoc
+    doc: doc::StructDoc
 ) {
     write_sig(ctxt, copy doc.sig);
     write_oldcommon(ctxt, doc.desc(), doc.sections());
@@ -851,14 +851,14 @@ mod test {
     use core::path::Path;
     use core::str;
 
-    pub fn render(+source: ~str) -> ~str {
+    pub fn render(source: ~str) -> ~str {
         let (srv, doc) = create_doc_srv(source);
         let markdown = write_markdown_str_srv(srv, doc);
         debug!("markdown: %s", 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| {
 
             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);
         doc
     }
 
     pub fn write_markdown_str(
-        +doc: doc::Doc
+        doc: doc::Doc
     ) -> ~str {
         let (writer_factory, po) = markdown_writer::future_writer_factory();
         write_markdown(doc, move writer_factory);
@@ -903,7 +903,7 @@ mod test {
 
     pub fn write_markdown_str_srv(
         srv: astsrv::Srv,
-        +doc: doc::Doc
+        doc: doc::Doc
     ) -> ~str {
         let (writer_factory, po) = markdown_writer::future_writer_factory();
         let pass = mk_pass(move writer_factory);
diff --git a/src/librustdoc/markdown_writer.rs b/src/librustdoc/markdown_writer.rs
index 406ff5d0604..04f50ebe67f 100644
--- a/src/librustdoc/markdown_writer.rs
+++ b/src/librustdoc/markdown_writer.rs
@@ -34,8 +34,8 @@ pub enum WriteInstr {
     Done
 }
 
-pub type Writer = fn~(+v: WriteInstr);
-pub type WriterFactory = fn~(+page: doc::Page) -> Writer;
+pub type Writer = fn~(v: WriteInstr);
+pub type WriterFactory = fn~(page: doc::Page) -> Writer;
 
 pub trait WriterUtils {
     fn write_str(+str: ~str);
@@ -44,11 +44,11 @@ pub trait WriterUtils {
 }
 
 impl Writer: WriterUtils {
-    fn write_str(+str: ~str) {
+    fn write_str(str: ~str) {
         self(Write(str));
     }
 
-    fn write_line(+str: ~str) {
+    fn write_line(str: ~str) {
         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 {
       config::Markdown => {
         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~(+page: doc::Page) -> Writer {
+fn markdown_writer_factory(config: config::Config) -> WriterFactory {
+    fn~(page: doc::Page) -> Writer {
         markdown_writer(copy config, page)
     }
 }
 
-fn pandoc_writer_factory(+config: config::Config) -> WriterFactory {
-    fn~(+page: doc::Page) -> Writer {
+fn pandoc_writer_factory(config: config::Config) -> WriterFactory {
+    fn~(page: doc::Page) -> Writer {
         pandoc_writer(copy config, page)
     }
 }
 
 fn markdown_writer(
-    +config: config::Config,
-    +page: doc::Page
+    config: config::Config,
+    page: doc::Page
 ) -> Writer {
     let filename = make_local_filename(config, page);
     do generic_writer |markdown| {
@@ -91,8 +91,8 @@ fn markdown_writer(
 }
 
 fn pandoc_writer(
-    +config: config::Config,
-    +page: doc::Page
+    config: config::Config,
+    page: doc::Page
 ) -> Writer {
     assert config.pandoc_cmd.is_some();
     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();
     do task::spawn |move process, move setup_ch| {
         let po: oldcomm::Port<WriteInstr> = oldcomm::Port();
@@ -186,22 +186,22 @@ fn generic_writer(+process: fn~(+markdown: ~str)) -> Writer {
     };
     let ch = setup_po.recv();
 
-    fn~(+instr: WriteInstr) {
+    fn~(instr: WriteInstr) {
         oldcomm::send(ch, instr);
     }
 }
 
 fn make_local_filename(
-    +config: config::Config,
-    +page: doc::Page
+    config: config::Config,
+    page: doc::Page
 ) -> Path {
     let filename = make_filename(copy config, page);
     config.output_dir.push_rel(&filename)
 }
 
 pub fn make_filename(
-    +config: config::Config,
-    +page: doc::Page
+    config: config::Config,
+    page: doc::Page
 ) -> Path {
     let filename = {
         match page {
@@ -277,7 +277,7 @@ mod test {
     use extract;
     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| {
             let doc = extract::from_srv(srv, copy name);
             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;
 
     match io::file_writer(path, ~[io::Create, io::Truncate]) {
@@ -301,7 +301,7 @@ pub fn future_writer_factory(
 ) -> (WriterFactory, oldcomm::Port<(doc::Page, ~str)>) {
     let markdown_po = oldcomm::Port();
     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();
         do task::spawn |move writer_ch| {
             let (writer, future) = future_writer();
@@ -317,7 +317,7 @@ pub fn future_writer_factory(
 
 fn future_writer() -> (Writer, future::Future<~str>) {
     let (port, chan) = pipes::stream();
-    let writer = fn~(move chan, +instr: WriteInstr) {
+    let writer = fn~(move chan, instr: WriteInstr) {
         chan.send(copy instr);
     };
     let future = do future::from_fn |move port| {
diff --git a/src/librustdoc/page_pass.rs b/src/librustdoc/page_pass.rs
index 5c209b7fef4..1649a7ee823 100644
--- a/src/librustdoc/page_pass.rs
+++ b/src/librustdoc/page_pass.rs
@@ -36,7 +36,7 @@ use syntax::ast;
 pub fn mk_pass(output_style: config::OutputStyle) -> Pass {
     Pass {
         name: ~"page",
-        f: fn~(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
+        f: fn~(srv: astsrv::Srv, doc: doc::Doc) -> doc::Doc {
             run(srv, doc, output_style)
         }
     }
@@ -44,7 +44,7 @@ pub fn mk_pass(output_style: config::OutputStyle) -> Pass {
 
 pub fn run(
     _srv: astsrv::Srv,
-    +doc: doc::Doc,
+    doc: doc::Doc,
     output_style: config::OutputStyle
 ) -> 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 {
         fold_crate: fold_crate,
         fold_mod: fold_mod,
@@ -95,7 +95,7 @@ fn find_pages(+doc: doc::Doc, page_chan: PageChan) {
 
 fn fold_crate(
     fold: &fold::Fold<NominalPageChan>,
-    +doc: doc::CrateDoc
+    doc: doc::CrateDoc
 ) -> doc::CrateDoc {
 
     let doc = fold::default_seq_fold_crate(fold, doc);
@@ -112,7 +112,7 @@ fn fold_crate(
 
 fn fold_mod(
     fold: &fold::Fold<NominalPageChan>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
 
     let doc = fold::default_any_fold_mod(fold, doc);
@@ -127,7 +127,7 @@ fn fold_mod(
     doc
 }
 
-fn strip_mod(+doc: doc::ModDoc) -> doc::ModDoc {
+fn strip_mod(doc: doc::ModDoc) -> doc::ModDoc {
     doc::ModDoc {
         items: do doc.items.filtered |item| {
             match *item {
@@ -142,7 +142,7 @@ fn strip_mod(+doc: doc::ModDoc) -> doc::ModDoc {
 
 fn fold_nmod(
     fold: &fold::Fold<NominalPageChan>,
-    +doc: doc::NmodDoc
+    doc: doc::NmodDoc
 ) -> doc::NmodDoc {
     let doc = fold::default_seq_fold_nmod(fold, doc);
     let page = doc::ItemPage(doc::NmodTag(copy doc));
@@ -193,7 +193,7 @@ mod test {
 
     pub fn mk_doc_(
         output_style: config::OutputStyle,
-        +source: ~str
+        source: ~str
     ) -> doc::Doc {
         do astsrv::from_str(copy source) |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)
     }
 }
diff --git a/src/librustdoc/parse.rs b/src/librustdoc/parse.rs
index 6648a3a4983..b8fcc29c32b 100644
--- a/src/librustdoc/parse.rs
+++ b/src/librustdoc/parse.rs
@@ -25,7 +25,7 @@ pub fn from_file(file: &Path) -> @ast::crate {
         file, ~[], parse::new_parse_sess(None))
 }
 
-pub fn from_str(+source: ~str) -> @ast::crate {
+pub fn from_str(source: ~str) -> @ast::crate {
     parse::parse_crate_from_source_str(
         ~"-", @source, ~[], parse::new_parse_sess(None))
 }
@@ -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)
 }
 
-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(
         ~"-", @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)
 }
diff --git a/src/librustdoc/pass.rs b/src/librustdoc/pass.rs
index 2ed937ee412..afd93175c9b 100644
--- a/src/librustdoc/pass.rs
+++ b/src/librustdoc/pass.rs
@@ -25,8 +25,8 @@ pub struct Pass {
 
 pub fn run_passes(
     srv: astsrv::Srv,
-    +doc: doc::Doc,
-    +passes: ~[Pass]
+    doc: doc::Doc,
+    passes: ~[Pass]
 ) -> doc::Doc {
     let mut passno = 0;
     do vec::foldl(doc, passes) |doc, pass| {
@@ -42,7 +42,7 @@ pub fn run_passes(
 fn test_run_passes() {
     fn pass1(
         _srv: astsrv::Srv,
-        +doc: doc::Doc
+        doc: doc::Doc
     ) -> doc::Doc {
         doc::Doc{
             pages: ~[
@@ -61,7 +61,7 @@ fn test_run_passes() {
     }
     fn pass2(
         _srv: astsrv::Srv,
-        +doc: doc::Doc
+        doc: doc::Doc
     ) -> doc::Doc {
         doc::Doc{
             pages: ~[
diff --git a/src/librustdoc/path_pass.rs b/src/librustdoc/path_pass.rs
index a69999b36fe..9c781c30dbc 100644
--- a/src/librustdoc/path_pass.rs
+++ b/src/librustdoc/path_pass.rs
@@ -39,7 +39,7 @@ impl Ctxt: Clone {
 }
 
 #[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 {
         srv: srv,
         mut path: ~[]
@@ -53,7 +53,7 @@ fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::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 {
         path: copy fold.ctxt.path,
         .. doc
@@ -61,7 +61,7 @@ fn fold_item(fold: &fold::Fold<Ctxt>, +doc: doc::ItemDoc) -> doc::ItemDoc {
 }
 
 #[allow(non_implicitly_copyable_typarams)]
-fn fold_mod(fold: &fold::Fold<Ctxt>, +doc: doc::ModDoc) -> doc::ModDoc {
+fn fold_mod(fold: &fold::Fold<Ctxt>, doc: doc::ModDoc) -> doc::ModDoc {
     let is_topmod = doc.id() == ast::crate_node_id;
 
     if !is_topmod { fold.ctxt.path.push(doc.name()); }
@@ -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());
     let doc = fold::default_seq_fold_nmod(fold, doc);
     fold.ctxt.path.pop();
diff --git a/src/librustdoc/prune_hidden_pass.rs b/src/librustdoc/prune_hidden_pass.rs
index 49165fbf019..9a9ec19b7db 100644
--- a/src/librustdoc/prune_hidden_pass.rs
+++ b/src/librustdoc/prune_hidden_pass.rs
@@ -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 {
         fold_mod: fold_mod,
         .. fold::default_any_fold(srv)
@@ -38,7 +38,7 @@ pub fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
 
 fn fold_mod(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
     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;
 
     let id = doc.id;
@@ -76,7 +76,7 @@ pub mod test {
     use extract;
     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| {
             let doc = extract::from_srv(srv, ~"");
             run(srv, doc)
diff --git a/src/librustdoc/prune_private_pass.rs b/src/librustdoc/prune_private_pass.rs
index ad39c1b9855..94098e4df86 100644
--- a/src/librustdoc/prune_private_pass.rs
+++ b/src/librustdoc/prune_private_pass.rs
@@ -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 {
         fold_mod: fold_mod,
         .. fold::default_any_fold(srv)
@@ -39,7 +39,7 @@ pub fn run(srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
 
 fn fold_mod(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
     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;
 
@@ -80,7 +80,7 @@ pub mod test {
     use extract;
     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| {
             let doc = extract::from_srv(srv, ~"");
             run(srv, doc)
diff --git a/src/librustdoc/rustdoc.rc b/src/librustdoc/rustdoc.rc
index 4fc68ff802c..1aa1edb61a3 100644
--- a/src/librustdoc/rustdoc.rc
+++ b/src/librustdoc/rustdoc.rc
@@ -20,7 +20,6 @@
 #[crate_type = "lib"];
 
 #[no_core];
-#[legacy_modes];
 #[legacy_records];
 
 #[allow(non_implicitly_copyable_typarams)];
@@ -88,7 +87,7 @@ fn main() {
 }
 
 /// Runs rustdoc over the given file
-fn run(+config: Config) {
+fn run(config: Config) {
 
     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 rv = f();
     let end = std::time::precise_time_s();
diff --git a/src/librustdoc/sectionalize_pass.rs b/src/librustdoc/sectionalize_pass.rs
index d6cf2e7b5e7..2e04f416176 100644
--- a/src/librustdoc/sectionalize_pass.rs
+++ b/src/librustdoc/sectionalize_pass.rs
@@ -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 {
         fold_item: fold_item,
         fold_trait: fold_trait,
@@ -42,7 +42,7 @@ pub fn run(_srv: astsrv::Srv, +doc: doc::Doc) -> doc::Doc {
     (fold.fold_doc)(&fold, doc)
 }
 
-fn fold_item(fold: &fold::Fold<()>, +doc: doc::ItemDoc) -> doc::ItemDoc {
+fn fold_item(fold: &fold::Fold<()>, doc: doc::ItemDoc) -> doc::ItemDoc {
     let doc = fold::default_seq_fold_item(fold, doc);
     let (desc, sections) = sectionalize(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);
 
     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);
 
     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
@@ -156,7 +156,7 @@ fn sectionalize(+desc: Option<~str>) -> (Option<~str>, ~[doc::Section]) {
     (new_desc, sections)
 }
 
-fn parse_header(+line: ~str) -> Option<~str> {
+fn parse_header(line: ~str) -> Option<~str> {
     if str::starts_with(line, ~"# ") {
         Some(str::slice(line, 2u, str::len(line)))
     } else {
@@ -259,7 +259,7 @@ pub mod test {
     use extract;
     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| {
             let doc = extract::from_srv(srv, ~"");
             let doc = (attr_pass::mk_pass().f)(srv, doc);
diff --git a/src/librustdoc/sort_pass.rs b/src/librustdoc/sort_pass.rs
index ac556de74bb..dcc4902c9b8 100644
--- a/src/librustdoc/sort_pass.rs
+++ b/src/librustdoc/sort_pass.rs
@@ -27,10 +27,10 @@ pub type ItemLtEqOp = pure fn~(v1: &doc::ItemTag, v2:  &doc::ItemTag) -> bool;
 
 type ItemLtEq = NominalOp<ItemLtEqOp>;
 
-pub fn mk_pass(+name: ~str, +lteq: ItemLtEqOp) -> Pass {
+pub fn mk_pass(name: ~str, lteq: ItemLtEqOp) -> Pass {
     Pass {
         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 })
         }
     }
@@ -39,8 +39,8 @@ pub fn mk_pass(+name: ~str, +lteq: ItemLtEqOp) -> Pass {
 #[allow(non_implicitly_copyable_typarams)]
 fn run(
     _srv: astsrv::Srv,
-    +doc: doc::Doc,
-    +lteq: ItemLtEq
+    doc: doc::Doc,
+    lteq: ItemLtEq
 ) -> doc::Doc {
     let fold = Fold {
         fold_mod: fold_mod,
@@ -52,7 +52,7 @@ fn run(
 #[allow(non_implicitly_copyable_typarams)]
 fn fold_mod(
     fold: &fold::Fold<ItemLtEq>,
-    +doc: doc::ModDoc
+    doc: doc::ModDoc
 ) -> doc::ModDoc {
     let doc = fold::default_any_fold_mod(fold, doc);
     doc::ModDoc {
diff --git a/src/librustdoc/text_pass.rs b/src/librustdoc/text_pass.rs
index ac47e25fdcf..f276854c4ec 100644
--- a/src/librustdoc/text_pass.rs
+++ b/src/librustdoc/text_pass.rs
@@ -23,11 +23,11 @@ use util::NominalOp;
 use std::par;
 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);
     Pass {
         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())
         }
     }
@@ -38,8 +38,8 @@ type Op = fn~(&str) -> ~str;
 #[allow(non_implicitly_copyable_typarams)]
 fn run(
     _srv: astsrv::Srv,
-    +doc: doc::Doc,
-    +op: Op
+    doc: doc::Doc,
+    op: Op
 ) -> doc::Doc {
     let op = NominalOp {
         op: move op
@@ -54,13 +54,13 @@ fn run(
     (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) )
 }
 
 fn fold_item(
     fold: &fold::Fold<NominalOp<Op>>,
-    +doc: doc::ItemDoc
+    doc: doc::ItemDoc
 ) -> doc::ItemDoc {
     let doc = fold::default_seq_fold_item(fold, doc);
 
@@ -73,8 +73,8 @@ fn fold_item(
 }
 
 fn apply_to_sections(
-    +op: NominalOp<Op>,
-    +sections: ~[doc::Section]
+    op: NominalOp<Op>,
+    sections: ~[doc::Section]
 ) -> ~[doc::Section] {
     par::map(sections, |section, copy op| doc::Section {
         header: (op.op)(copy section.header),
@@ -84,7 +84,7 @@ fn apply_to_sections(
 
 fn fold_enum(
     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 fold_copy = copy *fold;
 
@@ -101,7 +101,7 @@ fn fold_enum(
 
 fn fold_trait(
     fold: &fold::Fold<NominalOp<Op>>,
-    +doc: doc::TraitDoc
+    doc: doc::TraitDoc
 ) -> doc::TraitDoc {
     let doc = fold::default_seq_fold_trait(fold, doc);
 
@@ -112,8 +112,8 @@ fn fold_trait(
 }
 
 fn apply_to_methods(
-    +op: NominalOp<Op>,
-    +docs: ~[doc::MethodDoc]
+    op: NominalOp<Op>,
+    docs: ~[doc::MethodDoc]
 ) -> ~[doc::MethodDoc] {
     do par::map(docs) |doc, copy op| {
         doc::MethodDoc {
@@ -127,7 +127,7 @@ fn apply_to_methods(
 
 fn fold_impl(
     fold: &fold::Fold<NominalOp<Op>>,
-    +doc: doc::ImplDoc
+    doc: doc::ImplDoc
 ) -> doc::ImplDoc {
     let doc = fold::default_seq_fold_impl(fold, doc);
 
@@ -303,7 +303,7 @@ mod test {
 
     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| {
             let doc = extract::from_srv(srv, ~"");
             let doc = (attr_pass::mk_pass().f)(srv, doc);
diff --git a/src/librustdoc/trim_pass.rs b/src/librustdoc/trim_pass.rs
index c6c289346b1..bac69e32848 100644
--- a/src/librustdoc/trim_pass.rs
+++ b/src/librustdoc/trim_pass.rs
@@ -43,7 +43,7 @@ mod test {
     use extract;
     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| {
             let doc = extract::from_srv(srv, ~"");
             let doc = (attr_pass::mk_pass().f)(srv, doc);
diff --git a/src/librustdoc/tystr_pass.rs b/src/librustdoc/tystr_pass.rs
index 4d279db0596..f790c37e6ea 100644
--- a/src/librustdoc/tystr_pass.rs
+++ b/src/librustdoc/tystr_pass.rs
@@ -37,7 +37,7 @@ pub fn mk_pass() -> Pass {
 
 pub fn run(
     srv: astsrv::Srv,
-    +doc: doc::Doc
+    doc: doc::Doc
 ) -> doc::Doc {
     let fold = Fold {
         fold_fn: fold_fn,
@@ -54,7 +54,7 @@ pub fn run(
 
 fn fold_fn(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::FnDoc
+    doc: doc::FnDoc
 ) -> doc::FnDoc {
 
     let srv = fold.ctxt;
@@ -98,7 +98,7 @@ fn should_add_foreign_fn_sig() {
 
 fn fold_const(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::ConstDoc
+    doc: doc::ConstDoc
 ) -> doc::ConstDoc {
     let srv = fold.ctxt;
 
@@ -125,7 +125,7 @@ fn should_add_const_types() {
 
 fn fold_enum(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::EnumDoc
+    doc: doc::EnumDoc
 ) -> doc::EnumDoc {
     let doc_id = doc.id();
     let srv = fold.ctxt;
@@ -166,7 +166,7 @@ fn should_add_variant_sigs() {
 
 fn fold_trait(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::TraitDoc
+    doc: doc::TraitDoc
 ) -> doc::TraitDoc {
     doc::TraitDoc {
         methods: merge_methods(fold.ctxt, doc.id(), copy doc.methods),
@@ -177,7 +177,7 @@ fn fold_trait(
 fn merge_methods(
     srv: astsrv::Srv,
     item_id: doc::AstId,
-    +docs: ~[doc::MethodDoc]
+    docs: ~[doc::MethodDoc]
 ) -> ~[doc::MethodDoc] {
     do par::map(docs) |doc| {
         doc::MethodDoc {
@@ -190,7 +190,7 @@ fn merge_methods(
 fn get_method_sig(
     srv: astsrv::Srv,
     item_id: doc::AstId,
-    +method_name: ~str
+    method_name: ~str
 ) -> Option<~str> {
     do astsrv::exec(srv) |copy method_name, ctxt| {
         match ctxt.ast_map.get(item_id) {
@@ -257,7 +257,7 @@ fn should_add_trait_method_sigs() {
 
 fn fold_impl(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::ImplDoc
+    doc: doc::ImplDoc
 ) -> doc::ImplDoc {
 
     let srv = fold.ctxt;
@@ -312,7 +312,7 @@ fn should_add_impl_method_sigs() {
 
 fn fold_type(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::TyDoc
+    doc: doc::TyDoc
 ) -> doc::TyDoc {
 
     let srv = fold.ctxt;
@@ -346,7 +346,7 @@ fn should_add_type_signatures() {
 
 fn fold_struct(
     fold: &fold::Fold<astsrv::Srv>,
-    +doc: doc::StructDoc
+    doc: doc::StructDoc
 ) -> doc::StructDoc {
     let srv = fold.ctxt;
 
@@ -415,7 +415,7 @@ pub mod test {
     use extract;
     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| {
             let doc = extract::from_srv(srv, ~"");
             run(srv, doc)
diff --git a/src/librustdoc/util.rs b/src/librustdoc/util.rs
index 48ed77099c4..23741ed5acf 100644
--- a/src/librustdoc/util.rs
+++ b/src/librustdoc/util.rs
@@ -23,7 +23,7 @@ impl<T: Copy> NominalOp<T>: Clone {
 }
 
 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_ch = oldcomm::Chan(&setup_po);
     do task::spawn |move f| {
@@ -36,7 +36,7 @@ pub fn spawn_listener<A: 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>) {
     let from_child = oldcomm::Port();
     let to_parent = oldcomm::Chan(&from_child);