Revert "[clangd] Copy existing includes in ReplayPreamble"

This reverts commit bff0c56ff9. I've
pushed the earlier version of the patch by mistake.
This commit is contained in:
Kadir Cetinkaya 2020-06-02 14:30:52 +02:00
parent dd3ebe223e
commit a0f13b3374
No known key found for this signature in database
GPG Key ID: E39E36B8D2057ED6
2 changed files with 3 additions and 24 deletions

View File

@ -136,8 +136,7 @@ private:
ReplayPreamble(const IncludeStructure &Includes, PPCallbacks *Delegate,
const SourceManager &SM, Preprocessor &PP,
const LangOptions &LangOpts, const PreambleBounds &PB)
: IncludesToReplay(Includes.MainFileIncludes), Delegate(Delegate), SM(SM),
PP(PP) {
: Includes(Includes), Delegate(Delegate), SM(SM), PP(PP) {
// Only tokenize the preamble section of the main file, as we are not
// interested in the rest of the tokens.
MainFileTokens = syntax::tokenize(
@ -168,7 +167,7 @@ private:
}
void replay() {
for (const auto &Inc : IncludesToReplay) {
for (const auto &Inc : Includes.MainFileIncludes) {
const FileEntry *File = nullptr;
if (Inc.Resolved != "")
if (auto FE = SM.getFileManager().getFile(Inc.Resolved))
@ -228,7 +227,7 @@ private:
}
}
std::vector<Inclusion> IncludesToReplay;
const IncludeStructure &Includes;
PPCallbacks *Delegate;
const SourceManager &SM;
Preprocessor &PP;

View File

@ -328,8 +328,6 @@ TEST(ParsedASTTest, CollectsMainFileMacroExpansions) {
testing::UnorderedElementsAreArray(TestCase.points()));
}
MATCHER_P(WithFileName, Inc, "") { return arg.FileName == Inc; }
TEST(ParsedASTTest, ReplayPreambleForTidyCheckers) {
struct Inclusion {
Inclusion(const SourceManager &SM, SourceLocation HashLoc,
@ -441,24 +439,6 @@ TEST(ParsedASTTest, ReplayPreambleForTidyCheckers) {
Code.substr(FileRange.Begin - 1, FileRange.End - FileRange.Begin + 2));
EXPECT_EQ(SkippedFiles[I].kind(), tok::header_name);
}
// Make sure replay logic works with patched preambles.
TU.Code = "";
StoreDiags Diags;
auto Inputs = TU.inputs();
auto CI = buildCompilerInvocation(Inputs, Diags);
auto EmptyPreamble =
buildPreamble(testPath(TU.Filename), *CI, Inputs, true, nullptr);
ASSERT_TRUE(EmptyPreamble);
TU.Code = "#include <a.h>";
Includes.clear();
auto PatchedAST = ParsedAST::build(testPath(TU.Filename), TU.inputs(),
std::move(CI), {}, EmptyPreamble);
ASSERT_TRUE(PatchedAST);
// Make sure includes were seen only once.
EXPECT_THAT(Includes,
ElementsAre(WithFileName(testPath("__preamble_patch__.h")),
WithFileName("a.h")));
}
TEST(ParsedASTTest, PatchesAdditionalIncludes) {