about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorDevin Ragotzy <devin.ragotzy@gmail.com>2021-10-27 20:57:47 -0400
committerDevin Ragotzy <devin.ragotzy@gmail.com>2022-03-12 15:15:22 -0500
commitef0d99d8d43dccf5f20e49826fc0c0126012390f (patch)
treece657fbf5a68f328e03b51f9198dc7472f5e2140 /src/test
parentf481dba3d4745b87b4d19f14b7592687d9afb90e (diff)
downloadrust-ef0d99d8d43dccf5f20e49826fc0c0126012390f.tar.gz
rust-ef0d99d8d43dccf5f20e49826fc0c0126012390f.zip
Add struct to doc hidden usefulness ui tests
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/pattern/usefulness/auxiliary/hidden.rs10
-rw-r--r--src/test/ui/pattern/usefulness/doc-hidden-fields.rs16
-rw-r--r--src/test/ui/pattern/usefulness/doc-hidden-non-exhaustive.rs20
3 files changed, 35 insertions, 11 deletions
diff --git a/src/test/ui/pattern/usefulness/auxiliary/hidden.rs b/src/test/ui/pattern/usefulness/auxiliary/hidden.rs
index 742b7e82c16..364514ba1d3 100644
--- a/src/test/ui/pattern/usefulness/auxiliary/hidden.rs
+++ b/src/test/ui/pattern/usefulness/auxiliary/hidden.rs
@@ -1,6 +1,14 @@
-pub enum Foo {
+pub enum HiddenEnum {
     A,
     B,
     #[doc(hidden)]
     C,
 }
+
+#[derive(Default)]
+pub struct HiddenStruct {
+    pub one: u8,
+    pub two: bool,
+    #[doc(hidden)]
+    pub hide: usize,
+}
diff --git a/src/test/ui/pattern/usefulness/doc-hidden-fields.rs b/src/test/ui/pattern/usefulness/doc-hidden-fields.rs
new file mode 100644
index 00000000000..e947c223ede
--- /dev/null
+++ b/src/test/ui/pattern/usefulness/doc-hidden-fields.rs
@@ -0,0 +1,16 @@
+// aux-build:hidden.rs
+
+extern crate hidden;
+
+use hidden::HiddenStruct;
+
+fn main() {
+    let HiddenStruct { one, two, } = HiddenStruct::default();
+    //~^ pattern requires `..` due to inaccessible fields
+
+    let HiddenStruct { one, } = HiddenStruct::default();
+    //~^ pattern does not mention field `two` and inaccessible fields
+
+    let HiddenStruct { one, hide } = HiddenStruct::default();
+    //~^ pattern does not mention field `two`
+}
diff --git a/src/test/ui/pattern/usefulness/doc-hidden-non-exhaustive.rs b/src/test/ui/pattern/usefulness/doc-hidden-non-exhaustive.rs
index a1dcab09314..23c57f2bc6a 100644
--- a/src/test/ui/pattern/usefulness/doc-hidden-non-exhaustive.rs
+++ b/src/test/ui/pattern/usefulness/doc-hidden-non-exhaustive.rs
@@ -2,29 +2,29 @@
 
 extern crate hidden;
 
-use hidden::Foo;
+use hidden::HiddenEnum;
 
 fn main() {
-    match Foo::A {
-        Foo::A => {}
-        Foo::B => {}
+    match HiddenEnum::A {
+        HiddenEnum::A => {}
+        HiddenEnum::B => {}
     }
     //~^^^^ non-exhaustive patterns: `_` not covered
 
-    match Foo::A {
-        Foo::A => {}
-        Foo::C => {}
+    match HiddenEnum::A {
+        HiddenEnum::A => {}
+        HiddenEnum::C => {}
     }
     //~^^^^ non-exhaustive patterns: `B` not covered
 
-    match Foo::A {
-        Foo::A => {}
+    match HiddenEnum::A {
+        HiddenEnum::A => {}
     }
     //~^^^ non-exhaustive patterns: `B` and `_` not covered
 
     match None {
         None => {}
-        Some(Foo::A) => {}
+        Some(HiddenEnum::A) => {}
     }
     //~^^^^ non-exhaustive patterns: `Some(B)` and `Some(_)` not covered
 }