Skip to content

Commit 3b82994

Browse files
committed
Uniformly iterate over the pattern binding entry indices
Clarify a bunch of C-style for loops and remove a ton of references to getPatternList().
1 parent 56b6e53 commit 3b82994

20 files changed

+31
-31
lines changed

include/swift/AST/Decl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2212,7 +2212,7 @@ class PatternBindingDecl final : public Decl,
22122212
/// Determines whether this binding either has an initializer expression, or is
22132213
/// default initialized, without performing any type checking on it.
22142214
bool isDefaultInitializable() const {
2215-
for (unsigned i = 0, e = getNumPatternEntries(); i < e; ++i)
2215+
for (unsigned i : range(getNumPatternEntries()))
22162216
if (!isDefaultInitializable(i))
22172217
return false;
22182218

lib/AST/ASTDumper.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -895,7 +895,7 @@ namespace {
895895
void visitPatternBindingDecl(PatternBindingDecl *PBD) {
896896
printCommon(PBD, "pattern_binding_decl");
897897

898-
for (auto idx : indices(PBD->getPatternList())) {
898+
for (auto idx : range(PBD->getNumPatternEntries())) {
899899
OS << '\n';
900900
printRec(PBD->getPattern(idx));
901901
if (PBD->getOriginalInit(idx)) {

lib/AST/ASTMangler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1606,7 +1606,7 @@ namespace {
16061606
/// least one name, which is probably a reasonable assumption but may
16071607
/// not be adequately enforced.
16081608
static Optional<VarDecl*> findFirstVariable(PatternBindingDecl *binding) {
1609-
for (auto idx : indices(binding->getPatternList())) {
1609+
for (auto idx : range(binding->getNumPatternEntries())) {
16101610
auto var = FindFirstVariable().visit(binding->getPattern(idx));
16111611
if (var) return var;
16121612
}

lib/AST/ASTPrinter.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1665,7 +1665,7 @@ bool ShouldPrintChecker::shouldPrint(const Decl *D,
16651665
// attributes can only be retrieved from the inside VarDecls.
16661666
if (auto *PD = dyn_cast<PatternBindingDecl>(D)) {
16671667
auto ShouldPrint = false;
1668-
for (auto idx : indices(PD->getPatternList())) {
1668+
for (auto idx : range(PD->getNumPatternEntries())) {
16691669
ShouldPrint |= shouldPrint(PD->getPattern(idx), Options);
16701670
if (ShouldPrint)
16711671
return true;
@@ -2162,7 +2162,7 @@ void PrintAST::visitPatternBindingDecl(PatternBindingDecl *decl) {
21622162
// variables are immutable, and if so, we print as 'let'. This allows us to
21632163
// handle the 'let x = 4' case properly at least.
21642164
const VarDecl *anyVar = nullptr;
2165-
for (auto idx : indices(decl->getPatternList())) {
2165+
for (auto idx : range(decl->getNumPatternEntries())) {
21662166
decl->getPattern(idx)->forEachVariable([&](VarDecl *V) {
21672167
anyVar = V;
21682168
});
@@ -2190,7 +2190,7 @@ void PrintAST::visitPatternBindingDecl(PatternBindingDecl *decl) {
21902190
}
21912191

21922192
bool isFirst = true;
2193-
for (auto idx : indices(decl->getPatternList())) {
2193+
for (auto idx : range(decl->getNumPatternEntries())) {
21942194
auto *pattern = decl->getPattern(idx);
21952195
if (!shouldPrintPattern(pattern))
21962196
continue;

lib/AST/ASTScopeCreation.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -920,7 +920,7 @@ class NodeAdder
920920
isInTypeDecl ? DeclVisibilityKind::MemberOfCurrentNominal
921921
: DeclVisibilityKind::LocalVariable;
922922
auto *insertionPoint = parentScope;
923-
for (auto i : indices(patternBinding->getPatternList())) {
923+
for (auto i : range(patternBinding->getNumPatternEntries())) {
924924
// TODO: Won't need to do so much work to avoid creating one without
925925
// a SourceRange once parser is fixed to not create two
926926
// PatternBindingDecls with same locaiton and getSourceRangeOfThisASTNode
@@ -2054,7 +2054,7 @@ class LocalizableDeclContextCollector : public ASTWalker {
20542054
}
20552055

20562056
void recordInitializers(PatternBindingDecl *pbd) {
2057-
for (auto idx : indices(pbd->getPatternList()))
2057+
for (auto idx : range(pbd->getNumPatternEntries()))
20582058
record(pbd->getInitContext(idx));
20592059
}
20602060

lib/AST/ASTVerifier.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2357,7 +2357,7 @@ class Verifier : public ASTWalker {
23572357

23582358
void verifyChecked(PatternBindingDecl *binding) {
23592359
// Look at all of the VarDecls being bound.
2360-
for (auto idx : indices(binding->getPatternList()))
2360+
for (auto idx : range(binding->getNumPatternEntries()))
23612361
if (auto *P = binding->getPattern(idx))
23622362
P->forEachVariable([&](VarDecl *VD) {
23632363
// ParamDecls never get PBD's.

lib/AST/ASTWalker.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ class Traversal : public ASTVisitor<Traversal, Expr*, Stmt*,
171171
singleVar->getOriginalWrappedProperty() != nullptr;
172172
}
173173

174-
for (auto idx : indices(PBD->getPatternList())) {
174+
for (auto idx : range(PBD->getNumPatternEntries())) {
175175
if (Pattern *Pat = doIt(PBD->getPattern(idx)))
176176
PBD->setPattern(idx, Pat, PBD->getInitContext(idx));
177177
else

lib/AST/Decl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ SourceRange Decl::getSourceRangeIncludingAttrs() const {
459459

460460
// Attributes on PatternBindingDecls are attached to VarDecls in AST.
461461
if (auto *PBD = dyn_cast<PatternBindingDecl>(this)) {
462-
for (auto i : indices(PBD->getPatternList()))
462+
for (auto i : range(PBD->getNumPatternEntries()))
463463
PBD->getPattern(i)->forEachVariable([&](VarDecl *VD) {
464464
for (auto Attr : VD->getAttrs())
465465
if (Attr->getRange().isValid())

lib/IDE/ExprContextAnalysis.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ class ExprContextAnalyzer {
686686
switch (D->getKind()) {
687687
case DeclKind::PatternBinding: {
688688
auto PBD = cast<PatternBindingDecl>(D);
689-
for (unsigned I = 0; I < PBD->getNumPatternEntries(); ++I) {
689+
for (unsigned I : range(PBD->getNumPatternEntries())) {
690690
if (auto Init = PBD->getInit(I)) {
691691
if (containsTarget(Init)) {
692692
if (PBD->getPattern(I)->hasType()) {

lib/SILGen/SILGen.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,7 @@ static bool requiresIVarInitialization(SILGenModule &SGM, ClassDecl *cd) {
930930
auto pbd = dyn_cast<PatternBindingDecl>(member);
931931
if (!pbd) continue;
932932

933-
for (auto i : indices(pbd->getPatternList()))
933+
for (auto i : range(pbd->getNumPatternEntries()))
934934
if (pbd->getExecutableInit(i))
935935
return true;
936936
}
@@ -1304,7 +1304,7 @@ void SILGenModule::emitObjCDestructorThunk(DestructorDecl *destructor) {
13041304

13051305
void SILGenModule::visitPatternBindingDecl(PatternBindingDecl *pd) {
13061306
assert(!TopLevelSGF && "script mode PBDs should be in TopLevelCodeDecls");
1307-
for (unsigned i = 0, e = pd->getNumPatternEntries(); i != e; ++i)
1307+
for (auto i : range(pd->getNumPatternEntries()))
13081308
if (pd->getExecutableInit(i))
13091309
emitGlobalInitialization(pd, i);
13101310
}

0 commit comments

Comments
 (0)