Skip to content

Commit dd32711

Browse files
authored
Merge pull request #39167 from nkcsgexi/handle-EnumCaseDecl-abi
ABIChecker: don't fail when hitting EnumCaseDecl
2 parents e4e2cdd + a8b95cb commit dd32711

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

lib/APIDigester/ModuleAnalyzerNodes.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1797,12 +1797,17 @@ SwiftDeclCollector::addMembersToRoot(SDKNode *Root, IterableDeclContext *Context
17971797
Root->addChild(constructSubscriptDeclNode(SD));
17981798
} else if (isa<PatternBindingDecl>(Member)) {
17991799
// All containing variables should have been handled.
1800+
} else if (isa<EnumCaseDecl>(Member)) {
1801+
// All containing variables should have been handled.
1802+
} else if (isa<IfConfigDecl>(Member)) {
1803+
// All containing members should have been handled.
18001804
} else if (isa<DestructorDecl>(Member)) {
18011805
// deinit has no impact.
18021806
} else if (isa<MissingMemberDecl>(Member)) {
18031807
// avoid adding MissingMemberDecl
18041808
} else {
1805-
llvm_unreachable("unhandled member decl kind.");
1809+
llvm::errs() << "Unhandled decl:\n";
1810+
Member->dump(llvm::errs());
18061811
}
18071812
}
18081813
}

test/ModuleInterface/emit-abi-descriptor.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// RUN: %empty-directory(%t/Foo.swiftmodule)
33
// RUN: %empty-directory(%t/ResourceDir/%target-sdk-name/prebuilt-modules/Foo.swiftmodule)
44
// RUN: echo "public func foo() {}" > %t/Foo.swift
5+
// RUN: echo "public enum DisplayStyle { case tuple, optional, collection }" > %t/Foo.swift
56

67
// RUN: %target-swift-frontend -emit-module %t/Foo.swift -module-name Foo -emit-module-interface-path %t/Foo.swiftinterface
78
// RUN: %target-swift-frontend -compile-module-from-interface %t/Foo.swiftinterface -o %t/Foo.swiftmodule -module-name Foo -emit-abi-descriptor-path %t/Foo.json

0 commit comments

Comments
 (0)