Author: ibiryukov Date: Fri Oct 4 01:10:27 2019 New Revision: 373710 URL: http://llvm.org/viewvc/llvm-project?rev=373710&view=rev Log: [CodeComplete] Ensure object is the same in compareOverloads()
Summary: This fixes a regression that led to size() not being available in clangd when completing 'deque().^' and using libc++. Reviewers: sammccall Reviewed By: sammccall Subscribers: jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68335 Modified: clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp Modified: clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp?rev=373710&r1=373709&r2=373710&view=diff ============================================================================== --- clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp (original) +++ clang-tools-extra/trunk/clangd/unittests/CodeCompleteTests.cpp Fri Oct 4 01:10:27 2019 @@ -2546,6 +2546,25 @@ TEST(CompletionTest, NamespaceDoubleInse UnorderedElementsAre(AllOf(Qualifier(""), Named("ABCDE")))); } +TEST(CompletionTest, DerivedMethodsAreAlwaysVisible) { + // Despite the fact that base method matches the ref-qualifier better, + // completion results should only include the derived method. + auto Completions = completions(R"cpp( + struct deque_base { + float size(); + double size() const; + }; + struct deque : deque_base { + int size() const; + }; + + auto x = deque().^ + )cpp") + .Completions; + EXPECT_THAT(Completions, + ElementsAre(AllOf(ReturnType("int"), Named("size")))); +} + TEST(NoCompileCompletionTest, Basic) { auto Results = completionsNoCompile(R"cpp( void func() { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits