diff options
author | Vedant Kumar <vsk@apple.com> | 2016-06-26 02:45:13 +0000 |
---|---|---|
committer | Vedant Kumar <vsk@apple.com> | 2016-06-26 02:45:13 +0000 |
commit | 861a19c294e257e9be59c814298016e2d3b7a842 (patch) | |
tree | 6239e6ffdaa93f1d1df648d79f41c8f38c8b3dde /llvm/tools/llvm-cov/SourceCoverageView.cpp | |
parent | 9a2e979b3d9fdcf119cff567d87d1bea6ba5f46f (diff) | |
download | bcm5719-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.cpp | 18 |
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; } |