From 5fb099dc786c1bee7116fecb4965d34ad5e0a4a5 Mon Sep 17 00:00:00 2001 From: Cedric Date: Sat, 8 Jun 2019 10:49:46 +0200 Subject: use pattern matching for slices destructuring --- src/libsyntax/diagnostics/plugin.rs | 23 ++++++---------- src/libsyntax/parse/mod.rs | 55 ++++++++++++++++--------------------- 2 files changed, 32 insertions(+), 46 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index 9f01b9b9f9b..b958a760e82 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -33,8 +33,8 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt<'_>, span: Span, token_tree: &[TokenTree]) -> Box { - let code = match (token_tree.len(), token_tree.get(0)) { - (1, Some(&TokenTree::Token(Token { kind: token::Ident(code, _), .. }))) => code, + let code = match token_tree { + &[TokenTree::Token(Token { kind: token::Ident(code, _), .. })] => code, _ => unreachable!() }; @@ -66,22 +66,15 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt<'_>, span: Span, token_tree: &[TokenTree]) -> Box { - let (code, description) = match ( - token_tree.len(), - token_tree.get(0), - token_tree.get(1), - token_tree.get(2) - ) { - (1, Some(&TokenTree::Token(Token { kind: token::Ident(code, _), .. })), None, None) => { + let (code, description) = match token_tree { + &[TokenTree::Token(Token { kind: token::Ident(code, _), .. })] => { (code, None) }, - (3, Some(&TokenTree::Token(Token { kind: token::Ident(code, _), .. })), - Some(&TokenTree::Token(Token { kind: token::Comma, .. })), - Some(&TokenTree::Token(Token { - kind: token::Literal(token::Lit { symbol, .. }), .. - }))) => { + &[TokenTree::Token(Token { kind: token::Ident(code, _), .. }), + TokenTree::Token(Token { kind: token::Comma, .. }), + TokenTree::Token(Token { kind: token::Literal(token::Lit { symbol, .. }), ..})] => { (code, Some(symbol)) - } + }, _ => unreachable!() }; diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 063823bbf4d..1d5f1001ac9 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -424,47 +424,40 @@ mod tests { string_to_stream("macro_rules! zip (($a)=>($a))".to_string()).trees().collect(); let tts: &[TokenTree] = &tts[..]; - match (tts.len(), tts.get(0), tts.get(1), tts.get(2), tts.get(3)) { - ( - 4, - Some(&TokenTree::Token(Token { - kind: token::Ident(name_macro_rules, false), .. - })), - Some(&TokenTree::Token(Token { kind: token::Not, .. })), - Some(&TokenTree::Token(Token { kind: token::Ident(name_zip, false), .. })), - Some(&TokenTree::Delimited(_, macro_delim, ref macro_tts)), - ) + match tts { + &[TokenTree::Token(Token {kind: token::Ident(name_macro_rules, false), ..}), + TokenTree::Token(Token { kind: token::Not, .. }), + TokenTree::Token(Token { kind: token::Ident(name_zip, false), .. }), + TokenTree::Delimited(_, macro_delim, ref macro_tts) + ] if name_macro_rules == sym::macro_rules && name_zip.as_str() == "zip" => { let tts = ¯o_tts.trees().collect::>(); - match (tts.len(), tts.get(0), tts.get(1), tts.get(2)) { - ( - 3, - Some(&TokenTree::Delimited(_, first_delim, ref first_tts)), - Some(&TokenTree::Token(Token { kind: token::FatArrow, .. })), - Some(&TokenTree::Delimited(_, second_delim, ref second_tts)), - ) + match tts { + &[ + TokenTree::Delimited(_, first_delim, ref first_tts), + TokenTree::Token(Token { kind: token::FatArrow, .. }), + TokenTree::Delimited(_, second_delim, ref second_tts), + ] if macro_delim == token::Paren => { let tts = &first_tts.trees().collect::>(); - match (tts.len(), tts.get(0), tts.get(1)) { - ( - 2, - Some(&TokenTree::Token(Token { kind: token::Dollar, .. })), - Some(&TokenTree::Token(Token { + match tts { + &[ + TokenTree::Token(Token { kind: token::Dollar, .. }), + TokenTree::Token(Token { kind: token::Ident(name, false), .. - })), - ) + }), + ] if first_delim == token::Paren && name.as_str() == "a" => {}, _ => panic!("value 3: {:?} {:?}", first_delim, first_tts), } let tts = &second_tts.trees().collect::>(); - match (tts.len(), tts.get(0), tts.get(1)) { - ( - 2, - Some(&TokenTree::Token(Token { kind: token::Dollar, .. })), - Some(&TokenTree::Token(Token { + match tts { + &[ + TokenTree::Token(Token { kind: token::Dollar, .. }), + TokenTree::Token(Token { kind: token::Ident(name, false), .. - })), - ) + }), + ] if second_delim == token::Paren && name.as_str() == "a" => {}, _ => panic!("value 4: {:?} {:?}", second_delim, second_tts), } -- cgit 1.4.1-3-g733a5 From ad91a8e59abca232a3e4449186712c032ab12519 Mon Sep 17 00:00:00 2001 From: Cedric Date: Sat, 8 Jun 2019 11:38:15 +0200 Subject: improve style --- src/libsyntax/parse/mod.rs | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 1d5f1001ac9..72573af9c40 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -425,27 +425,26 @@ mod tests { let tts: &[TokenTree] = &tts[..]; match tts { - &[TokenTree::Token(Token {kind: token::Ident(name_macro_rules, false), ..}), - TokenTree::Token(Token { kind: token::Not, .. }), - TokenTree::Token(Token { kind: token::Ident(name_zip, false), .. }), - TokenTree::Delimited(_, macro_delim, ref macro_tts) + &[ + TokenTree::Token(Token {kind: token::Ident(name_macro_rules, false), ..}), + TokenTree::Token(Token {kind: token::Not, ..}), + TokenTree::Token(Token {kind: token::Ident(name_zip, false), ..}), + TokenTree::Delimited(_, macro_delim, ref macro_tts) ] if name_macro_rules == sym::macro_rules && name_zip.as_str() == "zip" => { let tts = ¯o_tts.trees().collect::>(); match tts { &[ TokenTree::Delimited(_, first_delim, ref first_tts), - TokenTree::Token(Token { kind: token::FatArrow, .. }), + TokenTree::Token(Token {kind: token::FatArrow, ..}), TokenTree::Delimited(_, second_delim, ref second_tts), ] if macro_delim == token::Paren => { let tts = &first_tts.trees().collect::>(); match tts { &[ - TokenTree::Token(Token { kind: token::Dollar, .. }), - TokenTree::Token(Token { - kind: token::Ident(name, false), .. - }), + TokenTree::Token(Token {kind: token::Dollar, ..}), + TokenTree::Token(Token {kind: token::Ident(name, false), ..}), ] if first_delim == token::Paren && name.as_str() == "a" => {}, _ => panic!("value 3: {:?} {:?}", first_delim, first_tts), @@ -453,10 +452,8 @@ mod tests { let tts = &second_tts.trees().collect::>(); match tts { &[ - TokenTree::Token(Token { kind: token::Dollar, .. }), - TokenTree::Token(Token { - kind: token::Ident(name, false), .. - }), + TokenTree::Token(Token {kind: token::Dollar, ..}), + TokenTree::Token(Token {kind: token::Ident(name, false), ..}), ] if second_delim == token::Paren && name.as_str() == "a" => {}, _ => panic!("value 4: {:?} {:?}", second_delim, second_tts), -- cgit 1.4.1-3-g733a5 From 4123b5d796345bb01f0f40b2e28e6c194371fabe Mon Sep 17 00:00:00 2001 From: Cedric Date: Sat, 8 Jun 2019 12:18:13 +0200 Subject: fix bad style for structs --- src/libsyntax/diagnostics/plugin.rs | 16 +++++++++++----- src/libsyntax/parse/mod.rs | 16 ++++++++-------- 2 files changed, 19 insertions(+), 13 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index b958a760e82..b4cf24f5ac5 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -34,7 +34,9 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt<'_>, token_tree: &[TokenTree]) -> Box { let code = match token_tree { - &[TokenTree::Token(Token { kind: token::Ident(code, _), .. })] => code, + &[ + TokenTree::Token(Token { kind: token::Ident(code, _), .. }) + ] => code, _ => unreachable!() }; @@ -67,12 +69,16 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt<'_>, token_tree: &[TokenTree]) -> Box { let (code, description) = match token_tree { - &[TokenTree::Token(Token { kind: token::Ident(code, _), .. })] => { + &[ + TokenTree::Token(Token { kind: token::Ident(code, _), .. }) + ] => { (code, None) }, - &[TokenTree::Token(Token { kind: token::Ident(code, _), .. }), - TokenTree::Token(Token { kind: token::Comma, .. }), - TokenTree::Token(Token { kind: token::Literal(token::Lit { symbol, .. }), ..})] => { + &[ + TokenTree::Token(Token { kind: token::Ident(code, _), .. }), + TokenTree::Token(Token { kind: token::Comma, .. }), + TokenTree::Token(Token { kind: token::Literal(token::Lit { symbol, .. }), ..}) + ] => { (code, Some(symbol)) }, _ => unreachable!() diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 72573af9c40..025972d8ca7 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -426,9 +426,9 @@ mod tests { match tts { &[ - TokenTree::Token(Token {kind: token::Ident(name_macro_rules, false), ..}), - TokenTree::Token(Token {kind: token::Not, ..}), - TokenTree::Token(Token {kind: token::Ident(name_zip, false), ..}), + TokenTree::Token(Token { kind: token::Ident(name_macro_rules, false), .. }), + TokenTree::Token(Token { kind: token::Not, .. }), + TokenTree::Token(Token { kind: token::Ident(name_zip, false), .. }), TokenTree::Delimited(_, macro_delim, ref macro_tts) ] if name_macro_rules == sym::macro_rules && name_zip.as_str() == "zip" => { @@ -436,15 +436,15 @@ mod tests { match tts { &[ TokenTree::Delimited(_, first_delim, ref first_tts), - TokenTree::Token(Token {kind: token::FatArrow, ..}), + TokenTree::Token(Token { kind: token::FatArrow, .. }), TokenTree::Delimited(_, second_delim, ref second_tts), ] if macro_delim == token::Paren => { let tts = &first_tts.trees().collect::>(); match tts { &[ - TokenTree::Token(Token {kind: token::Dollar, ..}), - TokenTree::Token(Token {kind: token::Ident(name, false), ..}), + TokenTree::Token(Token { kind: token::Dollar, .. }), + TokenTree::Token(Token { kind: token::Ident(name, false), .. }), ] if first_delim == token::Paren && name.as_str() == "a" => {}, _ => panic!("value 3: {:?} {:?}", first_delim, first_tts), @@ -452,8 +452,8 @@ mod tests { let tts = &second_tts.trees().collect::>(); match tts { &[ - TokenTree::Token(Token {kind: token::Dollar, ..}), - TokenTree::Token(Token {kind: token::Ident(name, false), ..}), + TokenTree::Token(Token { kind: token::Dollar, .. }), + TokenTree::Token(Token { kind: token::Ident(name, false), .. }), ] if second_delim == token::Paren && name.as_str() == "a" => {}, _ => panic!("value 4: {:?} {:?}", second_delim, second_tts), -- cgit 1.4.1-3-g733a5 From dd442a1fcfba98be5454c2ca6f56bce098e458ed Mon Sep 17 00:00:00 2001 From: Cedric Date: Sat, 8 Jun 2019 13:29:43 +0200 Subject: use default binding mode in match clauses --- src/libsyntax/diagnostics/plugin.rs | 10 +++++----- src/libsyntax/parse/mod.rs | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index b4cf24f5ac5..98351048c35 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -34,7 +34,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt<'_>, token_tree: &[TokenTree]) -> Box { let code = match token_tree { - &[ + [ TokenTree::Token(Token { kind: token::Ident(code, _), .. }) ] => code, _ => unreachable!() @@ -69,17 +69,17 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt<'_>, token_tree: &[TokenTree]) -> Box { let (code, description) = match token_tree { - &[ + [ TokenTree::Token(Token { kind: token::Ident(code, _), .. }) ] => { - (code, None) + (*code, None) }, - &[ + [ TokenTree::Token(Token { kind: token::Ident(code, _), .. }), TokenTree::Token(Token { kind: token::Comma, .. }), TokenTree::Token(Token { kind: token::Literal(token::Lit { symbol, .. }), ..}) ] => { - (code, Some(symbol)) + (*code, Some(*symbol)) }, _ => unreachable!() }; diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 025972d8ca7..b912bf8295a 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -434,15 +434,15 @@ mod tests { if name_macro_rules == sym::macro_rules && name_zip.as_str() == "zip" => { let tts = ¯o_tts.trees().collect::>(); match tts { - &[ - TokenTree::Delimited(_, first_delim, ref first_tts), + [ + TokenTree::Delimited(_, first_delim, first_tts), TokenTree::Token(Token { kind: token::FatArrow, .. }), - TokenTree::Delimited(_, second_delim, ref second_tts), + TokenTree::Delimited(_, second_delim, second_tts), ] if macro_delim == token::Paren => { let tts = &first_tts.trees().collect::>(); match tts { - &[ + [ TokenTree::Token(Token { kind: token::Dollar, .. }), TokenTree::Token(Token { kind: token::Ident(name, false), .. }), ] @@ -451,7 +451,7 @@ mod tests { } let tts = &second_tts.trees().collect::>(); match tts { - &[ + [ TokenTree::Token(Token { kind: token::Dollar, .. }), TokenTree::Token(Token { kind: token::Ident(name, false), .. }), ] -- cgit 1.4.1-3-g733a5 From 4c242a948c9f109c25c1ae54102f7a66271fa2ca Mon Sep 17 00:00:00 2001 From: Cedric Date: Sat, 8 Jun 2019 16:21:15 +0200 Subject: cast vec to slices --- src/libsyntax/parse/mod.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index b912bf8295a..ebe5e70d1a7 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -425,15 +425,15 @@ mod tests { let tts: &[TokenTree] = &tts[..]; match tts { - &[ + [ TokenTree::Token(Token { kind: token::Ident(name_macro_rules, false), .. }), TokenTree::Token(Token { kind: token::Not, .. }), TokenTree::Token(Token { kind: token::Ident(name_zip, false), .. }), - TokenTree::Delimited(_, macro_delim, ref macro_tts) + TokenTree::Delimited(_, macro_delim, macro_tts) ] if name_macro_rules == sym::macro_rules && name_zip.as_str() == "zip" => { let tts = ¯o_tts.trees().collect::>(); - match tts { + match &tts[..] { [ TokenTree::Delimited(_, first_delim, first_tts), TokenTree::Token(Token { kind: token::FatArrow, .. }), @@ -441,7 +441,7 @@ mod tests { ] if macro_delim == token::Paren => { let tts = &first_tts.trees().collect::>(); - match tts { + match &tts[..] { [ TokenTree::Token(Token { kind: token::Dollar, .. }), TokenTree::Token(Token { kind: token::Ident(name, false), .. }), @@ -450,7 +450,7 @@ mod tests { _ => panic!("value 3: {:?} {:?}", first_delim, first_tts), } let tts = &second_tts.trees().collect::>(); - match tts { + match &tts[..] { [ TokenTree::Token(Token { kind: token::Dollar, .. }), TokenTree::Token(Token { kind: token::Ident(name, false), .. }), -- cgit 1.4.1-3-g733a5 From 0a4504d400805b2d102a433af98cc33f185fdcf2 Mon Sep 17 00:00:00 2001 From: Cedric Date: Sat, 8 Jun 2019 20:43:24 +0200 Subject: fix libsyntax test --- src/libsyntax/parse/mod.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index ebe5e70d1a7..19dd8ebd087 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -431,7 +431,7 @@ mod tests { TokenTree::Token(Token { kind: token::Ident(name_zip, false), .. }), TokenTree::Delimited(_, macro_delim, macro_tts) ] - if name_macro_rules == sym::macro_rules && name_zip.as_str() == "zip" => { + if name_macro_rules == &sym::macro_rules && name_zip.as_str() == "zip" => { let tts = ¯o_tts.trees().collect::>(); match &tts[..] { [ @@ -439,14 +439,14 @@ mod tests { TokenTree::Token(Token { kind: token::FatArrow, .. }), TokenTree::Delimited(_, second_delim, second_tts), ] - if macro_delim == token::Paren => { + if macro_delim == &token::Paren => { let tts = &first_tts.trees().collect::>(); match &tts[..] { [ TokenTree::Token(Token { kind: token::Dollar, .. }), TokenTree::Token(Token { kind: token::Ident(name, false), .. }), ] - if first_delim == token::Paren && name.as_str() == "a" => {}, + if first_delim == &token::Paren && name.as_str() == "a" => {}, _ => panic!("value 3: {:?} {:?}", first_delim, first_tts), } let tts = &second_tts.trees().collect::>(); @@ -455,7 +455,7 @@ mod tests { TokenTree::Token(Token { kind: token::Dollar, .. }), TokenTree::Token(Token { kind: token::Ident(name, false), .. }), ] - if second_delim == token::Paren && name.as_str() == "a" => {}, + if second_delim == &token::Paren && name.as_str() == "a" => {}, _ => panic!("value 4: {:?} {:?}", second_delim, second_tts), } }, -- cgit 1.4.1-3-g733a5