summary refs log tree commit diff
path: root/src/rustdoc
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-01-16 16:01:33 -0800
committerBrian Anderson <banderson@mozilla.com>2012-01-16 21:12:35 -0800
commit22d182acd75f2fbb00bc2e90878ac24589820625 (patch)
tree034bf7232c1a4043b8aa73d53aba41ecce66e04a /src/rustdoc
parent04294e437bdd000d8a4bd4c9d47dfa4a2e6da624 (diff)
downloadrust-22d182acd75f2fbb00bc2e90878ac24589820625.tar.gz
rust-22d182acd75f2fbb00bc2e90878ac24589820625.zip
rustdoc: Remove attribute parsing from extract module
Diffstat (limited to 'src/rustdoc')
-rw-r--r--src/rustdoc/attr_parser.rs25
-rw-r--r--src/rustdoc/doc.rs2
-rw-r--r--src/rustdoc/extract.rs26
-rw-r--r--src/rustdoc/gen.rs7
4 files changed, 28 insertions, 32 deletions
diff --git a/src/rustdoc/attr_parser.rs b/src/rustdoc/attr_parser.rs
index fc520ee4d3a..8eab5030ba4 100644
--- a/src/rustdoc/attr_parser.rs
+++ b/src/rustdoc/attr_parser.rs
@@ -15,7 +15,7 @@ fn parse_fn(
                 _fndoc = some(~{
                     id: id,
                     name: name,
-                    brief: value,
+                    brief: some(value),
                     desc: none,
                     return: none,
                     args: []
@@ -34,7 +34,7 @@ fn parse_fn(
           ~{
               id: id,
               name: name,
-              brief: "_undocumented_",
+              brief: none,
               desc: none,
               return: none,
               args: []
@@ -102,15 +102,10 @@ fn parse_fn_(
         }
     }
 
-    let _brief = alt brief {
-        some(_b) { _b }
-        none. { "_undocumented_" }
-    };
-
     ~{
         id: id,
         name: name,
-        brief: _brief,
+        brief: brief,
         desc: desc,
         return: some({
             desc: return,
@@ -144,7 +139,7 @@ mod tests {
         let source = "";
         let attrs = parse_attributes(source);
         let doc = parse_fn("f", 0, attrs);
-        assert doc.brief == "_undocumented_";
+        assert doc.brief == none;
         assert doc.desc == none;
         assert doc.return == none;
         assert vec::len(doc.args) == 0u;
@@ -155,7 +150,7 @@ mod tests {
         let source = "#[doc = \"basic\"]";
         let attrs = parse_attributes(source);
         let doc = parse_fn("f", 0, attrs);
-        assert doc.brief == "basic";
+        assert doc.brief == some("basic");
     }
 
     #[test]
@@ -163,7 +158,7 @@ mod tests {
         let source = "#[doc(brief = \"short\")]";
         let attrs = parse_attributes(source);
         let doc = parse_fn("f", 0, attrs);
-        assert doc.brief == "short";
+        assert doc.brief == some("short");
     }
 
     #[test]
@@ -190,12 +185,4 @@ mod tests {
         assert doc.args[0] == ("a", "arg a");
         assert doc.args[1] == ("b", "arg b");
     }
-
-    #[test]
-    fn parse_fn_should_set_brief_desc_to_undocumented_if_not_exists() {
-        let source = "#[doc(desc = \"long desc\")]";
-        let attrs = parse_attributes(source);
-        let doc = parse_fn("f", 0, attrs);
-        assert doc.brief == "_undocumented_";
-    }
 }
\ No newline at end of file
diff --git a/src/rustdoc/doc.rs b/src/rustdoc/doc.rs
index 6ca7cf1d52f..8dd165cf959 100644
--- a/src/rustdoc/doc.rs
+++ b/src/rustdoc/doc.rs
@@ -13,7 +13,7 @@ type moddoc = ~{
 type fndoc = ~{
     id: ast_id,
     name: str,
-    brief: str,
+    brief: option<str>,
     desc: option<str>,
     return: option<retdoc>,
     args: [(str, str)]
diff --git a/src/rustdoc/extract.rs b/src/rustdoc/extract.rs
index 5caa0d59913..024dd7809c5 100644
--- a/src/rustdoc/extract.rs
+++ b/src/rustdoc/extract.rs
@@ -17,13 +17,12 @@ fn top_moddoc_from_crate(
     crate: @ast::crate,
     default_name: str
 ) -> doc::moddoc {
-    moddoc_from_mod(crate.node.module, default_name, crate.node.attrs)
+    moddoc_from_mod(crate.node.module, default_name)
 }
 
 fn moddoc_from_mod(
     module: ast::_mod,
-    name: ast::ident,
-    _attrs: [ast::attribute]
+    name: ast::ident
 ) -> doc::moddoc {
     ~{
         name: name,
@@ -31,7 +30,7 @@ fn moddoc_from_mod(
             vec::filter_map(module.items) {|item|
                 alt item.node {
                   ast::item_mod(m) {
-                    some(moddoc_from_mod(m, item.ident, item.attrs))
+                    some(moddoc_from_mod(m, item.ident))
                   }
                   _ {
                     none
@@ -41,9 +40,9 @@ fn moddoc_from_mod(
         fns: doc::fnlist(
             vec::filter_map(module.items) {|item|
                 alt item.node {
-                  ast::item_fn(decl, typarams, _) {
+                  ast::item_fn(decl, _, _) {
                     some(fndoc_from_fn(
-                        decl, typarams, item.ident, item.id, item.attrs))
+                        decl, item.ident, item.id))
                   }
                   _ {
                     none
@@ -55,12 +54,17 @@ fn moddoc_from_mod(
 
 fn fndoc_from_fn(
     _decl: ast::fn_decl,
-    _typarams: [ast::ty_param],
     name: ast::ident,
-    id: ast::node_id,
-    attrs: [ast::attribute]
+    id: ast::node_id
 ) -> doc::fndoc {
-    attr_parser::parse_fn(name, id, attrs)
+    ~{
+        id: id,
+        name: name,
+        brief: none,
+        desc: none,
+        return: none,
+        args: []
+    }
 }
 
 #[cfg(test)]
@@ -114,7 +118,7 @@ mod tests {
     }
 
     #[test]
-    fn extract_should_use_default_crate_name_if_no_link_name_exists() {
+    fn extract_should_use_default_crate_name() {
         let source = "";
         let ast = parse::from_str(source);
         let doc = extract(ast, "burp");
diff --git a/src/rustdoc/gen.rs b/src/rustdoc/gen.rs
index ec2083bea25..d83463e471e 100644
--- a/src/rustdoc/gen.rs
+++ b/src/rustdoc/gen.rs
@@ -55,7 +55,12 @@ fn write_fn(
     doc: doc::fndoc
 ) {
     ctxt.w.write_line("## Function `" + doc.name + "`");
-    ctxt.w.write_line(doc.brief);
+    alt doc.brief {
+      some(brief) {
+        ctxt.w.write_line(brief);
+      }
+      none. { }
+    }
     alt doc.desc {
         some(_d) {
             ctxt.w.write_line("");