[PATCH] D39653: [clang-diff] Add utility functions, forbid copying Node
Johannes Altmanninger via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sun Nov 5 11:07:36 PST 2017
johannes created this revision.
Herald added a subscriber: klimek.
https://reviews.llvm.org/D39653
Files:
include/clang/Tooling/ASTDiff/ASTDiff.h
lib/Tooling/ASTDiff/ASTDiff.cpp
Index: lib/Tooling/ASTDiff/ASTDiff.cpp
===================================================================
--- lib/Tooling/ASTDiff/ASTDiff.cpp
+++ lib/Tooling/ASTDiff/ASTDiff.cpp
@@ -1119,14 +1119,23 @@
ASTUnit &SyntaxTree::getASTUnit() const { return TreeImpl->AST; }
+SourceManager &SyntaxTree::getSourceManager() const {
+ return TreeImpl->AST.getSourceManager();
+}
+
+const LangOptions &SyntaxTree::getLangOpts() const {
+ return TreeImpl->AST.getLangOpts();
+}
+
const ASTContext &SyntaxTree::getASTContext() const {
return TreeImpl->AST.getASTContext();
}
NodeRef SyntaxTree::getNode(NodeId Id) const { return TreeImpl->getNode(Id); }
int SyntaxTree::getSize() const { return TreeImpl->getSize(); }
NodeRef SyntaxTree::getRoot() const { return TreeImpl->getRoot(); }
+NodeId SyntaxTree::getRootId() const { return TreeImpl->getRootId(); }
SyntaxTree::PreorderIterator SyntaxTree::begin() const {
return TreeImpl->begin();
}
Index: include/clang/Tooling/ASTDiff/ASTDiff.h
===================================================================
--- include/clang/Tooling/ASTDiff/ASTDiff.h
+++ include/clang/Tooling/ASTDiff/ASTDiff.h
@@ -80,14 +80,18 @@
SyntaxTree(T *Node, ASTUnit &AST)
: TreeImpl(llvm::make_unique<Impl>(this, Node, AST)) {}
SyntaxTree(SyntaxTree &&Other) = default;
+ SyntaxTree &operator=(SyntaxTree &&Other) = default;
~SyntaxTree();
ASTUnit &getASTUnit() const;
const ASTContext &getASTContext() const;
+ SourceManager &getSourceManager() const;
+ const LangOptions &getLangOpts() const;
StringRef getFilename() const;
int getSize() const;
NodeRef getRoot() const;
+ NodeId getRootId() const;
using PreorderIterator = const Node *;
PreorderIterator begin() const;
PreorderIterator end() const;
@@ -113,6 +117,10 @@
SmallVector<NodeId, 4> Children;
ChangeKind Change = NoChange;
Node(SyntaxTree::Impl &Tree) : Tree(Tree), Children() {}
+ Node(NodeRef Other) = delete;
+ explicit Node(Node &&Other) = default;
+ Node &operator=(NodeRef Other) = delete;
+ Node &operator=(Node &&Other) = default;
NodeId getId() const;
SyntaxTree &getTree() const;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D39653.121643.patch
Type: text/x-patch
Size: 2161 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171105/83490913/attachment.bin>
More information about the cfe-commits
mailing list