2022-02-01 23:22:57 -06:00
|
|
|
#![deny(rustdoc::invalid_html_tags)]
|
|
|
|
|
|
|
|
/// This Vec<32> thing!
|
|
|
|
// Numbers aren't valid HTML tags, so no error.
|
|
|
|
pub struct ConstGeneric;
|
|
|
|
|
|
|
|
/// This Vec<i32, i32> thing!
|
|
|
|
// HTML tags cannot contain commas, so no error.
|
|
|
|
pub struct MultipleGenerics;
|
|
|
|
|
2022-09-12 13:11:37 -05:00
|
|
|
/// This <[u32] as Iterator<Item>> thing!
|
|
|
|
//~^ERROR unclosed HTML tag `Item`
|
|
|
|
// Some forms of fully-qualified path are simultaneously valid HTML tags
|
|
|
|
// with attributes. They produce an error, but no suggestion, because figuring
|
|
|
|
// out if this is valid would require parsing the entire path grammar.
|
|
|
|
//
|
|
|
|
// The important part is that we don't produce any *wrong* suggestions.
|
|
|
|
// While several other examples below are added to make sure we don't
|
|
|
|
// produce suggestions when given complex paths, this example is the actual
|
|
|
|
// reason behind not just using the real path parser. It's ambiguous: there's
|
|
|
|
// no way to locally reason out whether that `[u32]` is intended to be a slice
|
|
|
|
// or an intra-doc link.
|
|
|
|
pub struct FullyQualifiedPathsDoNotCount;
|
|
|
|
|
|
|
|
/// This <Vec as IntoIter>::Iter thing!
|
|
|
|
//~^ERROR unclosed HTML tag `Vec`
|
|
|
|
// Some forms of fully-qualified path are simultaneously valid HTML tags
|
|
|
|
// with attributes. They produce an error, but no suggestion, because figuring
|
|
|
|
// out if this is valid would require parsing the entire path grammar.
|
|
|
|
pub struct FullyQualifiedPathsDoNotCount1;
|
|
|
|
|
|
|
|
/// This Vec<Vec as IntoIter>::Iter thing!
|
|
|
|
//~^ERROR unclosed HTML tag `Vec`
|
|
|
|
// Some forms of fully-qualified path are simultaneously valid HTML tags
|
|
|
|
// with attributes. They produce an error, but no suggestion, because figuring
|
|
|
|
// out if this is valid would require parsing the entire path grammar.
|
|
|
|
pub struct FullyQualifiedPathsDoNotCount2;
|
|
|
|
|
|
|
|
/// This Vec<Vec as IntoIter> thing!
|
|
|
|
//~^ERROR unclosed HTML tag `Vec`
|
|
|
|
// Some forms of fully-qualified path are simultaneously valid HTML tags
|
|
|
|
// with attributes. They produce an error, but no suggestion, because figuring
|
|
|
|
// out if this is valid would require parsing the entire path grammar.
|
|
|
|
pub struct FullyQualifiedPathsDoNotCount3;
|
|
|
|
|
|
|
|
/// This Vec<Vec<i32> as IntoIter> thing!
|
|
|
|
//~^ERROR unclosed HTML tag `i32`
|
|
|
|
// Some forms of fully-qualified path are simultaneously valid HTML tags
|
|
|
|
// with attributes. They produce an error, but no suggestion, because figuring
|
|
|
|
// out if this is valid would require parsing the entire path grammar.
|
|
|
|
pub struct FullyQualifiedPathsDoNotCount4;
|
|
|
|
|
2022-02-01 23:22:57 -06:00
|
|
|
/// This Vec<i32 class="test"> thing!
|
|
|
|
//~^ERROR unclosed HTML tag `i32`
|
|
|
|
// HTML attributes shouldn't be treated as Rust syntax, so no suggestions.
|
|
|
|
pub struct TagWithAttributes;
|
|
|
|
|
|
|
|
/// This Vec<i32></i32> thing!
|
|
|
|
// There should be no error, and no suggestion, since the tags are balanced.
|
|
|
|
pub struct DoNotWarnOnMatchingTags;
|
|
|
|
|
|
|
|
/// This Vec</i32> thing!
|
|
|
|
//~^ERROR unopened HTML tag `i32`
|
|
|
|
// This should produce an error, but no suggestion.
|
|
|
|
pub struct EndTagsAreNotValidRustSyntax;
|
|
|
|
|
|
|
|
/// This 123<i32> thing!
|
|
|
|
//~^ERROR unclosed HTML tag `i32`
|
|
|
|
// This should produce an error, but no suggestion.
|
|
|
|
pub struct NumbersAreNotPaths;
|
|
|
|
|
|
|
|
/// This Vec:<i32> thing!
|
|
|
|
//~^ERROR unclosed HTML tag `i32`
|
|
|
|
// This should produce an error, but no suggestion.
|
|
|
|
pub struct InvalidTurbofish;
|
|
|
|
|
|
|
|
/// This [link](https://rust-lang.org)<i32> thing!
|
|
|
|
//~^ERROR unclosed HTML tag `i32`
|
|
|
|
// This should produce an error, but no suggestion.
|
|
|
|
pub struct BareTurbofish;
|