| //@ 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, |
| } |
| } |