| // This test ensures that keywords which can be followed by values (and therefore `!`) |
| // are not considered as macros. |
| // This is a regression test for <https://github.com/rust-lang/rust/issues/148617>. |
| |
| #![crate_name = "foo"] |
| #![feature(negative_impls)] |
| |
| //@ has 'src/foo/keyword-macros.rs.html' |
| |
| //@ has - '//*[@class="rust"]//*[@class="number"]' '2' |
| //@ has - '//*[@class="rust"]//*[@class="number"]' '0' |
| //@ has - '//*[@class="rust"]//*[@class="number"]' '1' |
| const ARR: [u8; 2] = [!0,! 1]; |
| |
| trait X {} |
| |
| //@ has - '//*[@class="rust"]//*[@class="kw"]' 'impl' |
| impl !X for i32 {} |
| |
| fn a() { |
| //@ has - '//*[@class="rust"]//*[@class="kw"]' 'if' |
| if! true{} |
| //@ has - '//*[@class="rust"]//*[@class="kw"]' 'match' |
| match !true { _ => {} } |
| //@ has - '//*[@class="rust"]//*[@class="kw"]' 'while' |
| let _ = while !true { |
| //@ has - '//*[@class="rust"]//*[@class="kw"]' 'break' |
| break !true; |
| }; |
| } |