From 3b6184b122933b4d279b6e7a1848ce3f729a1596 Mon Sep 17 00:00:00 2001 From: alexion Date: Sat, 19 Sep 2026 20:32:55 -0400 Subject: [PATCH] refactor(xatu): remove unused AST nodes --- src/xatu/ast.rs | 18 -------- src/xatu/parser.rs | 63 --------------------------- src/xatu/rules/manual_inherit.rs | 6 +-- src/xatu/rules/manual_inherit_from.rs | 6 +-- 4 files changed, 4 insertions(+), 89 deletions(-) diff --git a/src/xatu/ast.rs b/src/xatu/ast.rs index 3b7fa50..bf962f9 100644 --- a/src/xatu/ast.rs +++ b/src/xatu/ast.rs @@ -28,15 +28,7 @@ impl std::fmt::Display for SourceRange { #[derive(Debug, Clone, PartialEq, Eq)] pub enum NodeData { - Apply(Apply), Assignment(Assignment), - LetIn(LetIn), - Inherit(Inherit), -} - -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Apply { - pub function: Expr, } #[derive(Debug, Clone, PartialEq, Eq)] @@ -62,16 +54,6 @@ pub struct Select { pub attrs: Vec, } -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct LetIn { - pub binding_count: usize, -} - -#[derive(Debug, Clone, PartialEq, Eq)] -pub struct Inherit { - pub attr_count: usize, -} - #[derive(Debug, Clone, PartialEq, Eq)] pub struct Token { pub range: SourceRange, diff --git a/src/xatu/parser.rs b/src/xatu/parser.rs index 245605b..8d41928 100644 --- a/src/xatu/parser.rs +++ b/src/xatu/parser.rs @@ -1,4 +1,3 @@ -use rnix::ast::HasEntry; use rowan::ast::AstNode; use crate::{FileId, ast}; @@ -37,35 +36,11 @@ fn convert_syntax(syntax: rnix::SyntaxNode) -> (Vec, Vec) fn convert_node(node: rnix::SyntaxNode) -> Option { match node.kind() { - rnix::SyntaxKind::NODE_APPLY => convert_apply(node), rnix::SyntaxKind::NODE_ATTRPATH_VALUE => convert_assignment(node), - rnix::SyntaxKind::NODE_LET_IN => convert_let_in(node), - rnix::SyntaxKind::NODE_INHERIT => convert_inherit(node), _ => None, } } -fn convert_apply(node: rnix::SyntaxNode) -> Option { - let apply = rnix::ast::Apply::cast(node)?; - let range = apply.syntax().text_range().into(); - let data = apply.try_into().ok()?; - - Some(ast::Node { - range, - data: ast::NodeData::Apply(data), - }) -} - -impl TryFrom for ast::Apply { - type Error = (); - - fn try_from(apply: rnix::ast::Apply) -> Result { - Ok(Self { - function: apply.lambda().ok_or(())?.try_into()?, - }) - } -} - fn convert_assignment(node: rnix::SyntaxNode) -> Option { let assignment = rnix::ast::AttrpathValue::cast(node)?; let range = assignment.syntax().text_range().into(); @@ -140,44 +115,6 @@ impl TryFrom for ast::Select { } } -fn convert_let_in(node: rnix::SyntaxNode) -> Option { - let let_in = rnix::ast::LetIn::cast(node)?; - - Some(ast::Node { - range: let_in.syntax().text_range().into(), - data: ast::NodeData::LetIn(let_in.into()), - }) -} - -impl From for ast::LetIn { - fn from(let_in: rnix::ast::LetIn) -> Self { - Self { - binding_count: let_in.attrpath_values().count() - + let_in - .inherits() - .map(|inherit| inherit.attrs().count()) - .sum::(), - } - } -} - -fn convert_inherit(node: rnix::SyntaxNode) -> Option { - let inherit = rnix::ast::Inherit::cast(node)?; - - Some(ast::Node { - range: inherit.syntax().text_range().into(), - data: ast::NodeData::Inherit(inherit.into()), - }) -} - -impl From for ast::Inherit { - fn from(inherit: rnix::ast::Inherit) -> Self { - Self { - attr_count: inherit.attrs().count(), - } - } -} - fn convert_token(token: rnix::SyntaxToken) -> Option { match token.kind() { rnix::SyntaxKind::TOKEN_URI => Some(ast::Token { diff --git a/src/xatu/rules/manual_inherit.rs b/src/xatu/rules/manual_inherit.rs index 3c6f1e7..bd154bf 100644 --- a/src/xatu/rules/manual_inherit.rs +++ b/src/xatu/rules/manual_inherit.rs @@ -8,10 +8,8 @@ impl NodeRule for ManualInherit { const ID: &'static str = "manual_inherit"; fn select(data: &ast::NodeData) -> Option<&Self::Node> { - match data { - ast::NodeData::Assignment(assignment) => Some(assignment), - _ => None, - } + let ast::NodeData::Assignment(assignment) = data; + Some(assignment) } fn check(assignment: &Self::Node) -> Option<&'static str> { diff --git a/src/xatu/rules/manual_inherit_from.rs b/src/xatu/rules/manual_inherit_from.rs index 4023a39..2fb6c1d 100644 --- a/src/xatu/rules/manual_inherit_from.rs +++ b/src/xatu/rules/manual_inherit_from.rs @@ -8,10 +8,8 @@ impl NodeRule for ManualInheritFrom { const ID: &'static str = "manual_inherit_from"; fn select(data: &ast::NodeData) -> Option<&Self::Node> { - match data { - ast::NodeData::Assignment(assignment) => Some(assignment), - _ => None, - } + let ast::NodeData::Assignment(assignment) = data; + Some(assignment) } fn check(assignment: &Self::Node) -> Option<&'static str> {