about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorthreadexception <hannes.gaumann@outlook.de>2022-01-18 17:09:17 +0100
committerthreadexception <hannes.gaumann@outlook.de>2022-01-26 09:47:52 +0100
commitecd06e1e6ad28daab4e0ed5a8d6014a3ca2affb9 (patch)
tree60cf758dc2db6c0121d382e4b256c0f40fc84e81 /src
parent7bc7be860f99f4a40d45b0f74e2d01b02e072357 (diff)
downloadrust-ecd06e1e6ad28daab4e0ed5a8d6014a3ca2affb9.tar.gz
rust-ecd06e1e6ad28daab4e0ed5a8d6014a3ca2affb9.zip
Don't suggest inaccessible fields
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/suggestions/private-field.rs19
-rw-r--r--src/test/ui/suggestions/private-field.stderr11
2 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/suggestions/private-field.rs b/src/test/ui/suggestions/private-field.rs
new file mode 100644
index 00000000000..1cc4d2a4d06
--- /dev/null
+++ b/src/test/ui/suggestions/private-field.rs
@@ -0,0 +1,19 @@
+// compile-flags: --crate-type lib
+pub struct S {
+    pub val: string::MyString,
+}
+
+pub fn test(s: S) {
+    dbg!(s.cap) //~ ERROR: no field `cap` on type `S` [E0609]
+}
+
+pub(crate) mod string {
+
+    pub struct MyString {
+        buf: MyVec,
+    }
+
+    struct MyVec {
+        cap: usize,
+    }
+}
diff --git a/src/test/ui/suggestions/private-field.stderr b/src/test/ui/suggestions/private-field.stderr
new file mode 100644
index 00000000000..c38c795e07a
--- /dev/null
+++ b/src/test/ui/suggestions/private-field.stderr
@@ -0,0 +1,11 @@
+error[E0609]: no field `cap` on type `S`
+  --> $DIR/private-field.rs:7:12
+   |
+LL |     dbg!(s.cap)
+   |            ^^^ unknown field
+   |
+   = note: available fields are: `val`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0609`.