| // Many examples are from |
| // https://github.com/rust-lang/rust/issues/110111#issuecomment-1517800781 |
| #![deny(rustdoc::broken_intra_doc_links)] |
| |
| //! This test case is closely linked to [raphlinus/pulldown-cmark#441], getting offsets of |
| //! link components. In particular, pulldown-cmark doesn't provide the offsets of the contents |
| //! of a link. |
| //! |
| //! To work around this, rustdoc parses parts of a link definition itself. This is basically a |
| //! test suite for that link syntax parser. |
| //! |
| //! [raphlinus/pulldown-cmark#441]: https://github.com/raphlinus/pulldown-cmark/issues/441 |
| |
| use std::clone::Clone; |
| |
| // Basic version // |
| |
| /// [`struct@Clone`] //~ERROR link |
| pub struct LinkToCloneWithBackquotes; |
| |
| /// [```struct@Clone```] //~ERROR link |
| pub struct LinkToCloneWithMultipleBackquotes; |
| |
| /// [ ` struct@Clone ` ] //~ERROR link |
| pub struct LinkToCloneWithSpacesAndBackquotes; |
| |
| /// [ `Clone ()` ] //~ERROR link |
| pub struct LinkToCloneWithSpacesBackquotesAndParens; |
| |
| /// [`Clone ()` ] //~ERROR link |
| pub struct LinkToCloneWithSpacesEndBackquotesAndParens; |
| |
| /// [ `Clone ()`] //~ERROR link |
| pub struct LinkToCloneWithSpacesStartBackquotesAndParens; |
| |
| /// [```Clone ()```] //~ERROR link |
| pub struct LinkToCloneWithMultipleBackquotesAndParens; |
| |
| /// [```Clone \(\)```] // not URL-shaped enough |
| pub struct LinkToCloneWithMultipleBackquotesAndEscapedParens; |
| |
| /// [ ``` Clone () ``` ] //~ERROR link |
| pub struct LinkToCloneWithSpacesMultipleBackquotesAndParens; |
| |
| /// [ x \] ] // not URL-shaped enough |
| pub struct LinkWithEscapedCloseBrace; |
| |
| /// [ x \[ ] // not URL-shaped enough |
| pub struct LinkWithEscapedOpenBrace; |
| |
| /// [ x \( ] // not URL-shaped enough |
| pub struct LinkWithEscapedCloseParen; |
| |
| /// [ x \) ] // not URL-shaped enough |
| pub struct LinkWithEscapedOpenParen; |
| |
| /// [ Clone \(\) ] // not URL-shaped enough |
| pub struct LinkWithEscapedParens; |
| |
| // [][] version // |
| |
| /// [x][ struct@Clone] //~ERROR link |
| pub struct XLinkToCloneWithStartSpace; |
| |
| /// [x][struct@Clone ] //~ERROR link |
| pub struct XLinkToCloneWithEndSpace; |
| |
| /// [x][Clone\(\)] //~ERROR link |
| pub struct XLinkToCloneWithEscapedParens; |
| |
| /// [x][`Clone`] not URL-shaped enough |
| pub struct XLinkToCloneWithBackquotes; |
| |
| /// [x][Clone()] //~ERROR link |
| pub struct XLinkToCloneWithUnescapedParens; |
| |
| /// [x][Clone ()] //~ERROR link |
| pub struct XLinkToCloneWithUnescapedParensAndDoubleSpace; |
| |
| /// [x][Clone [] //~ERROR unresolved link to `x` |
| pub struct XLinkToCloneWithUnmatchedOpenParenAndDoubleSpace; |
| |
| /// [x][Clone \[] // not URL-shaped enough |
| pub struct XLinkToCloneWithUnmatchedEscapedOpenParenAndDoubleSpace; |
| |
| /// [x][Clone \]] // not URL-shaped enough |
| pub struct XLinkToCloneWithUnmatchedEscapedCloseParenAndDoubleSpace; |
| |
| // []() version // |
| |
| /// [w]( struct@Clone) //~ERROR link |
| pub struct WLinkToCloneWithStartSpace; |
| |
| /// [w](struct@Clone ) //~ERROR link |
| pub struct WLinkToCloneWithEndSpace; |
| |
| /// [w](Clone\(\)) //~ERROR link |
| pub struct WLinkToCloneWithEscapedParens; |
| |
| /// [w](`Clone`) not URL-shaped enough |
| pub struct WLinkToCloneWithBackquotes; |
| |
| /// [w](Clone()) //~ERROR link |
| pub struct WLinkToCloneWithUnescapedParens; |
| |
| /// [w](Clone ()) not URL-shaped enough |
| pub struct WLinkToCloneWithUnescapedParensAndDoubleSpace; |
| |
| /// [w](Clone () //~ERROR unresolved link to `w` |
| pub struct WLinkToCloneWithUnmatchedOpenParenAndDoubleSpace; |
| |
| /// [w](Clone \() //~ERROR unresolved link to `w` |
| pub struct WLinkToCloneWithUnmatchedEscapedOpenParenAndDoubleSpace; |
| |
| /// [w](Clone \)) //~ERROR unresolved link to `w` |
| pub struct WLinkToCloneWithUnmatchedEscapedCloseParenAndDoubleSpace; |
| |
| // References |
| |
| /// The [cln][] link here is going to be unresolved, because `Clone()` gets |
| //~^ ERROR link |
| /// rejected in Markdown for not being URL-shaped enough. |
| /// [cln]: Clone() |
| //~^ ERROR link |
| pub struct LinkToCloneWithParensInReference; |
| |
| /// The [cln][] link here is going to produce a good inline suggestion |
| /// |
| /// [cln]: struct@Clone |
| //~^ ERROR link |
| pub struct LinkToCloneWithWrongPrefix; |
| |
| /// The [cln][] link here will produce a good inline suggestion |
| /// |
| /// [cln]: Clone\(\) |
| //~^ ERROR link |
| pub struct LinkToCloneWithEscapedParensInReference; |
| |
| /// The [cln][] link here will produce a good inline suggestion |
| /// |
| /// [cln]: struct\@Clone |
| //~^ ERROR link |
| pub struct LinkToCloneWithEscapedAtsInReference; |
| |
| |
| /// This link reference definition isn't used, but since it is still parsed, |
| /// it should still produce a warning. |
| /// |
| /// [cln]: struct\@Clone |
| //~^ ERROR link |
| pub struct UnusedLinkToCloneReferenceDefinition; |
| |
| /// <https://github.com/rust-lang/rust/issues/133150> |
| /// |
| /// - [`SDL_PROP_WINDOW_CREATE_COCOA_WINDOW_POINTER`]: the |
| //~^ ERROR link |
| /// `(__unsafe_unretained)` NSWindow associated with the window, if you want |
| /// to wrap an existing window. |
| /// - [`SDL_PROP_WINDOW_CREATE_COCOA_VIEW_POINTER`]: the `(__unsafe_unretained)` |
| /// NSView associated with the window, defaults to `[window contentView]` |
| pub fn a() {} |
| #[allow(nonstandard_style)] |
| pub struct SDL_PROP_WINDOW_CREATE_COCOA_WINDOW_POINTER; |
| #[allow(nonstandard_style)] |
| pub struct SDL_PROP_WINDOW_CREATE_COCOA_VIEW_POINTER; |