summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov/SourceCoverageView.cpp
diff options
context:
space:
mode:
authorVedant Kumar <vsk@apple.com>2016-06-26 02:45:13 +0000
committerVedant Kumar <vsk@apple.com>2016-06-26 02:45:13 +0000
commit861a19c294e257e9be59c814298016e2d3b7a842 (patch)
tree6239e6ffdaa93f1d1df648d79f41c8f38c8b3dde /llvm/tools/llvm-cov/SourceCoverageView.cpp
parent9a2e979b3d9fdcf119cff567d87d1bea6ba5f46f (diff)
downloadbcm5719-llvm-861a19c294e257e9be59c814298016e2d3b7a842.tar.gz
bcm5719-llvm-861a19c294e257e9be59c814298016e2d3b7a842.zip
[llvm-cov] Simplify the way expansion views are rendered (NFC)
If a sub-view has already been rendered, it's helpful to re-render the expansion site before rendering the next expansion view. Make this fact explicit in the rendering interface, instead of hiding it behind an awkward Optional<LineRef> parameter. llvm-svn: 273789
Diffstat (limited to 'llvm/tools/llvm-cov/SourceCoverageView.cpp')
-rw-r--r--llvm/tools/llvm-cov/SourceCoverageView.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/llvm/tools/llvm-cov/SourceCoverageView.cpp b/llvm/tools/llvm-cov/SourceCoverageView.cpp
index 45684d78e31..0c2a8878f3b 100644
--- a/llvm/tools/llvm-cov/SourceCoverageView.cpp
+++ b/llvm/tools/llvm-cov/SourceCoverageView.cpp
@@ -129,14 +129,22 @@ void SourceCoverageView::print(raw_ostream &OS, bool WholeFile,
for (; NextESV != EndESV && NextESV->getLine() == LI.line_number();
++NextESV) {
renderViewDivider(OS, ViewDepth + 1);
- ExpansionColumn = renderExpansionView(
- OS, *NextESV,
- RenderedSubView ? Optional<LineRef>({*LI, LI.line_number()})
- : Optional<LineRef>(),
- WrappedSegment, LineSegments, ExpansionColumn, ViewDepth);
+
+ // Re-render the current line and highlight the expansion range for
+ // this subview.
+ if (RenderedSubView) {
+ ExpansionColumn = NextESV->getStartCol();
+ renderExpansionSite(
+ OS, *NextESV, {*LI, LI.line_number()}, WrappedSegment, LineSegments,
+ ExpansionColumn, ViewDepth);
+ renderViewDivider(OS, ViewDepth + 1);
+ }
+
+ renderExpansionView(OS, *NextESV, ViewDepth + 1);
RenderedSubView = true;
}
for (; NextISV != EndISV && NextISV->Line == LI.line_number(); ++NextISV) {
+ renderViewDivider(OS, ViewDepth + 1);
renderInstantiationView(OS, *NextISV, ViewDepth + 1);
RenderedSubView = true;
}
OpenPOWER on IntegriCloud