[clang-tools-extra] ad2da05 - [clangd] Get rid of move semantics to unbreak windows build bots
Kadir Cetinkaya via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 30 07:44:06 PDT 2020
Author: Kadir Cetinkaya
Date: 2020-04-30T16:43:50+02:00
New Revision: ad2da0521a66281be36a9adf54a8ea4293fe27cb
URL: https://github.com/llvm/llvm-project/commit/ad2da0521a66281be36a9adf54a8ea4293fe27cb
DIFF: https://github.com/llvm/llvm-project/commit/ad2da0521a66281be36a9adf54a8ea4293fe27cb.diff
LOG: [clangd] Get rid of move semantics to unbreak windows build bots
Added:
Modified:
clang-tools-extra/clangd/index/Background.cpp
clang-tools-extra/clangd/index/FileIndex.cpp
clang-tools-extra/clangd/unittests/FileIndexTests.cpp
Removed:
################################################################################
diff --git a/clang-tools-extra/clangd/index/Background.cpp b/clang-tools-extra/clangd/index/Background.cpp
index 9880c6b4ab2a..cc2c288c090e 100644
--- a/clang-tools-extra/clangd/index/Background.cpp
+++ b/clang-tools-extra/clangd/index/Background.cpp
@@ -199,19 +199,19 @@ void BackgroundIndex::update(
// Build and store new slabs for each updated file.
for (const auto &FileIt : FilesToUpdate) {
auto Uri = FileIt.first();
- // ShardedIndex should always have a shard for a file in Index.Sources.
- auto IF = std::move(ShardedIndex.getShard(Uri).getValue());
+ auto IF = ShardedIndex.getShard(Uri);
+ assert(IF && "no shard for file in Index.Sources?");
PathRef Path = FileIt.getValue().first;
// Only store command line hash for main files of the TU, since our
// current model keeps only one version of a header file.
if (Path != MainFile)
- IF.Cmd.reset();
+ IF->Cmd.reset();
// We need to store shards before updating the index, since the latter
// consumes slabs.
// FIXME: Also skip serializing the shard if it is already up-to-date.
- if (auto Error = IndexStorageFactory(Path)->storeShard(Path, IF))
+ if (auto Error = IndexStorageFactory(Path)->storeShard(Path, *IF))
elog("Failed to write background-index shard for file {0}: {1}", Path,
std::move(Error));
@@ -231,9 +231,9 @@ void BackgroundIndex::update(
// this thread sees the older version but finishes later. This should be
// rare in practice.
IndexedSymbols.update(
- Path, std::make_unique<SymbolSlab>(std::move(*IF.Symbols)),
- std::make_unique<RefSlab>(std::move(*IF.Refs)),
- std::make_unique<RelationSlab>(std::move(*IF.Relations)),
+ Path, std::make_unique<SymbolSlab>(std::move(*IF->Symbols)),
+ std::make_unique<RefSlab>(std::move(*IF->Refs)),
+ std::make_unique<RelationSlab>(std::move(*IF->Relations)),
Path == MainFile);
}
}
diff --git a/clang-tools-extra/clangd/index/FileIndex.cpp b/clang-tools-extra/clangd/index/FileIndex.cpp
index b6ee91db20f5..79ec1120df98 100644
--- a/clang-tools-extra/clangd/index/FileIndex.cpp
+++ b/clang-tools-extra/clangd/index/FileIndex.cpp
@@ -379,13 +379,14 @@ void FileIndex::updatePreamble(PathRef Path, llvm::StringRef Version,
indexHeaderSymbols(Version, AST, std::move(PP), Includes);
FileShardedIndex ShardedIndex(std::move(IF));
for (auto Uri : ShardedIndex.getAllSources()) {
+ auto IF = ShardedIndex.getShard(Uri);
// We are using the key received from ShardedIndex, so it should always
// exist.
- auto IF = std::move(ShardedIndex.getShard(Uri).getValue());
+ assert(IF);
PreambleSymbols.update(
- Uri, std::make_unique<SymbolSlab>(std::move(*IF.Symbols)),
+ Uri, std::make_unique<SymbolSlab>(std::move(*IF->Symbols)),
std::make_unique<RefSlab>(),
- std::make_unique<RelationSlab>(std::move(*IF.Relations)),
+ std::make_unique<RelationSlab>(std::move(*IF->Relations)),
/*CountReferences=*/false);
}
PreambleIndex.reset(
diff --git a/clang-tools-extra/clangd/unittests/FileIndexTests.cpp b/clang-tools-extra/clangd/unittests/FileIndexTests.cpp
index f1ddc0286f09..371388ef8e22 100644
--- a/clang-tools-extra/clangd/unittests/FileIndexTests.cpp
+++ b/clang-tools-extra/clangd/unittests/FileIndexTests.cpp
@@ -573,37 +573,42 @@ TEST(FileShardedIndexTest, Sharding) {
UnorderedElementsAre(AHeaderUri, BHeaderUri, BSourceUri));
{
- auto Shard = *ShardedIndex.getShard(AHeaderUri);
- EXPECT_THAT(*Shard.Symbols, UnorderedElementsAre(QName("1")));
- EXPECT_THAT(*Shard.Refs, IsEmpty());
- EXPECT_THAT(*Shard.Relations, UnorderedElementsAre(Relation{
- Sym1.ID, RelationKind::BaseOf, Sym2.ID}));
- ASSERT_THAT(Shard.Sources->keys(), UnorderedElementsAre(AHeaderUri));
- EXPECT_THAT(Shard.Sources->lookup(AHeaderUri).DirectIncludes, IsEmpty());
- EXPECT_TRUE(Shard.Cmd.hasValue());
+ auto Shard = ShardedIndex.getShard(AHeaderUri);
+ ASSERT_TRUE(Shard);
+ EXPECT_THAT(*Shard->Symbols, UnorderedElementsAre(QName("1")));
+ EXPECT_THAT(*Shard->Refs, IsEmpty());
+ EXPECT_THAT(
+ *Shard->Relations,
+ UnorderedElementsAre(Relation{Sym1.ID, RelationKind::BaseOf, Sym2.ID}));
+ ASSERT_THAT(Shard->Sources->keys(), UnorderedElementsAre(AHeaderUri));
+ EXPECT_THAT(Shard->Sources->lookup(AHeaderUri).DirectIncludes, IsEmpty());
+ EXPECT_TRUE(Shard->Cmd.hasValue());
}
{
- auto Shard = *ShardedIndex.getShard(BHeaderUri);
- EXPECT_THAT(*Shard.Symbols, UnorderedElementsAre(QName("2")));
- EXPECT_THAT(*Shard.Refs, IsEmpty());
- EXPECT_THAT(*Shard.Relations, UnorderedElementsAre(Relation{
- Sym2.ID, RelationKind::BaseOf, Sym1.ID}));
- ASSERT_THAT(Shard.Sources->keys(),
+ auto Shard = ShardedIndex.getShard(BHeaderUri);
+ ASSERT_TRUE(Shard);
+ EXPECT_THAT(*Shard->Symbols, UnorderedElementsAre(QName("2")));
+ EXPECT_THAT(*Shard->Refs, IsEmpty());
+ EXPECT_THAT(
+ *Shard->Relations,
+ UnorderedElementsAre(Relation{Sym2.ID, RelationKind::BaseOf, Sym1.ID}));
+ ASSERT_THAT(Shard->Sources->keys(),
UnorderedElementsAre(BHeaderUri, AHeaderUri));
- EXPECT_THAT(Shard.Sources->lookup(BHeaderUri).DirectIncludes,
+ EXPECT_THAT(Shard->Sources->lookup(BHeaderUri).DirectIncludes,
UnorderedElementsAre(AHeaderUri));
- EXPECT_TRUE(Shard.Cmd.hasValue());
+ EXPECT_TRUE(Shard->Cmd.hasValue());
}
{
- auto Shard = *ShardedIndex.getShard(BSourceUri);
- EXPECT_THAT(*Shard.Symbols, UnorderedElementsAre(QName("2")));
- EXPECT_THAT(*Shard.Refs, UnorderedElementsAre(Pair(Sym1.ID, _)));
- EXPECT_THAT(*Shard.Relations, IsEmpty());
- ASSERT_THAT(Shard.Sources->keys(),
+ auto Shard = ShardedIndex.getShard(BSourceUri);
+ ASSERT_TRUE(Shard);
+ EXPECT_THAT(*Shard->Symbols, UnorderedElementsAre(QName("2")));
+ EXPECT_THAT(*Shard->Refs, UnorderedElementsAre(Pair(Sym1.ID, _)));
+ EXPECT_THAT(*Shard->Relations, IsEmpty());
+ ASSERT_THAT(Shard->Sources->keys(),
UnorderedElementsAre(BSourceUri, BHeaderUri));
- EXPECT_THAT(Shard.Sources->lookup(BSourceUri).DirectIncludes,
+ EXPECT_THAT(Shard->Sources->lookup(BSourceUri).DirectIncludes,
UnorderedElementsAre(BHeaderUri));
- EXPECT_TRUE(Shard.Cmd.hasValue());
+ EXPECT_TRUE(Shard->Cmd.hasValue());
}
}
} // namespace
More information about the cfe-commits
mailing list