#![deny(rustdoc::invalid_html_tags)] /// This Vec<32> thing! // Numbers aren't valid HTML tags, so no error. pub struct ConstGeneric; /// This Vec thing! // HTML tags cannot contain commas, so no error. pub struct MultipleGenerics; /// This <[u32] as Iterator> 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 ::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::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 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 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; /// This Vec thing! //~^ERROR unclosed HTML tag `i32` // HTML attributes shouldn't be treated as Rust syntax, so no suggestions. pub struct TagWithAttributes; /// This Vec thing! // There should be no error, and no suggestion, since the tags are balanced. pub struct DoNotWarnOnMatchingTags; /// This Vec thing! //~^ERROR unopened HTML tag `i32` // This should produce an error, but no suggestion. pub struct EndTagsAreNotValidRustSyntax; /// This 123 thing! //~^ERROR unclosed HTML tag `i32` // This should produce an error, but no suggestion. pub struct NumbersAreNotPaths; /// This Vec: thing! //~^ERROR unclosed HTML tag `i32` // This should produce an error, but no suggestion. pub struct InvalidTurbofish; /// This [link](https://rust-lang.org) thing! //~^ERROR unclosed HTML tag `i32` // This should produce an error, but no suggestion. pub struct BareTurbofish;