diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buildtool/build_engine/base_maps/directory_map.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/buildtool/build_engine/base_maps/directory_map.cpp b/src/buildtool/build_engine/base_maps/directory_map.cpp index da360e4e..be77dee3 100644 --- a/src/buildtool/build_engine/base_maps/directory_map.cpp +++ b/src/buildtool/build_engine/base_maps/directory_map.cpp @@ -36,6 +36,18 @@ auto BuildMaps::Base::CreateDirectoryEntriesMap( true); return; } + if (ws_root->IsAbsent()) { + std::string missing_root = "[unknown]"; + auto absent_tree = ws_root->GetAbsentTreeId(); + if (absent_tree) { + missing_root = *absent_tree; + } + (*logger)(fmt::format("Would have to read directory entries of " + "absent root {}.", + missing_root), + true); + return; + } auto dir_path = key.module.empty() ? "." : key.module; if (not ws_root->IsDirectory(dir_path)) { // Missing directory is fine (source tree might be incomplete), |