clang-format: Early cut-off for inlining nested blocks.

Specifically, for a nested block or lambda, don't try to put the single
statement body inline, if it exceeds the column limit.

This should not change any observable behavior (as those would never
have led to the 'best' solution), but significantly speeds up formatting
time.

This fixes llvm.org/PR18761. Formatting time goes down from ~100s to a
few ms.

llvm-svn: 206260
This commit is contained in:
Daniel Jasper 2014-04-15 08:28:06 +00:00
parent 553283e57d
commit 98583d522f
1 changed files with 7 additions and 0 deletions

View File

@ -1139,6 +1139,13 @@ private:
if (Previous.Children[0]->Last->isTrailingComment())
return false;
// If the child line exceeds the column limit, we wouldn't want to merge it.
// We add +2 for the trailing " }".
if (Style.ColumnLimit > 0 &&
Previous.Children[0]->Last->TotalLength + State.Column + 2 >
Style.ColumnLimit)
return false;
if (!DryRun) {
Whitespaces->replaceWhitespace(
*Previous.Children[0]->First,