From: Daniel Jasper Date: Tue, 15 Apr 2014 08:28:06 +0000 (+0000) Subject: clang-format: Early cut-off for inlining nested blocks. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3726781ffda25473708808dcb2f6fa9dce70079e;p=clang 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206260 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 2be21407f0..528e135610 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -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,