rust/tests/rustdoc-ui/lints/bare-urls.fixed
binarycat 3005a09fed rustdoc: improve diagnostics on raw doc fragments
1. rustdoc::bare_urls doesn't output
   invalid suggestions if source_span_for_markdown_range
   fails to find a span

2. source_span_for_markdown_range tries harder to
   return a span by applying an additional diagnostic

fixes https://github.com/rust-lang/rust/issues/135851
2025-05-22 12:31:28 -05:00

71 lines
2.0 KiB
Rust

//@ run-rustfix
#![deny(rustdoc::bare_urls)]
/// <https://somewhere.com>
//~^ ERROR this URL is not a hyperlink
/// <https://somewhere.com/a>
//~^ ERROR this URL is not a hyperlink
/// <https://www.somewhere.com>
//~^ ERROR this URL is not a hyperlink
/// <https://www.somewhere.com/a>
//~^ ERROR this URL is not a hyperlink
/// <https://subdomain.example.com>
//~^ ERROR not a hyperlink
/// <https://somewhere.com?>
//~^ ERROR this URL is not a hyperlink
/// <https://somewhere.com/a?>
//~^ ERROR this URL is not a hyperlink
/// <https://somewhere.com?hello=12>
//~^ ERROR this URL is not a hyperlink
/// <https://somewhere.com/a?hello=12>
//~^ ERROR this URL is not a hyperlink
/// <https://example.com?hello=12#xyz>
//~^ ERROR this URL is not a hyperlink
/// <https://example.com/a?hello=12#xyz>
//~^ ERROR this URL is not a hyperlink
/// <https://example.com#xyz>
//~^ ERROR this URL is not a hyperlink
/// <https://example.com/a#xyz>
//~^ ERROR this URL is not a hyperlink
/// <https://somewhere.com?hello=12&bye=11>
//~^ ERROR this URL is not a hyperlink
/// <https://somewhere.com/a?hello=12&bye=11>
//~^ ERROR this URL is not a hyperlink
/// <https://somewhere.com?hello=12&bye=11#xyz>
//~^ ERROR this URL is not a hyperlink
/// hey! <https://somewhere.com/a?hello=12&bye=11#xyz>
//~^ ERROR this URL is not a hyperlink
pub fn c() {}
#[doc = "here's a thing: <https://example.com/>"]
//~^ ERROR this URL is not a hyperlink
pub fn f() {}
/// <https://example.com/sugar>
//~^ ERROR this URL is not a hyperlink
#[doc = "<https://example.com/raw>"]
//~^ ERROR this URL is not a hyperlink
pub fn mixed() {}
/// <https://somewhere.com>
/// [a](http://a.com)
/// [b]
///
/// [b]: http://b.com
///
/// ```
/// This link should not be linted: http://example.com
///
/// Nor this one: <http://example.com> or this one: [x](http://example.com)
/// ```
///
/// [should_not.lint](should_not.lint)
pub fn everything_is_fine_here() {}
#[allow(rustdoc::bare_urls)]
pub mod foo {
/// https://somewhere.com/a?hello=12&bye=11#xyz
pub fn bar() {}
}