Lines Matching +full:error +full:- +full:reporting

1 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2 // -*- mode: C++ -*-
4 // Copyright 2020-2022 Google LLC
21 #include "reporting.h"
38 #include "error.h"
45 namespace reporting { namespace
100 bool PrintComparison(const Reporting& reporting, in PrintComparison() argument
111 << "internal error: Attempt to print comparison with nothing to compare."; in PrintComparison()
114 os << DescribeKind(reporting.graph)(*id1) << " '" in PrintComparison()
115 << Describe(reporting.graph, reporting.names)(*id1) in PrintComparison()
117 << DescribeExtra(reporting.graph)(*id1) in PrintComparison()
122 os << DescribeKind(reporting.graph)(*id2) << " '" in PrintComparison()
123 << Describe(reporting.graph, reporting.names)(*id2) in PrintComparison()
125 << DescribeExtra(reporting.graph)(*id2) in PrintComparison()
131 GetResolvedDescription(reporting.graph, reporting.names, *id1); in PrintComparison()
133 GetResolvedDescription(reporting.graph, reporting.names, *id2); in PrintComparison()
134 os << DescribeKind(reporting.graph)(*id1) << ' '; in PrintComparison()
146 // unvisited (absent) -> started (false) -> finished (true)
150 Plain(const Reporting& reporting, std::ostream& output) in Plain() argument
151 : reporting_(reporting), output_(output) {} in Plain()
156 const Reporting& reporting_;
172 << "internal error: missing comparison"; in Print()
173 const auto& diff = it->second; in Print()
183 if (!insertion.first->second) { in Print()
200 insertion.first->second = true; in Print()
205 // unpack then print - want symbol diff forest rather than symbols diff tree in Report()
216 // printing. Optionally, avoid printing "uninteresting" nodes - those that have
221 Flat(const Reporting& reporting, bool full, std::ostream& output) in Flat() argument
222 : reporting_(reporting), full_(full), output_(output) {} in Flat()
227 const Reporting& reporting_;
248 << "internal error: missing comparison"; in Print()
249 const auto& diff = it->second; in Print()
253 // If it's a new diff-holding node, queue it. in Print()
259 // The stop flag can only be false on a non-recursive call which should be for in Print()
260 // a diff-holding node. in Print()
262 Die() << "internal error: FlatPrint called on inappropriate node"; in Print()
271 // Node changes may not be interesting, if we allow non-change diff in Print()
276 // Set the stop flag to prevent recursion past diff-holding nodes. in Print()
279 // If the sub-tree was interesting, add it. in Print()
314 return ids.insert({comparison, ids.size()}).first->second; in VizId()
318 const Reporting& reporting, const diff::Comparison& comparison, in VizPrint() argument
332 << "internal error: Attempt to print comparison with nothing to compare."; in VizPrint()
336 << Describe(reporting.graph, reporting.names)(*id1) in VizPrint()
337 << DescribeExtra(reporting.graph)(*id1) in VizPrint()
343 << Describe(reporting.graph, reporting.names)(*id2) in VizPrint()
344 << DescribeExtra(reporting.graph)(*id2) in VizPrint()
349 const auto it = reporting.outcomes.find(comparison); in VizPrint()
350 Check(it != reporting.outcomes.end()) << "internal error: missing comparison"; in VizPrint()
351 const auto& diff = it->second; in VizPrint()
355 GetResolvedDescription(reporting.graph, reporting.names, *id1); in VizPrint()
357 GetResolvedDescription(reporting.graph, reporting.names, *id2); in VizPrint()
370 os << " \"" << node << "\" -> \"" << node << ':' << index << "\"\n" in VizPrint()
376 VizPrint(reporting, to, seen, ids, os); in VizPrint()
377 os << " \"" << node << "\" -> \"" << VizId(ids, to) << "\" [label=\"" in VizPrint()
383 void ReportViz(const Reporting& reporting, const diff::Comparison& comparison, in ReportViz() argument
388 VizPrint(reporting, comparison, seen, ids, output); in ReportViz()
405 void Report(const Reporting& reporting, const diff::Comparison& comparison, in Report() argument
407 switch (reporting.options.format) { in Report()
409 Plain(reporting, output).Report(comparison); in Report()
414 const bool full = reporting.options.format == OutputFormat::FLAT; in Report()
415 Flat(reporting, full, output).Report(comparison); in Report()
420 Flat(reporting, false, report).Report(comparison); in Report()
433 ReportViz(reporting, comparison, output); in Report()
447 PrintFidelityReportBucket(transition, it->second, output); in FidelityDiff()
453 PrintFidelityReportBucket(transition, it->second, output); in FidelityDiff()
470 } // namespace reporting