aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-01-25 11:35:37 +0000
committerGitHub <[email protected]>2021-01-25 11:35:37 +0000
commita6a5b02f4ca4549bbd150c09aa18ac3c8e18121c (patch)
treea7b6b5a5ebc7cd859fa3660ddc6b4f1fadf452d0 /crates
parent83231dd98775a26057ebff824adc2f5e48fec869 (diff)
parent4e92681aba42aa50a832ec3be547b31a9bbf20e1 (diff)
Merge #7422
7422: Disallow non-boolean literals in concat! r=lnicola a=lnicola Co-authored-by: LaurenČ›iu Nicola <[email protected]>
Diffstat (limited to 'crates')
-rw-r--r--crates/hir_expand/src/builtin_macro.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/hir_expand/src/builtin_macro.rs b/crates/hir_expand/src/builtin_macro.rs
index 2806842cd..57bc6fbd7 100644
--- a/crates/hir_expand/src/builtin_macro.rs
+++ b/crates/hir_expand/src/builtin_macro.rs
@@ -331,7 +331,9 @@ fn concat_expand(
331 text.push_str(&component); 331 text.push_str(&component);
332 } 332 }
333 // handle boolean literals 333 // handle boolean literals
334 tt::TokenTree::Leaf(tt::Leaf::Ident(id)) if i % 2 == 0 => { 334 tt::TokenTree::Leaf(tt::Leaf::Ident(id))
335 if i % 2 == 0 && (id.text == "true" || id.text == "false") =>
336 {
335 text.push_str(id.text.as_str()); 337 text.push_str(id.text.as_str());
336 } 338 }
337 tt::TokenTree::Leaf(tt::Leaf::Punct(punct)) if i % 2 == 1 && punct.char == ',' => (), 339 tt::TokenTree::Leaf(tt::Leaf::Punct(punct)) if i % 2 == 1 && punct.char == ',' => (),
@@ -739,7 +741,7 @@ mod tests {
739 r##" 741 r##"
740 #[rustc_builtin_macro] 742 #[rustc_builtin_macro]
741 macro_rules! concat {} 743 macro_rules! concat {}
742 concat!("foo", r, 0, r#"bar"#, false); 744 concat!("foo", "r", 0, r#"bar"#, false);
743 "##, 745 "##,
744 ); 746 );
745 747