[PATCH] Fixes bug 19983 - SBPO_Always not covering all the cases
Roman Kashitsyn
romankashicin at gmail.com
Tue Aug 5 00:35:30 PDT 2014
Hi djasper,
http://llvm.org/bugs/show_bug.cgi?id=19983
clang-format: Add a space between function template explicit template arguments
and left parenthesis if SPBO_Always option is set.
Before:
```
auto i = std::make_unique<int>(5);
```
After:
```
auto i = std::make_unique<int> (5);
```
http://reviews.llvm.org/D4788
Files:
lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp
Index: lib/Format/TokenAnnotator.cpp
===================================================================
--- lib/Format/TokenAnnotator.cpp
+++ lib/Format/TokenAnnotator.cpp
@@ -1625,7 +1625,7 @@
Tok.Previous->Type == TT_ConditionalExpr)
return true;
if (Tok.Previous->Type == TT_TemplateCloser && Tok.is(tok::l_paren))
- return false;
+ return Style.SpaceBeforeParens == FormatStyle::SBPO_Always;
if (Tok.is(tok::less) && Tok.Previous->isNot(tok::l_paren) &&
Line.First->is(tok::hash))
return true;
Index: unittests/Format/FormatTest.cpp
===================================================================
--- unittests/Format/FormatTest.cpp
+++ unittests/Format/FormatTest.cpp
@@ -7528,6 +7528,7 @@
"default:\n"
" break;\n"
"}", NoSpace);
+ verifyFormat("auto i = std::make_unique<int>(5);", NoSpace);
FormatStyle Space = getLLVMStyle();
Space.SpaceBeforeParens = FormatStyle::SBPO_Always;
@@ -7564,6 +7565,7 @@
verifyFormat("#if defined(x)\n"
"#endif",
Space);
+ verifyFormat("auto i = std::make_unique<int> (5);", Space);
}
TEST_F(FormatTest, ConfigurableSpacesInParentheses) {
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4788.12188.patch
Type: text/x-patch
Size: 1215 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140805/39f9a839/attachment.bin>
More information about the cfe-commits
mailing list