30 lines
923 B
Rust
30 lines
923 B
Rust
// 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;
|
|
};
|
|
}
|