forked from OSchip/llvm-project
[clangd] Improve SelectionTree string representation
llvm-svn: 364180
This commit is contained in:
parent
69144a925e
commit
ca89eb5f9c
|
@ -246,7 +246,17 @@ void SelectionTree::print(llvm::raw_ostream &OS, const SelectionTree::Node &N,
|
|||
: '.');
|
||||
else
|
||||
OS.indent(Indent);
|
||||
OS << N.ASTNode.getNodeKind().asStringRef() << " ";
|
||||
if (const TypeLoc *TL = N.ASTNode.get<TypeLoc>()) {
|
||||
// TypeLoc is a hierarchy, but has only a single ASTNodeKind.
|
||||
// Synthesize the name from the Type subclass (except for QualifiedTypeLoc).
|
||||
if (TL->getTypeLocClass() == TypeLoc::Qualified)
|
||||
OS << "QualifiedTypeLoc";
|
||||
else
|
||||
OS << TL->getType()->getTypeClassName() << "TypeLoc";
|
||||
} else {
|
||||
OS << N.ASTNode.getNodeKind().asStringRef();
|
||||
}
|
||||
OS << " ";
|
||||
N.ASTNode.print(OS, PrintPolicy);
|
||||
OS << "\n";
|
||||
for (const Node *Child : N.Children)
|
||||
|
@ -280,6 +290,7 @@ SelectionTree::SelectionTree(ASTContext &AST, unsigned Begin, unsigned End)
|
|||
if (Begin == End)
|
||||
std::tie(Begin, End) = pointBounds(Begin, FID, AST);
|
||||
PrintPolicy.TerseOutput = true;
|
||||
PrintPolicy.IncludeNewlines = false;
|
||||
|
||||
Nodes = SelectionVisitor::collect(AST, Begin, End, FID);
|
||||
Root = Nodes.empty() ? nullptr : &Nodes.front();
|
||||
|
|
Loading…
Reference in New Issue