Skip to content

Commit df84566

Browse files
authored
Merge pull request #39170 from nkcsgexi/ignore-enum-case-decl-5.5
[5.5] ABIChecker: don't fail when hitting EnumCaseDecl
2 parents 06ef083 + ce2c322 commit df84566

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

lib/APIDigester/ModuleAnalyzerNodes.cpp

Lines changed: 9 additions & 2 deletions
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
}
@@ -2160,7 +2165,9 @@ static parseJsonEmit(SDKContext &Ctx, StringRef FileName) {
21602165

21612166
// Load the input file.
21622167
llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> FileBufOrErr =
2163-
vfs::getFileOrSTDIN(*Ctx.getSourceMgr().getFileSystem(), FileName);
2168+
vfs::getFileOrSTDIN(*Ctx.getSourceMgr().getFileSystem(), FileName,
2169+
/*FileSize*/-1, /*RequiresNullTerminator*/true,
2170+
/*IsVolatile*/false, /*RetryCount*/30);
21642171
if (!FileBufOrErr) {
21652172
llvm_unreachable("Failed to read JSON file");
21662173
}

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)