mirror of https://github.com/rust-lang/rust
42 lines
1.2 KiB
Rust
42 lines
1.2 KiB
Rust
//@ 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,
|
|
}
|
|
}
|