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