about summary refs log tree commit diff
path: root/tests/ui/issues/issue-25386.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/issues/issue-25386.rs')
-rw-r--r--tests/ui/issues/issue-25386.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/issues/issue-25386.rs b/tests/ui/issues/issue-25386.rs
new file mode 100644
index 00000000000..b26cc77680d
--- /dev/null
+++ b/tests/ui/issues/issue-25386.rs
@@ -0,0 +1,27 @@
+mod stuff {
+    pub struct Item {
+        c_object: Box<CObj>,
+    }
+    pub struct CObj {
+        name: Option<String>,
+    }
+    impl Item {
+        pub fn new() -> Item {
+            Item {
+                c_object: Box::new(CObj { name: None }),
+            }
+        }
+    }
+}
+
+macro_rules! check_ptr_exist {
+    ($var:expr, $member:ident) => (
+        (*$var.c_object).$member.is_some()
+        //~^ ERROR field `c_object` of struct `Item` is private
+    );
+}
+
+fn main() {
+    let item = stuff::Item::new();
+    println!("{}", check_ptr_exist!(item, name));
+}