mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
rustdoc: support tuple and struct patterns in function arguments
This commit is contained in:
parent
aeab2501d1
commit
3c75b1e382
@ -1948,9 +1948,16 @@ fn name_from_pat(p: &ast::Pat) -> String {
|
||||
PatWildMulti => "..".to_string(),
|
||||
PatIdent(_, ref p, _) => token::get_ident(p.node).get().to_string(),
|
||||
PatEnum(ref p, _) => path_to_string(p),
|
||||
PatStruct(..) => fail!("tried to get argument name from pat_struct, \
|
||||
which is not allowed in function arguments"),
|
||||
PatTup(..) => "(tuple arg NYI)".to_string(),
|
||||
PatStruct(ref name, ref fields, etc) => {
|
||||
format!("{} {{ {}{} }}", path_to_string(name),
|
||||
fields.iter().map(|fp|
|
||||
format!("{}: {}", fp.ident.as_str(), name_from_pat(&*fp.pat)))
|
||||
.collect::<Vec<String>>().connect(", "),
|
||||
if etc { ", ..." } else { "" }
|
||||
)
|
||||
},
|
||||
PatTup(ref elts) => format!("({})", elts.iter().map(|p| name_from_pat(&**p))
|
||||
.collect::<Vec<String>>().connect(", ")),
|
||||
PatBox(p) => name_from_pat(&*p),
|
||||
PatRegion(p) => name_from_pat(&*p),
|
||||
PatLit(..) => {
|
||||
|
@ -22,4 +22,8 @@ pub mod bar {
|
||||
|
||||
/// *wow*
|
||||
pub trait Doge { }
|
||||
|
||||
pub struct Foo { x: int, y: uint }
|
||||
|
||||
pub fn prawns((a, b): (int, uint), Foo { x, y }: Foo) { }
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user