diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/get.rs | 1 | ||||
| -rw-r--r-- | tests/trybuild/hidden-field.rs | 18 | ||||
| -rw-r--r-- | tests/trybuild/hidden-field.stderr | 25 |
3 files changed, 44 insertions, 0 deletions
diff --git a/tests/get.rs b/tests/get.rs index 937ddf5..8ff2c24 100644 --- a/tests/get.rs +++ b/tests/get.rs @@ -10,6 +10,7 @@ fn trybuild() { tests.compile_fail(testcase!("unit-struct.rs")); tests.compile_fail(testcase!("tuple-struct-without-attribute.rs")); tests.compile_fail(testcase!("invalid-attribute.rs")); + tests.compile_fail(testcase!("hidden-field.rs")); } mod get { diff --git a/tests/trybuild/hidden-field.rs b/tests/trybuild/hidden-field.rs new file mode 100644 index 0000000..52675fb --- /dev/null +++ b/tests/trybuild/hidden-field.rs @@ -0,0 +1,18 @@ +use get::Get; + +#[derive(Get)] +struct Crab { + #[get(hide)] + name: String, + age: u64 +} + +fn crab() { + let ferris = Crab { + name: "ferris".to_string(), + 1 + }; + assert_eq!(ferris.name().as_str(), "ferris"); +} + +pub fn main() {} diff --git a/tests/trybuild/hidden-field.stderr b/tests/trybuild/hidden-field.stderr new file mode 100644 index 0000000..1b2adf0 --- /dev/null +++ b/tests/trybuild/hidden-field.stderr @@ -0,0 +1,25 @@ +error: expected identifier, found `1` + --> tests/trybuild/hidden-field.rs:13:9 + | +11 | let ferris = Crab { + | ---- while parsing this struct +12 | name: "ferris".to_string(), +13 | 1 + | ^ expected identifier + +error[E0063]: missing field `age` in initializer of `Crab` + --> tests/trybuild/hidden-field.rs:11:18 + | +11 | let ferris = Crab { + | ^^^^ missing `age` + +error[E0599]: no method named `name` found for struct `Crab` in the current scope + --> tests/trybuild/hidden-field.rs:15:23 + | +4 | struct Crab { + | ----------- method `name` not found for this struct +... +15 | assert_eq!(ferris.name().as_str(), "ferris"); + | ^^^^-- help: remove the arguments + | | + | field, not a method |
