[clangd] Change constness of parameters to findExplicitRefs
Summary:
Recursive AST requires non-const ast nodes, but it doesn't really
mutate them. In addition to that, in clangd we mostly have const ast nodes. So
it makes sense to move the const_cast into callee rather than having it at every
caller in the future.
Reviewers: ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D68027
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@372888 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/clangd/FindTarget.cpp b/clangd/FindTarget.cpp
index 4d69318..2dc8f27 100644
--- a/clangd/FindTarget.cpp
+++ b/clangd/FindTarget.cpp
@@ -616,15 +616,15 @@
};
} // namespace
-void findExplicitReferences(Stmt *S,
+void findExplicitReferences(const Stmt *S,
llvm::function_ref<void(ReferenceLoc)> Out) {
assert(S);
- ExplicitReferenceColletor(Out).TraverseStmt(S);
+ ExplicitReferenceColletor(Out).TraverseStmt(const_cast<Stmt *>(S));
}
-void findExplicitReferences(Decl *D,
+void findExplicitReferences(const Decl *D,
llvm::function_ref<void(ReferenceLoc)> Out) {
assert(D);
- ExplicitReferenceColletor(Out).TraverseDecl(D);
+ ExplicitReferenceColletor(Out).TraverseDecl(const_cast<Decl *>(D));
}
llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, DeclRelation R) {
diff --git a/clangd/FindTarget.h b/clangd/FindTarget.h
index 86f1e8b..80a8e787 100644
--- a/clangd/FindTarget.h
+++ b/clangd/FindTarget.h
@@ -101,9 +101,9 @@
/// qualifiers.
/// FIXME: currently this does not report references to overloaded operators.
/// FIXME: extend to report location information about declaration names too.
-void findExplicitReferences(Stmt *S,
+void findExplicitReferences(const Stmt *S,
llvm::function_ref<void(ReferenceLoc)> Out);
-void findExplicitReferences(Decl *D,
+void findExplicitReferences(const Decl *D,
llvm::function_ref<void(ReferenceLoc)> Out);
/// Similar to targetDecl(), however instead of applying a filter, all possible