Skip to content

Commit 2f3ec72

Browse files
authored
Merge pull request #27494 from compnerd/dump-gsb
AST: remove `dump` for GSB
2 parents ce531be + 85b6a05 commit 2f3ec72

File tree

1 file changed

+0
-152
lines changed

1 file changed

+0
-152
lines changed

lib/AST/GenericSignatureBuilder.cpp

Lines changed: 0 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -599,127 +599,6 @@ namespace {
599599
};
600600
}
601601

602-
namespace std {
603-
// FIXME: Egregious hack to work around a bogus static_assert in
604-
// llvm::GraphWriter. Good thing nobody else cares about this trait...
605-
template<>
606-
struct is_pointer<EquivalenceClassVizNode>
607-
: std::integral_constant<bool, true> { };
608-
}
609-
610-
namespace llvm {
611-
// Visualize the same-type constraints within an equivalence class.
612-
template<>
613-
struct GraphTraits<const EquivalenceClass *> {
614-
using NodeRef = EquivalenceClassVizNode;
615-
616-
static NodeRef getEntryNode(const EquivalenceClass *equivClass) {
617-
return { equivClass, equivClass->members.front()->getDependentType({ }) };
618-
}
619-
620-
class nodes_iterator {
621-
using BaseIterator = PotentialArchetype * const *;
622-
623-
const EquivalenceClass *equivClass;
624-
BaseIterator base;
625-
626-
public:
627-
using difference_type = ptrdiff_t;
628-
using value_type = EquivalenceClassVizNode;
629-
using reference = value_type;
630-
using pointer = value_type*;
631-
using iterator_category = std::forward_iterator_tag;
632-
633-
nodes_iterator(const EquivalenceClass *equivClass, BaseIterator base)
634-
: equivClass(equivClass), base(base) { }
635-
636-
BaseIterator &getBase() { return base; }
637-
const BaseIterator &getBase() const { return base; }
638-
639-
reference operator*() const {
640-
return { equivClass, (*getBase())->getDependentType({ }) };
641-
}
642-
643-
nodes_iterator& operator++() {
644-
++getBase();
645-
return *this;
646-
}
647-
648-
nodes_iterator operator++(int) {
649-
nodes_iterator result = *this;
650-
++(*this);
651-
return result;
652-
}
653-
654-
friend bool operator==(const nodes_iterator &lhs,
655-
const nodes_iterator &rhs) {
656-
return lhs.getBase() == rhs.getBase();
657-
}
658-
659-
friend bool operator!=(const nodes_iterator &lhs,
660-
const nodes_iterator &rhs) {
661-
return lhs.getBase() != rhs.getBase();
662-
}
663-
};
664-
665-
static nodes_iterator nodes_begin(const EquivalenceClass *equivClass) {
666-
return nodes_iterator(equivClass, equivClass->members.begin());
667-
}
668-
669-
static nodes_iterator nodes_end(const EquivalenceClass *equivClass) {
670-
return nodes_iterator(equivClass, equivClass->members.end());
671-
}
672-
673-
static unsigned size(const EquivalenceClass *equivClass) {
674-
return equivClass->members.size();
675-
}
676-
677-
using ChildIteratorType = EquivalenceClassVizIterator;
678-
679-
static ChildIteratorType child_begin(NodeRef node) {
680-
auto base = node.first->sameTypeConstraints.data();
681-
auto baseEnd = base + node.first->sameTypeConstraints.size();
682-
return ChildIteratorType(node, base, baseEnd);
683-
}
684-
685-
static ChildIteratorType child_end(NodeRef node) {
686-
auto base = node.first->sameTypeConstraints.data();
687-
auto baseEnd = base + node.first->sameTypeConstraints.size();
688-
return ChildIteratorType(node, baseEnd, baseEnd);
689-
}
690-
};
691-
692-
template <>
693-
struct DOTGraphTraits<const EquivalenceClass *>
694-
: public DefaultDOTGraphTraits
695-
{
696-
DOTGraphTraits(bool = false) { }
697-
698-
static std::string getGraphName(const EquivalenceClass *equivClass) {
699-
return "Equivalence class for '" +
700-
equivClass->members.front()->getDebugName() + "'";
701-
}
702-
703-
std::string getNodeLabel(EquivalenceClassVizNode node,
704-
const EquivalenceClass *equivClass) const {
705-
return node.second.getString();
706-
}
707-
708-
static std::string getEdgeAttributes(EquivalenceClassVizNode node,
709-
EquivalenceClassVizIterator iter,
710-
const EquivalenceClass *equivClass) {
711-
if (iter.getBase()->source->kind
712-
== RequirementSource::NestedTypeNameMatch)
713-
return "color=\"blue\"";
714-
715-
if (iter.getBase()->source->isDerivedRequirement())
716-
return "color=\"gray\"";
717-
718-
return "color=\"red\"";
719-
}
720-
};
721-
} // end namespace llvm
722-
723602
namespace {
724603
/// Retrieve the type described by the given unresolved tyoe.
725604
Type getUnresolvedType(GSBUnresolvedType type,
@@ -2370,37 +2249,6 @@ void EquivalenceClass::dump(llvm::raw_ostream &out,
23702249
rewriteRoot->dump(out);
23712250
}
23722251
}
2373-
2374-
{
2375-
out << "---GraphViz output for same-type constraints---\n";
2376-
2377-
// Render the output
2378-
std::string graphviz;
2379-
{
2380-
llvm::raw_string_ostream graphvizOut(graphviz);
2381-
llvm::WriteGraph(graphvizOut, this);
2382-
}
2383-
2384-
// Clean up the output to turn it into an undirected graph.
2385-
// FIXME: This is horrible, GraphWriter should be able to support
2386-
// undirected graphs.
2387-
auto digraphPos = graphviz.find("digraph");
2388-
if (digraphPos != std::string::npos) {
2389-
// digraph -> graph
2390-
graphviz.erase(graphviz.begin() + digraphPos,
2391-
graphviz.begin() + digraphPos + 2);
2392-
}
2393-
2394-
// Directed edges to undirected edges: -> to --
2395-
while (true) {
2396-
auto arrowPos = graphviz.find("->");
2397-
if (arrowPos == std::string::npos) break;
2398-
2399-
graphviz.replace(arrowPos, 2, "--");
2400-
}
2401-
2402-
out << graphviz;
2403-
}
24042252
}
24052253

24062254
void EquivalenceClass::dump(GenericSignatureBuilder *builder) const {

0 commit comments

Comments
 (0)