summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/Support/ScopedPrinter.h29
1 files changed, 11 insertions, 18 deletions
diff --git a/llvm/include/llvm/Support/ScopedPrinter.h b/llvm/include/llvm/Support/ScopedPrinter.h
index 44a196d17b3..f3cf573b4b2 100644
--- a/llvm/include/llvm/Support/ScopedPrinter.h
+++ b/llvm/include/llvm/Support/ScopedPrinter.h
@@ -302,33 +302,26 @@ ScopedPrinter::printHex<support::ulittle16_t>(StringRef Label,
startLine() << Label << ": " << hex(Value) << "\n";
}
-struct DictScope {
- DictScope(ScopedPrinter &W, StringRef N) : W(W) {
- W.startLine() << N << " {\n";
+template<char Open, char Close>
+struct DelimitedScope {
+ DelimitedScope(ScopedPrinter &W, StringRef N) : W(W) {
+ W.startLine() << N;
+ if (!N.empty())
+ W.getOStream() << ' ';
+ W.getOStream() << Open << '\n';
W.indent();
}
- ~DictScope() {
+ ~DelimitedScope() {
W.unindent();
- W.startLine() << "}\n";
+ W.startLine() << Close << '\n';
}
ScopedPrinter &W;
};
-struct ListScope {
- ListScope(ScopedPrinter &W, StringRef N) : W(W) {
- W.startLine() << N << " [\n";
- W.indent();
- }
-
- ~ListScope() {
- W.unindent();
- W.startLine() << "]\n";
- }
-
- ScopedPrinter &W;
-};
+using DictScope = DelimitedScope<'{', '}'>;
+using ListScope = DelimitedScope<'[', ']'>;
} // namespace llvm
OpenPOWER on IntegriCloud