about summary refs log tree commit diff
path: root/src/rustdoc/sort_pass.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/rustdoc/sort_pass.rs')
-rw-r--r--src/rustdoc/sort_pass.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/rustdoc/sort_pass.rs b/src/rustdoc/sort_pass.rs
index 0dcefe4bcbe..dbe7a7e19db 100644
--- a/src/rustdoc/sort_pass.rs
+++ b/src/rustdoc/sort_pass.rs
@@ -6,9 +6,12 @@ export item_lteq, mk_pass;
 
 type item_lteq = fn~(doc::itemtag, doc::itemtag) -> bool;
 
-fn mk_pass(lteq: item_lteq) -> pass {
-    fn~(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc {
-        run(srv, doc, lteq)
+fn mk_pass(name: str, lteq: item_lteq) -> pass {
+    {
+        name: name,
+        f: fn~(srv: astsrv::srv, doc: doc::cratedoc) -> doc::cratedoc {
+            run(srv, doc, lteq)
+        }
     }
 }
 
@@ -44,7 +47,7 @@ fn test() {
     let source = "mod z { mod y { } fn x() { } } mod w { }";
     astsrv::from_str(source) {|srv|
         let doc = extract::from_srv(srv, "");
-        let doc = mk_pass(name_lteq)(srv, doc);
+        let doc = mk_pass("", name_lteq).f(srv, doc);
         assert doc.topmod.mods()[0].name() == "w";
         assert doc.topmod.mods()[1].items[0].name() == "x";
         assert doc.topmod.mods()[1].items[1].name() == "y";
@@ -61,10 +64,10 @@ fn should_be_stable() {
     let source = "mod a { mod b { } } mod c { mod d { } }";
     astsrv::from_str(source) {|srv|
         let doc = extract::from_srv(srv, "");
-        let doc = mk_pass(always_eq)(srv, doc);
+        let doc = mk_pass("", always_eq).f(srv, doc);
         assert doc.topmod.mods()[0].items[0].name() == "b";
         assert doc.topmod.mods()[1].items[0].name() == "d";
-        let doc = mk_pass(always_eq)(srv, doc);
+        let doc = mk_pass("", always_eq).f(srv, doc);
         assert doc.topmod.mods()[0].items[0].name() == "b";
         assert doc.topmod.mods()[1].items[0].name() == "d";
     }