Skip to content

Commit 5be901a

Browse files
committed
effective visibility: Add test for a reexport of two names
in different namespaces, one public and another private.
1 parent 3e50038 commit 5be901a

File tree

2 files changed

+45
-2
lines changed

2 files changed

+45
-2
lines changed

src/test/ui/privacy/access_levels.rs

+14-1
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,21 @@ mod outer { //~ ERROR Public: pub(self), Exported: pub(self), Reachable: pub(sel
5555
}
5656
}
5757

58-
pub use outer::inner1;
58+
#[rustc_effective_visibility]
59+
pub use outer::inner1; //~ ERROR Public: pub, Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
5960

6061
pub fn foo() -> outer::ReachableStruct { outer::ReachableStruct {a: 0} }
6162

63+
mod half_public_import {
64+
#[rustc_effective_visibility]
65+
pub type HalfPublicImport = u8; //~ ERROR Public: pub(self), Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
66+
#[rustc_effective_visibility]
67+
#[allow(non_upper_case_globals)]
68+
pub(crate) const HalfPublicImport: u8 = 0; //~ ERROR Public: pub(self), Exported: pub(self), Reachable: pub(self), ReachableFromImplTrait: pub(self)
69+
}
70+
71+
#[rustc_effective_visibility]
72+
pub use half_public_import::HalfPublicImport; //~ ERROR Public: pub, Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
73+
//~^ ERROR Public: pub, Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
74+
6275
fn main() {}

src/test/ui/privacy/access_levels.stderr

+31-1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,36 @@ error: Public: pub(self), Exported: pub(self), Reachable: pub, ReachableFromImpl
8888
LL | pub a: u8,
8989
| ^^^^^^^^^
9090

91+
error: Public: pub, Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
92+
--> $DIR/access_levels.rs:59:9
93+
|
94+
LL | pub use outer::inner1;
95+
| ^^^^^^^^^^^^^
96+
97+
error: Public: pub(self), Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
98+
--> $DIR/access_levels.rs:65:5
99+
|
100+
LL | pub type HalfPublicImport = u8;
101+
| ^^^^^^^^^^^^^^^^^^^^^^^^^
102+
103+
error: Public: pub(self), Exported: pub(self), Reachable: pub(self), ReachableFromImplTrait: pub(self)
104+
--> $DIR/access_levels.rs:68:5
105+
|
106+
LL | pub(crate) const HalfPublicImport: u8 = 0;
107+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
108+
109+
error: Public: pub, Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
110+
--> $DIR/access_levels.rs:72:9
111+
|
112+
LL | pub use half_public_import::HalfPublicImport;
113+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
114+
115+
error: Public: pub, Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
116+
--> $DIR/access_levels.rs:72:9
117+
|
118+
LL | pub use half_public_import::HalfPublicImport;
119+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
120+
91121
error: Public: pub(self), Exported: pub, Reachable: pub, ReachableFromImplTrait: pub
92122
--> $DIR/access_levels.rs:14:13
93123
|
@@ -100,5 +130,5 @@ error: Public: pub(self), Exported: pub, Reachable: pub, ReachableFromImplTrait:
100130
LL | type B;
101131
| ^^^^^^
102132

103-
error: aborting due to 17 previous errors
133+
error: aborting due to 22 previous errors
104134

0 commit comments

Comments
 (0)