Fixed a bug whereby a parethesized collection expression was not being rewritten correctly.
llvm-svn: 45776
diff --git a/clang/Driver/RewriteTest.cpp b/clang/Driver/RewriteTest.cpp
index ee2f8ef..1ba0af5 100644
--- a/clang/Driver/RewriteTest.cpp
+++ b/clang/Driver/RewriteTest.cpp
@@ -854,7 +854,7 @@
// Replace ')' in for '(' type elem in collection ')' with ';'
SourceLocation endCollectionLoc = S->getCollection()->getLocEnd();
const char *endCollectionBuf = SM->getCharacterData(endCollectionLoc);
- const char *lparenBuf = strchr(endCollectionBuf, ')');
+ const char *lparenBuf = strchr(endCollectionBuf+1, ')');
SourceLocation lparenLoc = startLoc.getFileLocWithOffset(lparenBuf-startBuf);
buf = ";\n\t";
diff --git a/clang/test/Sema/rewrite-foreach-1.m b/clang/test/Sema/rewrite-foreach-1.m
index 71e3fbd..5962f33 100644
--- a/clang/test/Sema/rewrite-foreach-1.m
+++ b/clang/test/Sema/rewrite-foreach-1.m
@@ -24,6 +24,14 @@
{ LOOP(); }
for (id el1 in self)
LOOP();
+
+ for (el in (self))
+ if (el)
+ LOOP();
+
+ for (el in ((self)))
+ if (el)
+ LOOP();
}
@end