@@ -426,6 +426,43 @@ static bool protocolDescriptorHasRequirements(ProtocolDecl *proto) {
426
426
return false ;
427
427
}
428
428
429
+ #ifndef NDEBUG
430
+ static bool isValidProtocolMemberForTBDGen (const Decl *D) {
431
+ switch (D->getKind ()) {
432
+ case DeclKind::TypeAlias:
433
+ case DeclKind::AssociatedType:
434
+ case DeclKind::Var:
435
+ case DeclKind::Subscript:
436
+ case DeclKind::PatternBinding:
437
+ case DeclKind::Func:
438
+ case DeclKind::Accessor:
439
+ case DeclKind::Constructor:
440
+ case DeclKind::Destructor:
441
+ case DeclKind::IfConfig:
442
+ case DeclKind::PoundDiagnostic:
443
+ return true ;
444
+ case DeclKind::Enum:
445
+ case DeclKind::Struct:
446
+ case DeclKind::Class:
447
+ case DeclKind::Protocol:
448
+ case DeclKind::GenericTypeParam:
449
+ case DeclKind::Module:
450
+ case DeclKind::Param:
451
+ case DeclKind::EnumElement:
452
+ case DeclKind::Extension:
453
+ case DeclKind::TopLevelCode:
454
+ case DeclKind::Import:
455
+ case DeclKind::PrecedenceGroup:
456
+ case DeclKind::MissingMember:
457
+ case DeclKind::EnumCase:
458
+ case DeclKind::InfixOperator:
459
+ case DeclKind::PrefixOperator:
460
+ case DeclKind::PostfixOperator:
461
+ return false ;
462
+ }
463
+ }
464
+ #endif
465
+
429
466
void TBDGenVisitor::visitProtocolDecl (ProtocolDecl *PD) {
430
467
if (!PD->isObjC ()) {
431
468
addSymbol (LinkEntity::forProtocolDescriptor (PD));
@@ -480,11 +517,7 @@ void TBDGenVisitor::visitProtocolDecl(ProtocolDecl *PD) {
480
517
// (NB. anything within an active IfConfigDecls also appears outside). Let's
481
518
// assert this fact:
482
519
for (auto *member : PD->getMembers ()) {
483
- auto isExpectedKind =
484
- isa<TypeAliasDecl>(member) || isa<AssociatedTypeDecl>(member) ||
485
- isa<AbstractStorageDecl>(member) || isa<PatternBindingDecl>(member) ||
486
- isa<AbstractFunctionDecl>(member) || isa<IfConfigDecl>(member);
487
- assert (isExpectedKind &&
520
+ assert (isValidProtocolMemberForTBDGen (member) &&
488
521
" unexpected member of protocol during TBD generation" );
489
522
}
490
523
#endif
0 commit comments