Author: sammccall Date: Mon Jun 24 06:01:28 2019 New Revision: 364180 URL: http://llvm.org/viewvc/llvm-project?rev=364180&view=rev Log: [clangd] Improve SelectionTree string representation
Modified: clang-tools-extra/trunk/clangd/Selection.cpp Modified: clang-tools-extra/trunk/clangd/Selection.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/Selection.cpp?rev=364180&r1=364179&r2=364180&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/Selection.cpp (original) +++ clang-tools-extra/trunk/clangd/Selection.cpp Mon Jun 24 06:01:28 2019 @@ -246,7 +246,17 @@ void SelectionTree::print(llvm::raw_ostr : '.'); 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 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(); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits