summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/buildtool/main/analyse.cpp9
-rw-r--r--src/buildtool/multithreading/TARGETS1
-rw-r--r--src/buildtool/multithreading/async_map_utils.hpp8
-rw-r--r--src/utils/cpp/concepts.hpp7
4 files changed, 11 insertions, 14 deletions
diff --git a/src/buildtool/main/analyse.cpp b/src/buildtool/main/analyse.cpp
index 5783114c..c9d61872 100644
--- a/src/buildtool/main/analyse.cpp
+++ b/src/buildtool/main/analyse.cpp
@@ -198,9 +198,12 @@ namespace Target = BuildMaps::Target;
Logger::Log(logger, LogLevel::Error, *error_msg);
return std::nullopt;
}
- DetectAndReportPending("expressions", expr_map, logger);
- DetectAndReportPending("rules", rule_map, logger);
- DetectAndReportPending("targets", target_map, logger);
+ DetectAndReportPending(
+ "expressions", expr_map, Base::kEntityNamePrinter, logger);
+ DetectAndReportPending(
+ "rules", rule_map, Base::kEntityNamePrinter, logger);
+ DetectAndReportPending(
+ "targets", target_map, Target::kConfiguredTargetPrinter, logger);
return std::nullopt;
}
diff --git a/src/buildtool/multithreading/TARGETS b/src/buildtool/multithreading/TARGETS
index 2a1fc119..35db852d 100644
--- a/src/buildtool/multithreading/TARGETS
+++ b/src/buildtool/multithreading/TARGETS
@@ -65,7 +65,6 @@
[ "async_map_consumer"
, ["@", "fmt", "", "fmt"]
, ["src/buildtool/logging", "logging"]
- , ["src/utils/cpp", "concepts"]
]
, "stage": ["src", "buildtool", "multithreading"]
}
diff --git a/src/buildtool/multithreading/async_map_utils.hpp b/src/buildtool/multithreading/async_map_utils.hpp
index 7e7a7a72..47e5b5b4 100644
--- a/src/buildtool/multithreading/async_map_utils.hpp
+++ b/src/buildtool/multithreading/async_map_utils.hpp
@@ -24,7 +24,6 @@
#include "src/buildtool/logging/log_level.hpp"
#include "src/buildtool/logging/logger.hpp"
#include "src/buildtool/multithreading/async_map_consumer.hpp"
-#include "src/utils/cpp/concepts.hpp"
/// \brief Utility to detect and report cycles for an AsyncMap instance.
/// \param name Human-readable string identifier related to the map or its use.
@@ -61,10 +60,13 @@ template <typename K, typename V>
/// \brief Utility to detect and report pending tasks for an AsyncMap instance.
/// \param name Human-readable string identifier related to the map or its use.
/// \param map The AsyncMap instance.
+/// \param key_printer Callable returning key-specific identifier in string
+/// format.
/// \param logger Named logger, or nullptr to use global logger.
-template <HasToString K, typename V>
+template <typename K, typename V>
void DetectAndReportPending(std::string const& name,
AsyncMapConsumer<K, V> const& map,
+ std::function<std::string(K const&)> key_printer,
Logger const* logger = nullptr) {
using namespace std::string_literals;
auto keys = map.GetPendingKeys();
@@ -74,7 +76,7 @@ void DetectAndReportPending(std::string const& name,
name)
<< std::endl;
for (auto const& k : keys) {
- oss << " " << k.ToString() << std::endl;
+ oss << " " << key_printer(k) << std::endl;
}
Logger::Log(logger, LogLevel::Error, "{}", oss.str());
}
diff --git a/src/utils/cpp/concepts.hpp b/src/utils/cpp/concepts.hpp
index 90946762..7cf943b6 100644
--- a/src/utils/cpp/concepts.hpp
+++ b/src/utils/cpp/concepts.hpp
@@ -41,13 +41,6 @@ concept HasSize = requires(T const c) {
} -> same_as<std::size_t>; // TODO(modernize): replace by std::same_as
};
-template <typename T>
-concept HasToString = requires(T const t) {
- {
- t.ToString()
- } -> same_as<std::string>; // TODO(modernize): replace by std::same_as
-};
-
template <class T>
concept InputIterableContainer = requires(T const c) {
{