diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /tests/ui/xcrate/xcrate-private-by-default.rs | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/xcrate/xcrate-private-by-default.rs')
-rw-r--r-- | tests/ui/xcrate/xcrate-private-by-default.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/ui/xcrate/xcrate-private-by-default.rs b/tests/ui/xcrate/xcrate-private-by-default.rs new file mode 100644 index 000000000..299cff54f --- /dev/null +++ b/tests/ui/xcrate/xcrate-private-by-default.rs @@ -0,0 +1,45 @@ +// aux-build:static_priv_by_default.rs + +extern crate static_priv_by_default; + +fn foo<T>() {} + +fn main() { + // Actual public items should be public + static_priv_by_default::a; + static_priv_by_default::b; + static_priv_by_default::c; + foo::<static_priv_by_default::d>(); + foo::<static_priv_by_default::e>(); + + // publicly re-exported items should be available + static_priv_by_default::bar::e; + static_priv_by_default::bar::f; + static_priv_by_default::bar::g; + foo::<static_priv_by_default::bar::h>(); + foo::<static_priv_by_default::bar::i>(); + + // private items at the top should be inaccessible + static_priv_by_default::j; + //~^ ERROR: static `j` is private + static_priv_by_default::k; + //~^ ERROR: function `k` is private + static_priv_by_default::l; + //~^ ERROR: struct `l` is private + foo::<static_priv_by_default::m>(); + //~^ ERROR: enum `m` is private + foo::<static_priv_by_default::n>(); + //~^ ERROR: type alias `n` is private + + // public items in a private mod should be inaccessible + static_priv_by_default::foo::a; + //~^ ERROR: module `foo` is private + static_priv_by_default::foo::b; + //~^ ERROR: module `foo` is private + static_priv_by_default::foo::c; + //~^ ERROR: module `foo` is private + foo::<static_priv_by_default::foo::d>(); + //~^ ERROR: module `foo` is private + foo::<static_priv_by_default::foo::e>(); + //~^ ERROR: module `foo` is private +} |