From 5e84edbe1a79c6a7752ee276ea6c1a4daef4fa8e Mon Sep 17 00:00:00 2001 From: _ov4 Date: Thu, 22 Oct 2026 15:33:02 +0000 Subject: fix(diagnostics): print each identical diagnostic once Co-Authored-By: Claude Sonnet 5.5 --- include/cps/Diagnostics.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'include/cps/Diagnostics.h') diff --git a/include/cps/Diagnostics.h b/include/cps/Diagnostics.h index 4bcb877..9c9ea37 100644 --- a/include/cps/Diagnostics.h +++ b/include/cps/Diagnostics.h @@ -1,6 +1,7 @@ #pragma once #include #include +#include #include namespace cps { @@ -30,14 +31,24 @@ inline std::string diagnosticPrefix(Severity S, const std::string &Locus = "cpsc return (Locus.empty() ? "" : Span("01", Locus + ":") + " ") + Span(Color, Label); } +// Every diagnostic line printed so far, to suppress exact repeats. +inline std::set PrintedDiagnostics; + // Prints "::