1 // compile-flags: --document-private-items
3 #![feature(crate_visibility_modifier)]
7 // @!has 'foo/index.html' '//a[@href="struct.FooPublic.html"]/..' 'FooPublic 🔒'
8 // @has 'foo/struct.FooPublic.html' '//pre' 'pub struct FooPublic'
10 // @has 'foo/index.html' '//a[@href="struct.FooJustCrate.html"]/..' 'FooJustCrate 🔒'
11 // @has 'foo/struct.FooJustCrate.html' '//pre' 'pub(crate) struct FooJustCrate'
12 crate struct FooJustCrate;
13 // @has 'foo/index.html' '//a[@href="struct.FooPubCrate.html"]/..' 'FooPubCrate 🔒'
14 // @has 'foo/struct.FooPubCrate.html' '//pre' 'pub(crate) struct FooPubCrate'
15 pub(crate) struct FooPubCrate;
16 // @has 'foo/index.html' '//a[@href="struct.FooSelf.html"]/..' 'FooSelf 🔒'
17 // @has 'foo/struct.FooSelf.html' '//pre' 'pub(crate) struct FooSelf'
18 pub(self) struct FooSelf;
19 // @has 'foo/index.html' '//a[@href="struct.FooInSelf.html"]/..' 'FooInSelf 🔒'
20 // @has 'foo/struct.FooInSelf.html' '//pre' 'pub(crate) struct FooInSelf'
21 pub(in self) struct FooInSelf;
22 // @has 'foo/index.html' '//a[@href="struct.FooPriv.html"]/..' 'FooPriv 🔒'
23 // @has 'foo/struct.FooPriv.html' '//pre' 'pub(crate) struct FooPriv'
26 // @!has 'foo/index.html' '//a[@href="pub_mod/index.html"]/..' 'pub_mod 🔒'
29 // @has 'foo/index.html' '//a[@href="pub_crate_mod/index.html"]/..' 'pub_crate_mod 🔒'
30 pub(crate) mod pub_crate_mod {}
32 // @has 'foo/index.html' '//a[@href="a/index.html"]/..' 'a 🔒'
34 // @has 'foo/a/index.html' '//a[@href="struct.FooASuper.html"]/..' 'FooASuper 🔒'
35 // @has 'foo/a/struct.FooASuper.html' '//pre' 'pub(crate) struct FooASuper'
36 pub(super) struct FooASuper;
37 // @has 'foo/a/index.html' '//a[@href="struct.FooAInSuper.html"]/..' 'FooAInSuper 🔒'
38 // @has 'foo/a/struct.FooAInSuper.html' '//pre' 'pub(crate) struct FooAInSuper'
39 pub(in super) struct FooAInSuper;
40 // @has 'foo/a/index.html' '//a[@href="struct.FooAInA.html"]/..' 'FooAInA 🔒'
41 // @has 'foo/a/struct.FooAInA.html' '//pre' 'struct FooAInA'
42 // @!has 'foo/a/struct.FooAInA.html' '//pre' 'pub'
43 pub(in a) struct FooAInA;
44 // @has 'foo/a/index.html' '//a[@href="struct.FooAPriv.html"]/..' 'FooAPriv 🔒'
45 // @has 'foo/a/struct.FooAPriv.html' '//pre' 'struct FooAPriv'
46 // @!has 'foo/a/struct.FooAPriv.html' '//pre' 'pub'
49 // @has 'foo/a/index.html' '//a[@href="b/index.html"]/..' 'b 🔒'
51 // @has 'foo/a/b/index.html' '//a[@href="struct.FooBSuper.html"]/..' 'FooBSuper 🔒'
52 // @has 'foo/a/b/struct.FooBSuper.html' '//pre' 'pub(super) struct FooBSuper'
53 pub(super) struct FooBSuper;
54 // @has 'foo/a/b/index.html' '//a[@href="struct.FooBInSuperSuper.html"]/..' 'FooBInSuperSuper 🔒'
55 // @has 'foo/a/b/struct.FooBInSuperSuper.html' '//pre' 'pub(crate) struct FooBInSuperSuper'
56 pub(in super::super) struct FooBInSuperSuper;
57 // @has 'foo/a/b/index.html' '//a[@href="struct.FooBInAB.html"]/..' 'FooBInAB 🔒'
58 // @has 'foo/a/b/struct.FooBInAB.html' '//pre' 'struct FooBInAB'
59 // @!has 'foo/a/b/struct.FooBInAB.html' '//pre' 'pub'
60 pub(in a::b) struct FooBInAB;
61 // @has 'foo/a/b/index.html' '//a[@href="struct.FooBPriv.html"]/..' 'FooBPriv 🔒'
62 // @has 'foo/a/b/struct.FooBPriv.html' '//pre' 'struct FooBPriv'
63 // @!has 'foo/a/b/struct.FooBPriv.html' '//pre' 'pub'
66 // @!has 'foo/a/b/index.html' '//a[@href="struct.FooBPub.html"]/..' 'FooBPub 🔒'
67 // @has 'foo/a/b/struct.FooBPub.html' '//pre' 'pub struct FooBPub'
72 // @has 'foo/trait.PubTrait.html' '//pre' 'pub trait PubTrait'
74 // @has 'foo/trait.PubTrait.html' '//pre' 'type Type;'
75 // @!has 'foo/trait.PubTrait.html' '//pre' 'pub type Type;'
77 // @has 'foo/trait.PubTrait.html' '//pre' 'const CONST: usize;'
78 // @!has 'foo/trait.PubTrait.html' '//pre' 'pub const CONST: usize;'
80 // @has 'foo/trait.PubTrait.html' '//pre' 'fn function();'
81 // @!has 'foo/trait.PubTrait.html' '//pre' 'pub fn function();'
83 // @!has 'foo/index.html' '//a[@href="trait.PubTrait.html"]/..' 'PubTrait 🔒'
91 // @has 'foo/index.html' '//a[@href="trait.PrivTrait.html"]/..' 'PrivTrait 🔒'
94 // @has 'foo/struct.FooPublic.html' '//h4[@class="code-header"]' 'type Type'
95 // @!has 'foo/struct.FooPublic.html' '//h4[@class="code-header"]' 'pub type Type'
97 // @has 'foo/struct.FooPublic.html' '//h4[@class="code-header"]' 'const CONST: usize'
98 // @!has 'foo/struct.FooPublic.html' '//h4[@class="code-header"]' 'pub const CONST: usize'
100 // @has 'foo/struct.FooPublic.html' '//h4[@class="code-header"]' 'fn function()'
101 // @!has 'foo/struct.FooPublic.html' '//h4[@class="code-header"]' 'pub fn function()'
103 impl PubTrait for FooPublic {
105 const CONST: usize = 0;