| // 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 | |
| }; | |
| } |