Add ui test to ensure attributes generated from macros are kept as expected

This commit is contained in:
Guillaume Gomez 2022-09-13 15:30:16 +02:00 committed by Rémy Rakic
parent ae5108a1ed
commit 7f0224e868
2 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,20 @@
// aux-build:attr-from-macro.rs
// run-pass
extern crate attr_from_macro;
attr_from_macro::creator! {
struct Foo;
enum Bar;
enum FooBar;
}
fn main() {
// Checking the `repr(u32)` on the enum.
assert_eq!(4, std::mem::size_of::<Bar>());
// Checking the `repr(u16)` on the enum.
assert_eq!(2, std::mem::size_of::<FooBar>());
// Checking the Debug impl on the types.
eprintln!("{:?} {:?} {:?}", Foo, Bar::A, FooBar::A);
}

View File

@ -0,0 +1,15 @@
#[macro_export]
macro_rules! creator {
(struct $name1:ident; enum $name2:ident; enum $name3:ident;) => {
#[derive(Debug)]
pub struct $name1;
#[derive(Debug)]
#[repr(u32)]
pub enum $name2 { A }
#[derive(Debug)]
#[repr(u16)]
pub enum $name3 { A }
}
}