Expand description
C++’s semantic diagnostics: unrecognized-type reporting with stated proof.
The pass reports a missing type only where it can prove what a translation
unit sees: a compile_commands.json entry with no forced or system
includes, an #include closure of quoted project headers that all resolve
and parse cleanly, and no preprocessor conditionals or macro definitions
anywhere in that closure. That gate is unchanged. What changed in #1627 is
that every way of failing it now states a typed
SemanticDiagnosticIncompleteReason instead of returning silence: “this
file has no unknown types” and “this file was never checked” are different
answers, and only the first may be read as a clean bill of health.
Nothing here runs a compiler, a build tool, or a system include scan. The compile database is the whole of the external evidence, so a file the database does not name is unjudgeable rather than clean.
analyzer/cpp/diagnostics.rs in brokk-bifrost-analysis keeps only the
fixtures that build a real CppAnalyzer.