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