From ca0aefa8bfbd1f1906f6aa7bba430c1765d2345f Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 26 Jan 2012 22:45:28 -0800 Subject: [PATCH] rustdoc: Add resource arg tys to doc tree --- src/rustdoc/demo.rs | 29 +++++++++++++++++++++++++++++ src/rustdoc/tystr_pass.rs | 14 +++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/rustdoc/demo.rs b/src/rustdoc/demo.rs index 9daae5b5a88..f705f2b5915 100644 --- a/src/rustdoc/demo.rs +++ b/src/rustdoc/demo.rs @@ -70,3 +70,32 @@ mod blade_runner { Alien 3 was crap though." )]; } + +#[doc( + brief = "Bored", + desc = " + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed nec + molestie nisl. Duis massa risus, pharetra a scelerisque a, + molestie eu velit. Donec mattis ligula at ante imperdiet ut + dapibus mauris malesuada. Sed gravida nisi a metus elementum sit + amet hendrerit dolor bibendum. Aenean sit amet neque massa, sed + tempus tortor. Sed ut lobortis enim. Proin a mauris quis nunc + fermentum ultrices eget a erat. Mauris in lectus vitae metus + sodales auctor. Morbi nunc quam, ultricies at venenatis non, + pellentesque ac dui. + + Quisque vitae est id eros placerat laoreet sit amet eu + nisi. Curabitur suscipit neque porttitor est euismod + lacinia. Curabitur non quam vitae ipsum adipiscing + condimentum. Mauris ut ante eget metus sollicitudin + blandit. Aliquam erat volutpat. Morbi sed nisl mauris. Nulla + facilisi. Phasellus at mollis ipsum. Maecenas sed convallis + sapien. Nullam in ligula turpis. Pellentesque a neque augue. Sed + eget ante feugiat tortor congue auctor ac quis ante. Proin + condimentum lacinia tincidunt. + +")] +resource bored(bored: bool) { + log(error, bored); +} \ No newline at end of file diff --git a/src/rustdoc/tystr_pass.rs b/src/rustdoc/tystr_pass.rs index a4a6ccde41c..12a1e68b42b 100644 --- a/src/rustdoc/tystr_pass.rs +++ b/src/rustdoc/tystr_pass.rs @@ -134,6 +134,9 @@ fn get_arg_tys(srv: astsrv::srv, fn_id: doc::ast_id) -> [(str, str)] { alt ctxt.ast_map.get(fn_id) { ast_map::node_item(@{ node: ast::item_fn(decl, _, _), _ + }) | + ast_map::node_item(@{ + node: ast::item_res(decl, _, _, _, _), _ }) { vec::map(decl.inputs) {|arg| (arg.ident, pprust::ty_to_str(arg.ty)) @@ -231,6 +234,7 @@ fn fold_res( let srv = fold.ctxt; ~{ + args: merge_arg_tys(srv, doc.id, doc.args), sig: some(astsrv::exec(srv) {|ctxt| alt ctxt.ast_map.get(doc.id) { ast_map::node_item(@{ @@ -250,6 +254,14 @@ fn should_add_resource_sigs() { let srv = astsrv::mk_srv_from_str(source); let doc = extract::from_srv(srv, ""); let doc = run(srv, doc); - log(error, doc.topmod.resources[0].sig); assert doc.topmod.resources[0].sig == some("resource r(b: bool)"); } + +#[test] +fn should_add_resource_arg_tys() { + let source = "resource r(a: bool) { }"; + let srv = astsrv::mk_srv_from_str(source); + let doc = extract::from_srv(srv, ""); + let doc = run(srv, doc); + assert doc.topmod.resources[0].args[0].ty == some("bool"); +} \ No newline at end of file