forked from OSchip/llvm-project
clang-format: Don't add spaces in foreach macro definition.
Before clang-format would e.g. add a space into #define Q_FOREACH(x, y) which turns this into a non-function-like macro. Patch by Strager Neds, thank you! llvm-svn: 239513
This commit is contained in:
parent
e0e228a380
commit
229628b39e
|
@ -1122,7 +1122,10 @@ private:
|
|||
Column = FormatTok->LastLineColumnWidth;
|
||||
}
|
||||
|
||||
if (std::find(ForEachMacros.begin(), ForEachMacros.end(),
|
||||
if (!(Tokens.size() > 0 && Tokens.back()->Tok.getIdentifierInfo() &&
|
||||
Tokens.back()->Tok.getIdentifierInfo()->getPPKeywordID() ==
|
||||
tok::pp_define) &&
|
||||
std::find(ForEachMacros.begin(), ForEachMacros.end(),
|
||||
FormatTok->Tok.getIdentifierInfo()) != ForEachMacros.end())
|
||||
FormatTok->Type = TT_ForEachMacro;
|
||||
|
||||
|
|
|
@ -616,6 +616,18 @@ TEST_F(FormatTest, ForEachLoops) {
|
|||
" BOOST_FOREACH (Item *item, itemlist) {}\n"
|
||||
" UNKNOWN_FORACH(Item * item, itemlist) {}\n"
|
||||
"}");
|
||||
|
||||
// As function-like macros.
|
||||
verifyFormat("#define foreach(x, y)\n"
|
||||
"#define Q_FOREACH(x, y)\n"
|
||||
"#define BOOST_FOREACH(x, y)\n"
|
||||
"#define UNKNOWN_FOREACH(x, y)\n");
|
||||
|
||||
// Not as function-like macros.
|
||||
verifyFormat("#define foreach (x, y)\n"
|
||||
"#define Q_FOREACH (x, y)\n"
|
||||
"#define BOOST_FOREACH (x, y)\n"
|
||||
"#define UNKNOWN_FOREACH (x, y)\n");
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, FormatsWhileLoop) {
|
||||
|
|
Loading…
Reference in New Issue