rust/tests/ui/resolve/attr-macros-positional-rejection.rs
许杰友 Jieyou Xu (Joe) 836a0e00e5 Adjust tests/ui/attrs-resolution-errors.rs
- Move `tests/ui/attrs-resolution-errors.rs` to `tests/ui/resolve/`.
- Document test intent.
- Rename test to `attr-macros-positional-rejection.rs` to better reflect
  test intent.
2024-12-17 19:57:42 +08:00

50 lines
1.1 KiB
Rust

//! Check that certain positions (listed below) only permit *non-macro* attributes and reject
//! attribute macros:
//!
//! - Enum variants
//! - Struct fields
//! - Field in a struct pattern
//! - Match arm
//! - Field in struct initialization expression
enum FooEnum {
#[test]
//~^ ERROR expected non-macro attribute, found attribute macro
Bar(i32),
}
struct FooStruct {
#[test]
//~^ ERROR expected non-macro attribute, found attribute macro
bar: i32,
}
fn main() {
let foo_enum_bar = FooEnum::Bar(1);
match foo_enum_bar {
FooEnum::Bar(x) => {},
_ => {}
}
let foo_struct = FooStruct { bar: 1 };
match foo_struct {
FooStruct {
#[test] bar
//~^ ERROR expected non-macro attribute, found attribute macro
} => {}
}
match 1 {
0 => {}
#[test]
//~^ ERROR expected non-macro attribute, found attribute macro
_ => {}
}
let _another_foo_struct = FooStruct {
#[test]
//~^ ERROR expected non-macro attribute, found attribute macro
bar: 1,
};
}