| // Test that the `#[loop_match]` and `#[const_continue]` attributes can only be |
| // placed on expressions. |
| |
| #![allow(incomplete_features)] |
| #![feature(loop_match)] |
| #![loop_match] //~ ERROR attribute cannot be used on |
| #![const_continue] //~ ERROR attribute cannot be used on |
| |
| extern "C" { |
| #[loop_match] //~ ERROR attribute cannot be used on |
| #[const_continue] //~ ERROR attribute cannot be used on |
| fn f(); |
| } |
| |
| #[loop_match] //~ ERROR attribute cannot be used on |
| #[const_continue] //~ ERROR attribute cannot be used on |
| #[repr(C)] |
| struct S { |
| a: u32, |
| b: u32, |
| } |
| |
| trait Invoke { |
| #[loop_match] //~ ERROR attribute cannot be used on |
| #[const_continue] //~ ERROR attribute cannot be used on |
| extern "C" fn invoke(&self); |
| } |
| |
| #[loop_match] //~ ERROR attribute cannot be used on |
| #[const_continue] //~ ERROR attribute cannot be used on |
| extern "C" fn ok() {} |
| |
| fn main() { |
| #[loop_match] //~ ERROR attribute cannot be used on |
| #[const_continue] //~ ERROR attribute cannot be used on |
| || {}; |
| |
| { |
| #[loop_match] //~ ERROR should be applied to a loop |
| #[const_continue] //~ ERROR should be applied to a break expression |
| 5 |
| }; |
| } |