diff options
| author | Sam McCall <sam.mccall@gmail.com> | 2019-05-02 16:12:36 +0000 |
|---|---|---|
| committer | Sam McCall <sam.mccall@gmail.com> | 2019-05-02 16:12:36 +0000 |
| commit | 1b29dec05f3cc005d66be9633a85e1fce0883c38 (patch) | |
| tree | d0693854709120ef409eb33ad357a637b7171aad /clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp | |
| parent | 26e095e84f0d0348fe27ef13f49fd09440c99a13 (diff) | |
| download | bcm5719-llvm-1b29dec05f3cc005d66be9633a85e1fce0883c38.tar.gz bcm5719-llvm-1b29dec05f3cc005d66be9633a85e1fce0883c38.zip | |
Reapply r359778: [clangd] Fix code completion of macros defined in the preamble region of the main file.
The bad assert has been removed, and updateOutOfDateIdentifier has been guarded.
This reverts commit r359796.
llvm-svn: 359799
Diffstat (limited to 'clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp')
| -rw-r--r-- | clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp index 97f9124e714..c0ec8dd1a37 100644 --- a/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp +++ b/clang-tools-extra/clangd/unittests/CodeCompleteTests.cpp @@ -2073,19 +2073,28 @@ TEST(CompletionTest, MergeMacrosFromIndexAndSema) { UnorderedElementsAre(Named("Clangd_Macro_Test"))); } -TEST(CompletionTest, NoMacroFromPreambleIfIndexIsSet) { +TEST(CompletionTest, MacroFromPreamble) { + MockFSProvider FS; + MockCompilationDatabase CDB; + std::string FooHeader = testPath("foo.h"); + FS.Files[FooHeader] = "#define CLANGD_PREAMBLE_HEADER x\n"; + IgnoreDiagnostics DiagConsumer; + ClangdServer Server(CDB, FS, DiagConsumer, ClangdServer::optsForTest()); auto Results = completions( - R"cpp(#define CLANGD_PREAMBLE x + R"cpp(#include "foo.h" + #define CLANGD_PREAMBLE_MAIN x int x = 0; #define CLANGD_MAIN x void f() { CLANGD_^ } )cpp", {func("CLANGD_INDEX")}); - // Index is overriden in code completion options, so the preamble symbol is - // not seen. - EXPECT_THAT(Results.Completions, UnorderedElementsAre(Named("CLANGD_MAIN"), - Named("CLANGD_INDEX"))); + // We should get results from the main file, including the preamble section. + // However no results from included files (the index should cover them). + EXPECT_THAT(Results.Completions, + UnorderedElementsAre(Named("CLANGD_PREAMBLE_MAIN"), + Named("CLANGD_MAIN"), + Named("CLANGD_INDEX"))); } TEST(CompletionTest, DeprecatedResults) { |

