Skip to content

Commit

Permalink
Add compile fail tests for Reflect field attributes
Browse files Browse the repository at this point in the history
  • Loading branch information
MrGVSV committed Jan 2, 2023
1 parent 57dc883 commit f591183
Show file tree
Hide file tree
Showing 7 changed files with 80 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#[test]
fn test() {
let t = trybuild::TestCases::new();
t.compile_fail("tests/field_attributes/*.fail.rs");
t.pass("tests/field_attributes/*.pass.rs");
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
use bevy_reflect::Reflect;

#[derive(Reflect)]
struct Foo {
#[reflect(ignore)]
a: i32,
b: i32,
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
error: fields marked with `#[reflect(ignore)]` must come last in type definition
--> tests/field_attributes/ignored_order.fail.rs:5:15
|
5 | #[reflect(ignore)]
| ^^^^^^
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
use bevy_reflect::Reflect;

#[derive(Reflect)]
struct Foo {
a: i32,
#[reflect(ignore)]
b: i32,
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
use bevy_reflect::Reflect;

#[derive(Reflect)]
struct Foo {
#[reflect(skip_serializing)]
a: i32,
b: i32,
}

#[derive(Reflect)]
struct Bar {
a: i32,
#[reflect(ignore)]
b: i32,
#[reflect(skip_serializing)]
c: i32,
}

fn main() {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
error: fields marked with `#[reflect(skip_serializing)]` must come last in type definition (but before any fields marked `#[reflect(ignore)]`)
--> tests/field_attributes/skipped_order.fail.rs:5:15
|
5 | #[reflect(skip_serializing)]
| ^^^^^^^^^^^^^^^^

error: fields marked with `#[reflect(ignore)]` must come last in type definition
--> tests/field_attributes/skipped_order.fail.rs:13:15
|
13 | #[reflect(ignore)]
| ^^^^^^
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
use bevy_reflect::Reflect;

#[derive(Reflect)]
struct Foo {
a: i32,
#[reflect(skip_serializing)]
b: i32,
}

#[derive(Reflect)]
struct Bar {
a: i32,
#[reflect(skip_serializing)]
b: i32,
#[reflect(ignore)]
c: i32,
}

fn main() {}

0 comments on commit f591183

Please sign in to comment.