]> git.proxmox.com Git - rustc.git/blob - tests/ui/xcrate/xcrate-private-by-default.rs
New upstream version 1.68.2+dfsg1
[rustc.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 }