Change do-while to repeat-while.

Change all uses of "do { ... } while <cond>" to use "repeat" instead.
Rename DoWhileStmt to RepeatWhileStmt. Add diagnostic suggesting change
of 'do' to 'repeat' if a condition is found afterwards.

<rdar://problem/20336424> rename do/while loops to repeat/while & introduce "repeat <count> {}" loops

Swift SVN r27650
This commit is contained in:
Chris Willmore
2015-04-23 22:48:31 +00:00
parent ab66ffabf7
commit c7c7388cf2
40 changed files with 177 additions and 111 deletions

View File

@@ -171,9 +171,9 @@ public:
TargetKindSetter TKS(BracePairs, BracePair::TargetKinds::Break);
return transformWhileStmt(llvm::cast<WhileStmt>(S));
}
case StmtKind::DoWhile: {
case StmtKind::RepeatWhile: {
TargetKindSetter TKS(BracePairs, BracePair::TargetKinds::Break);
return transformDoWhileStmt(llvm::cast<DoWhileStmt>(S));
return transformRepeatWhileStmt(llvm::cast<RepeatWhileStmt>(S));
}
case StmtKind::For: {
TargetKindSetter TKS(BracePairs, BracePair::TargetKinds::Break);
@@ -221,15 +221,15 @@ public:
return WS;
}
DoWhileStmt *transformDoWhileStmt(DoWhileStmt *DWS) {
if (Stmt *B = DWS->getBody()) {
RepeatWhileStmt *transformRepeatWhileStmt(RepeatWhileStmt *RWS) {
if (Stmt *B = RWS->getBody()) {
Stmt *NB = transformStmt(B);
if (NB != B) {
DWS->setBody(NB);
RWS->setBody(NB);
}
}
return DWS;
return RWS;
}
ForStmt *transformForStmt(ForStmt *FS) {