diff options
Diffstat (limited to 'src/test/ui/xcrate/xcrate-private-by-default.rs')
-rw-r--r-- | src/test/ui/xcrate/xcrate-private-by-default.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/ui/xcrate/xcrate-private-by-default.rs b/src/test/ui/xcrate/xcrate-private-by-default.rs new file mode 100644 index 000000000..299cff54f --- /dev/null +++ b/src/test/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 +} |