From: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Date: Sun, 27 Dec 2020 16:42:01 +0000 (+0000) Subject: Merge #7050 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=1d530756ed7ba175ec32ff71247072798dc9a748;hp=8f2622199e86ea0d4c8accf72c364ac8eddbf545;p=rust.git Merge #7050 7050: Ignore third punct when matching for 2-composite punct in mbe r=jonas-schievink a=edwin0cheng Fixes #6692 Co-authored-by: Edwin Cheng --- diff --git a/crates/mbe/src/mbe_expander/matcher.rs b/crates/mbe/src/mbe_expander/matcher.rs index 7aeef7be5c2..44722c0f1a2 100644 --- a/crates/mbe/src/mbe_expander/matcher.rs +++ b/crates/mbe/src/mbe_expander/matcher.rs @@ -240,26 +240,26 @@ pub(crate) fn expect_tt(&mut self) -> Result { let tt3 = self.next().unwrap().clone(); Ok(tt::Subtree { delimiter: None, token_trees: vec![tt, tt2, tt3] }.into()) } - ('-', '=', None) - | ('-', '>', None) - | (':', ':', None) - | ('!', '=', None) - | ('.', '.', None) - | ('*', '=', None) - | ('/', '=', None) - | ('&', '&', None) - | ('&', '=', None) - | ('%', '=', None) - | ('^', '=', None) - | ('+', '=', None) - | ('<', '<', None) - | ('<', '=', None) - | ('=', '=', None) - | ('=', '>', None) - | ('>', '=', None) - | ('>', '>', None) - | ('|', '=', None) - | ('|', '|', None) => { + ('-', '=', _) + | ('-', '>', _) + | (':', ':', _) + | ('!', '=', _) + | ('.', '.', _) + | ('*', '=', _) + | ('/', '=', _) + | ('&', '&', _) + | ('&', '=', _) + | ('%', '=', _) + | ('^', '=', _) + | ('+', '=', _) + | ('<', '<', _) + | ('<', '=', _) + | ('=', '=', _) + | ('=', '>', _) + | ('>', '=', _) + | ('>', '>', _) + | ('|', '=', _) + | ('|', '|', _) => { let tt2 = self.next().unwrap().clone(); Ok(tt::Subtree { delimiter: None, token_trees: vec![tt, tt2] }.into()) } diff --git a/crates/mbe/src/tests.rs b/crates/mbe/src/tests.rs index 451fa1456a4..6cd0ed20539 100644 --- a/crates/mbe/src/tests.rs +++ b/crates/mbe/src/tests.rs @@ -991,6 +991,22 @@ macro_rules! foo { ); } +#[test] +fn test_tt_with_composite_without_space() { + parse_macro( + r#" + macro_rules! foo { + ($ op:tt, $j:path) => ( + 0 + ) + } +"#, + ) + // Test macro input without any spaces + // See https://github.com/rust-analyzer/rust-analyzer/issues/6692 + .assert_expand_items("foo!(==,Foo::Bool)", "0"); +} + #[test] fn test_underscore() { parse_macro(