summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/get.rs1
-rw-r--r--tests/trybuild/hidden-field.rs18
-rw-r--r--tests/trybuild/hidden-field.stderr25
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