@@ -1255,13 +1255,19 @@ namespace {
12551255
12561256 // / Print a substitution map as a child node.
12571257 void printRec (SubstitutionMap map, Label label) {
1258+ printRec (map, SubstitutionMap::DumpStyle::Full, label);
1259+ }
1260+
1261+ // / Print a substitution map as a child node.
1262+ void printRec (SubstitutionMap map, SubstitutionMap::DumpStyle style,
1263+ Label label) {
12581264 SmallPtrSet<const ProtocolConformance *, 4 > Dumped;
1259- printRec (map, Dumped, label);
1265+ printRec (map, style, Dumped, label);
12601266 }
12611267
12621268 // / Print a substitution map as a child node.
1263- void printRec (SubstitutionMap map, VisitedConformances &visited ,
1264- Label label);
1269+ void printRec (SubstitutionMap map, SubstitutionMap::DumpStyle style ,
1270+ VisitedConformances &visited, Label label);
12651271
12661272 // / Print a substitution map as a child node.
12671273 void printRec (const ProtocolConformanceRef &conf,
@@ -5807,7 +5813,8 @@ class PrintConformance : public PrintBase {
58075813 if (!shouldPrintDetails)
58085814 break ;
58095815
5810- printRec (conf->getSubstitutionMap (), visited,
5816+ printRec (conf->getSubstitutionMap (),
5817+ SubstitutionMap::DumpStyle::Full, visited,
58115818 Label::optional (" substitutions" ));
58125819 if (auto condReqs = conf->getConditionalRequirementsIfAvailableOrCached (/* computeIfPossible=*/ false )) {
58135820 printList (*condReqs, [&](auto subReq, Label label) {
@@ -5906,7 +5913,7 @@ class PrintConformance : public PrintBase {
59065913
59075914 // A minimal dump doesn't need the details about the conformances, a lot of
59085915 // that info can be inferred from the signature.
5909- if (style == SubstitutionMap::DumpStyle::Minimal )
5916+ if (style != SubstitutionMap::DumpStyle::Full )
59105917 return ;
59115918
59125919 auto conformances = map.getConformances ();
@@ -5925,13 +5932,12 @@ class PrintConformance : public PrintBase {
59255932 }
59265933};
59275934
5928- void PrintBase::printRec (SubstitutionMap map, VisitedConformances &visited ,
5929- Label label) {
5935+ void PrintBase::printRec (SubstitutionMap map, SubstitutionMap::DumpStyle style ,
5936+ VisitedConformances &visited, Label label) {
59305937 printRecArbitrary (
59315938 [&](Label label) {
59325939 PrintConformance (Writer, MemberLoading)
5933- .visitSubstitutionMap (map, SubstitutionMap::DumpStyle::Full,
5934- visited, label);
5940+ .visitSubstitutionMap (map, style, visited, label);
59355941 },
59365942 label);
59375943}
@@ -6354,7 +6360,9 @@ namespace {
63546360
63556361 printArchetypeCommonRec (T);
63566362 if (!T->getSubstitutions ().empty ()) {
6357- printRec (T->getSubstitutions (), Label::optional (" substitutions" ));
6363+ printRec (T->getSubstitutions (),
6364+ SubstitutionMap::DumpStyle::NoConformances,
6365+ Label::optional (" substitutions" ));
63586366 }
63596367
63606368 printFoot ();
0 commit comments