[clang][Index] Visit the default parameter arguements in libindex.
Summary:
We are missing the default parmeter arguments when IndexFunctionLocals
is true.
Fixes https://github.com/clangd/clangd/issues/285.
Reviewers: kadircet
Subscribers: kristof.beyls, ilya-biryukov, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D74610
diff --git a/clang/unittests/Index/IndexTests.cpp b/clang/unittests/Index/IndexTests.cpp
index 068b30e..52744e1 100644
--- a/clang/unittests/Index/IndexTests.cpp
+++ b/clang/unittests/Index/IndexTests.cpp
@@ -319,6 +319,21 @@
WrittenAt(Position(4, 14)))));
}
+TEST(IndexTest, VisitDefaultArgs) {
+ std::string Code = R"cpp(
+ int var = 0;
+ void f(int s = var) {}
+ )cpp";
+ auto Index = std::make_shared<Indexer>();
+ IndexingOptions Opts;
+ Opts.IndexFunctionLocals = true;
+ Opts.IndexParametersInDeclarations = true;
+ tooling::runToolOnCode(std::make_unique<IndexAction>(Index, Opts), Code);
+ EXPECT_THAT(Index->Symbols,
+ Contains(AllOf(QName("var"), HasRole(SymbolRole::Reference),
+ WrittenAt(Position(3, 20)))));
+}
+
} // namespace
} // namespace index
} // namespace clang