From 0b77d03d80d609cdb6f3724eeeb7268ee2ca4700 Mon Sep 17 00:00:00 2001 From: Kadir Cetinkaya Date: Mon, 10 Sep 2018 14:22:42 +0000 Subject: [PATCH] [clangd] Add unittests for D51038 Reviewers: ilya-biryukov, ioeric, hokein Reviewed By: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, cfe-commits Differential Revision: https://reviews.llvm.org/D51039 llvm-svn: 341830 --- .../unittests/clangd/CodeCompleteTests.cpp | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp index 7e7fde7..c101003 100644 --- a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp +++ b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp @@ -1917,6 +1917,56 @@ TEST(CompletionTest, DeprecatedResults) { AllOf(Named("TestClangc"), Deprecated()))); } +TEST(SignatureHelpTest, InsideArgument) { + { + const auto Results = signatures(R"cpp( + void foo(int x); + void foo(int x, int y); + int main() { foo(1+^); } + )cpp"); + EXPECT_THAT( + Results.signatures, + ElementsAre(Sig("foo(int x) -> void", {"int x"}), + Sig("foo(int x, int y) -> void", {"int x", "int y"}))); + EXPECT_EQ(0, Results.activeParameter); + } + { + const auto Results = signatures(R"cpp( + void foo(int x); + void foo(int x, int y); + int main() { foo(1^); } + )cpp"); + EXPECT_THAT( + Results.signatures, + ElementsAre(Sig("foo(int x) -> void", {"int x"}), + Sig("foo(int x, int y) -> void", {"int x", "int y"}))); + EXPECT_EQ(0, Results.activeParameter); + } + { + const auto Results = signatures(R"cpp( + void foo(int x); + void foo(int x, int y); + int main() { foo(1^0); } + )cpp"); + EXPECT_THAT( + Results.signatures, + ElementsAre(Sig("foo(int x) -> void", {"int x"}), + Sig("foo(int x, int y) -> void", {"int x", "int y"}))); + EXPECT_EQ(0, Results.activeParameter); + } + { + const auto Results = signatures(R"cpp( + void foo(int x); + void foo(int x, int y); + int bar(int x, int y); + int main() { bar(foo(2, 3^)); } + )cpp"); + EXPECT_THAT(Results.signatures, ElementsAre(Sig("foo(int x, int y) -> void", + {"int x", "int y"}))); + EXPECT_EQ(1, Results.activeParameter); + } +} + } // namespace } // namespace clangd } // namespace clang -- 2.7.4