From e3b58660760830e774eff283f957ac5abb8a9b47 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Thu, 3 Apr 2014 23:53:01 -0700 Subject: Add the ability to control whether the pretty printer uses line breaks This change makes it possible to more reliably write unit tests which check that an expression is equivalent to an expected pretty printed string. --- lib/Expr/ExprPPrinter.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'lib/Expr/ExprPPrinter.cpp') diff --git a/lib/Expr/ExprPPrinter.cpp b/lib/Expr/ExprPPrinter.cpp index ac1d1d01..d58358b5 100644 --- a/lib/Expr/ExprPPrinter.cpp +++ b/lib/Expr/ExprPPrinter.cpp @@ -51,6 +51,7 @@ private: unsigned counter; unsigned updateCounter; bool hasScan; + bool forceNoLineBreaks; std::string newline; /// shouldPrintWidth - Predicate for whether this expression should @@ -307,10 +308,15 @@ public: newline = _newline; } + void setForceNoLineBreaks(bool _forceNoLineBreaks) { + forceNoLineBreaks = _forceNoLineBreaks; + } + void reset() { counter = 0; updateCounter = 0; hasScan = false; + forceNoLineBreaks = false; bindings.clear(); updateBindings.clear(); couldPrint.clear(); @@ -412,7 +418,7 @@ public: /* Public utility functions */ void printSeparator(PrintContext &PC, bool simple, unsigned indent) { - if (simple) { + if (simple || forceNoLineBreaks) { PC << ' '; } else { PC.breakLine(indent); -- cgit 1.4.1