about summary refs log tree commit diff
path: root/tests/ui/structs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/structs')
-rw-r--r--tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.rs8
-rw-r--r--tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.stderr22
2 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.rs b/tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.rs
new file mode 100644
index 00000000000..4c5926a91ea
--- /dev/null
+++ b/tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.rs
@@ -0,0 +1,8 @@
+// Regression test for https://github.com/rust-lang/rust/issues/145367
+mod m {
+    struct Priv2;
+}
+fn main() {
+    WithUse { one: m::Priv2 } //~ ERROR: cannot find struct, variant or union type `WithUse` in this scope
+    //~^ ERROR: unit struct `Priv2` is private
+}
diff --git a/tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.stderr b/tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.stderr
new file mode 100644
index 00000000000..1f0c80092b7
--- /dev/null
+++ b/tests/ui/structs/default-field-values/non-exhaustive-ctor-not-found.stderr
@@ -0,0 +1,22 @@
+error[E0422]: cannot find struct, variant or union type `WithUse` in this scope
+  --> $DIR/non-exhaustive-ctor-not-found.rs:6:5
+   |
+LL |     WithUse { one: m::Priv2 }
+   |     ^^^^^^^ not found in this scope
+
+error[E0603]: unit struct `Priv2` is private
+  --> $DIR/non-exhaustive-ctor-not-found.rs:6:23
+   |
+LL |     WithUse { one: m::Priv2 }
+   |                       ^^^^^ private unit struct
+   |
+note: the unit struct `Priv2` is defined here
+  --> $DIR/non-exhaustive-ctor-not-found.rs:3:5
+   |
+LL |     struct Priv2;
+   |     ^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
+Some errors have detailed explanations: E0422, E0603.
+For more information about an error, try `rustc --explain E0422`.