]> git.lizzy.rs Git - rust.git/blob - tests/ui/xcrate/xcrate-private-by-default.rs
Rollup merge of #107740 - oli-obk:lock_tcx, r=petrochenkov
[rust.git] / tests / ui / xcrate / xcrate-private-by-default.rs
1 // aux-build:static_priv_by_default.rs
2
3 extern crate static_priv_by_default;
4
5 fn foo<T>() {}
6
7 fn main() {
8     // Actual public items should be public
9     static_priv_by_default::a;
10     static_priv_by_default::b;
11     static_priv_by_default::c;
12     foo::<static_priv_by_default::d>();
13     foo::<static_priv_by_default::e>();
14
15     // publicly re-exported items should be available
16     static_priv_by_default::bar::e;
17     static_priv_by_default::bar::f;
18     static_priv_by_default::bar::g;
19     foo::<static_priv_by_default::bar::h>();
20     foo::<static_priv_by_default::bar::i>();
21
22     // private items at the top should be inaccessible
23     static_priv_by_default::j;
24     //~^ ERROR: static `j` is private
25     static_priv_by_default::k;
26     //~^ ERROR: function `k` is private
27     static_priv_by_default::l;
28     //~^ ERROR: struct `l` is private
29     foo::<static_priv_by_default::m>();
30     //~^ ERROR: enum `m` is private
31     foo::<static_priv_by_default::n>();
32     //~^ ERROR: type alias `n` is private
33
34     // public items in a private mod should be inaccessible
35     static_priv_by_default::foo::a;
36     //~^ ERROR: module `foo` is private
37     static_priv_by_default::foo::b;
38     //~^ ERROR: module `foo` is private
39     static_priv_by_default::foo::c;
40     //~^ ERROR: module `foo` is private
41     foo::<static_priv_by_default::foo::d>();
42     //~^ ERROR: module `foo` is private
43     foo::<static_priv_by_default::foo::e>();
44     //~^ ERROR: module `foo` is private
45 }