Skip to content

Commit f83203f

Browse files
committed
[AST printer] Use getAllMembers() to eliminate nondeterminism.
Use getAllMembers() when printing members to get deterministic ordering. (cherry picked from commit 85cd87a)
1 parent a6ee248 commit f83203f

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

lib/AST/ASTPrinter.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ PrintOptions PrintOptions::printSwiftInterfaceFile(ModuleDecl *ModuleToPrint,
189189
localModule->isImportedImplementationOnly(nominalModule)) {
190190

191191
bool shouldPrintMembers = llvm::any_of(
192-
ED->getMembers(),
192+
ED->getAllMembers(),
193193
[&](const Decl *member) -> bool {
194194
return shouldPrint(member, options);
195195
});
@@ -1750,7 +1750,7 @@ bool ShouldPrintChecker::shouldPrint(const Decl *D,
17501750
getInheritedForPrinting(Ext, Options, ProtocolsToPrint);
17511751
if (ProtocolsToPrint.empty()) {
17521752
bool HasMemberToPrint = false;
1753-
for (auto Member : Ext->getMembers()) {
1753+
for (auto Member : Ext->getAllMembers()) {
17541754
if (shouldPrint(Member, Options)) {
17551755
HasMemberToPrint = true;
17561756
break;
@@ -2050,24 +2050,24 @@ void PrintAST::printMembersOfDecl(Decl *D, bool needComma,
20502050
bool openBracket,
20512051
bool closeBracket) {
20522052
llvm::SmallVector<Decl *, 3> Members;
2053-
auto AddDeclFunc = [&](DeclRange Range) {
2053+
auto AddDeclFunc = [&](ArrayRef<Decl *> Range) {
20542054
for (auto RD : Range)
20552055
Members.push_back(RD);
20562056
};
20572057

20582058
if (auto Ext = dyn_cast<ExtensionDecl>(D)) {
2059-
AddDeclFunc(Ext->getMembers());
2059+
AddDeclFunc(Ext->getAllMembers());
20602060
} else if (auto NTD = dyn_cast<NominalTypeDecl>(D)) {
2061-
AddDeclFunc(NTD->getMembers());
2061+
AddDeclFunc(NTD->getAllMembers());
20622062
for (auto Ext : NTD->getExtensions()) {
20632063
if (Options.printExtensionContentAsMembers(Ext))
2064-
AddDeclFunc(Ext->getMembers());
2064+
AddDeclFunc(Ext->getAllMembers());
20652065
}
20662066
if (Options.PrintExtensionFromConformingProtocols) {
20672067
for (auto Conf : NTD->getAllConformances()) {
20682068
for (auto Ext : Conf->getProtocol()->getExtensions()) {
20692069
if (Options.printExtensionContentAsMembers(Ext))
2070-
AddDeclFunc(Ext->getMembers());
2070+
AddDeclFunc(Ext->getAllMembers());
20712071
}
20722072
}
20732073
}

0 commit comments

Comments
 (0)