blob: 8cf7eb01734ad62e877977b696a3f293e9a765e7 (
plain)
use miette::Diagnostic;
use thiserror::Error;
use crate::{
diagnostics::AstDiagnostic,
tokenize::{Span, TokenType},
};
#[derive(Error, Debug, Diagnostic)]
#[error("html tags is not allowed in kuht")]
#[diagnostic(code(HtmlTag), severity(Error))]
pub struct HtmlTag {
#[label(primary, "invalid html tag")]
tag: Span,
}
impl AstDiagnostic for HtmlTag {
fn handle_element(element: &crate::parse::Element<'_>) -> Option<Self> {
let TokenType::Tag {
lowercase_tag_name, ..
} = element.start_tag.ty
else {
return None;
};
if lowercase_tag_name != "html" {
return None;
}
Some(Self {
tag: element.start_tag.span,
})
}
}
|