refactor(control_tree): use ASTNode::span SSOT

This commit is contained in:
nyash-codex
2025-12-18 00:32:23 +09:00
parent 67a2408da5
commit e4735f4054

View File

@ -292,7 +292,7 @@ impl StepTreeBuilderBox {
other => ( other => (
StepNode::Stmt { StepNode::Stmt {
kind: StepStmtKind::Other(ast_kind_name(other)), kind: StepStmtKind::Other(ast_kind_name(other)),
span: span_of(other), span: other.span(),
}, },
StepTreeFeatures::default(), StepTreeFeatures::default(),
), ),
@ -399,55 +399,6 @@ fn ast_kind_name(ast: &ASTNode) -> &'static str {
} }
} }
fn span_of(ast: &ASTNode) -> Span {
match ast {
ASTNode::Program { span, .. } => span.clone(),
ASTNode::Assignment { span, .. } => span.clone(),
ASTNode::Print { span, .. } => span.clone(),
ASTNode::If { span, .. } => span.clone(),
ASTNode::Loop { span, .. } => span.clone(),
ASTNode::While { span, .. } => span.clone(),
ASTNode::ForRange { span, .. } => span.clone(),
ASTNode::Return { span, .. } => span.clone(),
ASTNode::Break { span } => span.clone(),
ASTNode::Continue { span } => span.clone(),
ASTNode::UsingStatement { span, .. } => span.clone(),
ASTNode::ImportStatement { span, .. } => span.clone(),
ASTNode::Nowait { span, .. } => span.clone(),
ASTNode::AwaitExpression { span, .. } => span.clone(),
ASTNode::QMarkPropagate { span, .. } => span.clone(),
ASTNode::MatchExpr { span, .. } => span.clone(),
ASTNode::ArrayLiteral { span, .. } => span.clone(),
ASTNode::MapLiteral { span, .. } => span.clone(),
ASTNode::Lambda { span, .. } => span.clone(),
ASTNode::Arrow { span, .. } => span.clone(),
ASTNode::TryCatch { span, .. } => span.clone(),
ASTNode::Throw { span, .. } => span.clone(),
ASTNode::BoxDeclaration { span, .. } => span.clone(),
ASTNode::FunctionDeclaration { span, .. } => span.clone(),
ASTNode::GlobalVar { span, .. } => span.clone(),
ASTNode::Literal { span, .. } => span.clone(),
ASTNode::Variable { span, .. } => span.clone(),
ASTNode::UnaryOp { span, .. } => span.clone(),
ASTNode::BinaryOp { span, .. } => span.clone(),
ASTNode::GroupedAssignmentExpr { span, .. } => span.clone(),
ASTNode::MethodCall { span, .. } => span.clone(),
ASTNode::Call { span, .. } => span.clone(),
ASTNode::FunctionCall { span, .. } => span.clone(),
ASTNode::FieldAccess { span, .. } => span.clone(),
ASTNode::Index { span, .. } => span.clone(),
ASTNode::New { span, .. } => span.clone(),
ASTNode::This { span } => span.clone(),
ASTNode::Me { span } => span.clone(),
ASTNode::FromCall { span, .. } => span.clone(),
ASTNode::ThisField { span, .. } => span.clone(),
ASTNode::MeField { span, .. } => span.clone(),
ASTNode::Local { span, .. } => span.clone(),
ASTNode::ScopeBox { span, .. } => span.clone(),
ASTNode::Outbox { span, .. } => span.clone(),
}
}
impl StepNode { impl StepNode {
fn with_span(self, span: Span) -> StepNode { fn with_span(self, span: Span) -> StepNode {
match self { match self {