From afdddefc1028625a9a180296ad28ac38df5146dc Mon Sep 17 00:00:00 2001 From: Brendan Zabarauskas Date: Sun, 4 Jan 2015 17:52:08 +1100 Subject: [PATCH] Allow rustdoc to accept vector pattern arguments --- src/librustdoc/clean/mod.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 459d6409f676a..fa7dd81d8260f 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::>().connect(", ")) + }, PatMac(..) => { warn!("can't document the name of a function argument \ produced by a pattern macro");