summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/build_engine/base_maps/directory_map.cpp3
-rw-r--r--src/buildtool/file_system/file_root.hpp11
2 files changed, 8 insertions, 6 deletions
diff --git a/src/buildtool/build_engine/base_maps/directory_map.cpp b/src/buildtool/build_engine/base_maps/directory_map.cpp
index 1b862386..b8cc4441 100644
--- a/src/buildtool/build_engine/base_maps/directory_map.cpp
+++ b/src/buildtool/build_engine/base_maps/directory_map.cpp
@@ -25,7 +25,8 @@ auto BuildMaps::Base::CreateDirectoryEntriesMap(std::size_t jobs)
if (not ws_root->IsDirectory(key.module)) {
// Missing directory is fine (source tree might be incomplete),
// contains no entries.
- (*setter)(FileRoot::DirectoryEntries{});
+ (*setter)(FileRoot::DirectoryEntries{
+ FileRoot::DirectoryEntries::pairs_t{}});
return;
}
(*setter)(ws_root->ReadDirectory(key.module));
diff --git a/src/buildtool/file_system/file_root.hpp b/src/buildtool/file_system/file_root.hpp
index c374e937..66ceb68a 100644
--- a/src/buildtool/file_system/file_root.hpp
+++ b/src/buildtool/file_system/file_root.hpp
@@ -84,9 +84,11 @@ class FileRoot {
public:
class DirectoryEntries {
friend class FileRoot;
+
+ public:
using pairs_t = std::unordered_map<std::string, ObjectType>;
using tree_t = gsl::not_null<GitTree const*>;
- using entries_t = std::variant<std::monostate, tree_t, pairs_t>;
+ using entries_t = std::variant<tree_t, pairs_t>;
using fs_iterator_type = typename pairs_t::const_iterator;
using fs_iterator = FilteredIterator<fs_iterator_type>;
@@ -94,6 +96,7 @@ class FileRoot {
using git_iterator_type = GitTree::entries_t::const_iterator;
using git_iterator = FilteredIterator<git_iterator_type>;
+ private:
/// Iterator has two FilteredIterators, one for iterating over pairs_t
/// and one for tree_t. Each FilteredIterator is constructed with a
/// proper predicate, allowing for iteration on file-only or
@@ -146,8 +149,6 @@ class FileRoot {
};
public:
- DirectoryEntries() noexcept = default;
-
explicit DirectoryEntries(pairs_t pairs) noexcept
: data_{std::move(pairs)} {}
@@ -226,7 +227,7 @@ class FileRoot {
}
private:
- entries_t data_{};
+ entries_t data_;
};
FileRoot() noexcept = default;
@@ -346,7 +347,7 @@ class FileRoot {
dir_path.string(),
ex.what());
}
- return {};
+ return DirectoryEntries{DirectoryEntries::pairs_t{}};
}
[[nodiscard]] auto FileType(std::filesystem::path const& file_path)