Skip to content

Commit 93a14c1

Browse files
author
Ahmed Abdelraoof
committed
test marcro ordering
Signed-off-by: Ahmed Abdelraoof <ahmed.abdelraoof@huawei.com>
1 parent 3f6254d commit 93a14c1

File tree

4 files changed

+39
-0
lines changed

4 files changed

+39
-0
lines changed

safe-discriminant-derive/src/lib.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,10 @@ pub fn remove_repr(_: TokenStream, item: TokenStream) -> TokenStream {
148148
pub fn repr(_: TokenStream, item: TokenStream) -> TokenStream {
149149
item
150150
}
151+
152+
#[cfg(feature = "test-utils")]
153+
/// exactly as the name suggests!
154+
#[proc_macro_attribute]
155+
pub fn do_nothing(_: TokenStream, item: TokenStream) -> TokenStream {
156+
item
157+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
use safe_discriminant::Discriminant;
2+
use safe_discriminant_derive::do_nothing;
3+
4+
#[repr(u8)]
5+
#[derive(Discriminant)]
6+
#[do_nothing]
7+
pub enum Foo {
8+
A = 0,
9+
B = 1,
10+
}
11+
12+
fn main() {}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
error: Discriminant is not compatiable with any top level `#[attr]` except `#[repr(_)]`.
2+
--> tests/fail/do_nothing_last.rs:7:10
3+
|
4+
7 | pub enum Foo {
5+
| ^^^
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
use safe_discriminant::Discriminant;
2+
use safe_discriminant_derive::do_nothing;
3+
4+
#[do_nothing]
5+
#[repr(u8)]
6+
#[derive(Discriminant)]
7+
pub enum Foo {
8+
A = 0,
9+
B = 1,
10+
}
11+
12+
fn main() {
13+
assert_eq!(Foo::A.discriminant(), 0);
14+
assert_eq!(Foo::B.discriminant(), 1);
15+
}

0 commit comments

Comments
 (0)