| //@ revisions: public private | |
| //@ [private]compile-flags: --document-private-items | |
| //@ check-pass | |
| // There are 4 cases here: | |
| // 1. public item -> public type: no warning | |
| // 2. public item -> private type: warning | |
| // 3. private item -> public type: no warning | |
| // 4. private item -> private type: no warning | |
| // All 4 cases are tested with and without --document-private-items. | |
| // | |
| // Case 4 without --document-private-items is the one described in issue #74134. | |
| struct PrivateType; | |
| pub struct PublicType; | |
| pub struct Public { | |
| /// [`PublicType`] | |
| /// [`PrivateType`] | |
| //~^ WARNING public documentation for `public_item` links to private item `PrivateType` | |
| pub public_item: u32, | |
| /// [`PublicType`] | |
| /// [`PrivateType`] | |
| private_item: u32, | |
| } | |
| // The following cases are identical to the ones above, except that they are in a private | |
| // module. Thus they all fall into cases 3 and 4 and should not produce a warning. | |
| mod private { | |
| pub struct Public { | |
| /// [`super::PublicType`] | |
| /// [`super::PrivateType`] | |
| pub public_item: u32, | |
| /// [`super::PublicType`] | |
| /// [`super::PrivateType`] | |
| private_item: u32, | |
| } | |
| } |