| #![no_std] | |
| #![deny(unsafe_code)] | |
| #[macro_use] | |
| extern crate static_assertions; | |
| #[allow(dead_code)] | |
| enum Foo { | |
| A { x: u8, y: u8 }, | |
| B(u8), | |
| } | |
| assert_fields!(Foo::A: x); | |
| assert_fields!(Foo::A: x, x); | |
| assert_fields!(Foo::A: x, y, x); | |
| // TODO: Make tuple field access possible | |
| // assert_fields!(Foo::B, 0); | |
| mod m { | |
| #[allow(dead_code)] | |
| pub struct Bar<T: ?Sized> { | |
| pub nul: (), | |
| pub inner: T, | |
| } | |
| } | |
| #[allow(dead_code)] | |
| use m::Bar as Baz; | |
| assert_fields!(m::Bar<str>: inner, nul); | |
| assert_fields!(Baz<dyn Send>: inner, nul); |