about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrendan Zabarauskas <bjzaba@yahoo.com.au>2015-01-04 17:52:08 +1100
committerBrendan Zabarauskas <bjzaba@yahoo.com.au>2015-01-04 17:52:08 +1100
commitafdddefc1028625a9a180296ad28ac38df5146dc (patch)
tree9ce9e04cab8e5cec22982e208ab57104d7a91ab4
parent496dc4eae7de9d14cd49511a9acfbf5f11ae6c3f (diff)
downloadrust-afdddefc1028625a9a180296ad28ac38df5146dc.tar.gz
rust-afdddefc1028625a9a180296ad28ac38df5146dc.zip
Allow rustdoc to accept vector pattern arguments
-rw-r--r--src/librustdoc/clean/mod.rs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs
index 459d6409f67..fa7dd81d826 100644
--- a/src/librustdoc/clean/mod.rs
+++ b/src/librustdoc/clean/mod.rs
@@ -2243,8 +2243,12 @@ fn name_from_pat(p: &ast::Pat) -> String {
         },
         PatRange(..) => panic!("tried to get argument name from PatRange, \
                               which is not allowed in function arguments"),
-        PatVec(..) => panic!("tried to get argument name from pat_vec, \
-                             which is not allowed in function arguments"),
+        PatVec(ref begin, ref mid, ref end) => {
+            let begin = begin.iter().map(|p| name_from_pat(&**p));
+            let mid = mid.as_ref().map(|p| format!("..{}", name_from_pat(&**p))).into_iter();
+            let end = end.iter().map(|p| name_from_pat(&**p));
+            format!("[{}]", begin.chain(mid).chain(end).collect::<Vec<_>>().connect(", "))
+        },
         PatMac(..) => {
             warn!("can't document the name of a function argument \
                    produced by a pattern macro");