diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
commit | 218caa410aa38c29984be31a5229b9fa717560ee (patch) | |
tree | c54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/xcrate/xcrate-private-by-default.rs | |
parent | Releasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz rustc-218caa410aa38c29984be31a5229b9fa717560ee.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 +} |