| #![feature(stmt_expr_attributes)] | |
| // Test that various placements of the inner attribute are parsed correctly, | |
| // or not. | |
| fn main() { | |
| let a = #![allow(warnings)] (1, 2); | |
| //~^ ERROR an inner attribute is not permitted in this context | |
| let b = (#![allow(warnings)] 1, 2); | |
| //~^ ERROR an inner attribute is not permitted in this context | |
| let c = { | |
| #![allow(warnings)] | |
| (#![allow(warnings)] 1, 2) | |
| //~^ ERROR an inner attribute is not permitted in this context | |
| }; | |
| let d = { | |
| #![allow(warnings)] | |
| let e = (#![allow(warnings)] 1, 2); | |
| //~^ ERROR an inner attribute is not permitted in this context | |
| e | |
| }; | |
| let e = [#![allow(warnings)] 1, 2]; | |
| //~^ ERROR an inner attribute is not permitted in this context | |
| let f = [#![allow(warnings)] 1; 0]; | |
| //~^ ERROR an inner attribute is not permitted in this context | |
| let g = match true { #![allow(warnings)] _ => {} }; | |
| struct MyStruct { field: u8 } | |
| let h = MyStruct { #![allow(warnings)] field: 0 }; | |
| //~^ ERROR an inner attribute is not permitted in this context | |
| } |