@@ -130,7 +130,7 @@ class Traversal : public ASTVisitor<Traversal, Expr*, Stmt*,
130
130
// Must check this first in case extensions have not been bound yet
131
131
if (Walker.shouldWalkIntoGenericParams ()) {
132
132
if (auto *params = GC->getParsedGenericParams ()) {
133
- visitGenericParamList (params);
133
+ doIt (params);
134
134
}
135
135
return true ;
136
136
}
@@ -252,7 +252,7 @@ class Traversal : public ASTVisitor<Traversal, Expr*, Stmt*,
252
252
253
253
bool visitOpaqueTypeDecl (OpaqueTypeDecl *OTD) {
254
254
if (Walker.shouldWalkIntoGenericParams () && OTD->getGenericParams ()) {
255
- if (visitGenericParamList (OTD->getGenericParams ()))
255
+ if (doIt (OTD->getGenericParams ()))
256
256
return true ;
257
257
}
258
258
return false ;
@@ -439,22 +439,6 @@ class Traversal : public ASTVisitor<Traversal, Expr*, Stmt*,
439
439
return false ;
440
440
}
441
441
442
- bool visitGenericParamList (GenericParamList *GPL) {
443
- // Visit generic params
444
- for (auto &P : GPL->getParams ()) {
445
- if (doIt (P))
446
- return true ;
447
- }
448
-
449
- // Visit param conformance
450
- for (auto Req : GPL->getRequirements ()) {
451
- if (doIt (Req))
452
- return true ;
453
- }
454
-
455
- return false ;
456
- }
457
-
458
442
// ===--------------------------------------------------------------------===//
459
443
// Exprs
460
444
// ===--------------------------------------------------------------------===//
@@ -1342,12 +1326,28 @@ class Traversal : public ASTVisitor<Traversal, Expr*, Stmt*,
1342
1326
return true ;
1343
1327
break ;
1344
1328
case RequirementReprKind::LayoutConstraint:
1345
- if (doIt (Req.getFirstTypeRepr ()))
1329
+ if (doIt (Req.getSubjectRepr ()))
1346
1330
return true ;
1347
1331
break ;
1348
1332
}
1349
1333
return false ;
1350
1334
}
1335
+
1336
+ bool doIt (GenericParamList *GPL) {
1337
+ // Visit generic params
1338
+ for (auto &P : GPL->getParams ()) {
1339
+ if (doIt (P))
1340
+ return true ;
1341
+ }
1342
+
1343
+ // Visit param conformance
1344
+ for (auto Req : GPL->getRequirements ()) {
1345
+ if (doIt (Req))
1346
+ return true ;
1347
+ }
1348
+
1349
+ return false ;
1350
+ }
1351
1351
};
1352
1352
1353
1353
} // end anonymous namespace
@@ -1877,3 +1877,7 @@ StmtConditionElement *StmtConditionElement::walk(ASTWalker &walker) {
1877
1877
bool Decl::walk (ASTWalker &walker) {
1878
1878
return Traversal (walker).doIt (this );
1879
1879
}
1880
+
1881
+ bool GenericParamList::walk (ASTWalker &walker) {
1882
+ return Traversal (walker).doIt (this );
1883
+ }
0 commit comments