From 0cf6e7c5074e20781d8c4540bc71ab905843a24b Mon Sep 17 00:00:00 2001 From: ObserverOfTime Date: Wed, 1 Oct 2025 09:33:38 +0300 Subject: [PATCH] fix(cli): prevent crash when parsing stdin When we are parsing stdin via a pipe or heredoc, the source count is 0 (unsigned) so the XML output crashes while trying to subtract from it. --- crates/cli/src/parse.rs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/cli/src/parse.rs b/crates/cli/src/parse.rs index 61e4a86f..4b941fe3 100644 --- a/crates/cli/src/parse.rs +++ b/crates/cli/src/parse.rs @@ -230,13 +230,23 @@ impl ParseSummary { } } -#[derive(Serialize, Debug, Default)] +#[derive(Serialize, Debug)] pub struct ParseStats { pub parse_summaries: Vec, pub cumulative_stats: Stats, pub source_count: usize, } +impl Default for ParseStats { + fn default() -> Self { + Self { + parse_summaries: Vec::new(), + cumulative_stats: Stats::default(), + source_count: 1, + } + } +} + #[derive(Serialize, ValueEnum, Debug, Copy, Clone, Default, Eq, PartialEq)] pub enum ParseDebugType { #[default]