summaryrefslogtreecommitdiff
path: root/src/buildtool/build_engine/expression/expression.cpp
diff options
context:
space:
mode:
authorMaksim Denisov <denisov.maksim@huawei.com>2024-10-04 14:42:28 +0200
committerMaksim Denisov <denisov.maksim@huawei.com>2024-10-07 15:20:41 +0200
commit0fc0d9118b5e525fa582de0286c8e83bb0da4e16 (patch)
tree23acbc464d5f15ef16432fc9277de3a4a8abcb9d /src/buildtool/build_engine/expression/expression.cpp
parente5a6474d0b2a41586b1c7ead20f2098c8dc977e2 (diff)
downloadjustbuild-0fc0d9118b5e525fa582de0286c8e83bb0da4e16.tar.gz
Disable misc-no-recursion check
...since we use recursion for trees a lot, but skip this check manually.
Diffstat (limited to 'src/buildtool/build_engine/expression/expression.cpp')
-rw-r--r--src/buildtool/build_engine/expression/expression.cpp11
1 files changed, 1 insertions, 10 deletions
diff --git a/src/buildtool/build_engine/expression/expression.cpp b/src/buildtool/build_engine/expression/expression.cpp
index cbb6a18d..963f20f9 100644
--- a/src/buildtool/build_engine/expression/expression.cpp
+++ b/src/buildtool/build_engine/expression/expression.cpp
@@ -75,7 +75,6 @@ auto Expression::operator[](std::size_t pos) && -> ExpressionPtr {
fmt::format("List pos '{}' is out of bounds.", pos)};
}
-// NOLINTNEXTLINE(misc-no-recursion)
auto Expression::ToJson(Expression::JsonMode mode) const -> nlohmann::json {
if (IsBool()) {
return Bool();
@@ -112,14 +111,12 @@ auto Expression::ToJson(Expression::JsonMode mode) const -> nlohmann::json {
std::transform(list.begin(),
list.end(),
std::back_inserter(json),
- // NOLINTNEXTLINE(misc-no-recursion)
[mode](auto const& e) { return e->ToJson(mode); });
return json;
}
if (IsMap()) {
auto json = nlohmann::json::object();
auto const& map = Value<map_t>()->get();
- // NOLINTNEXTLINE(misc-no-recursion)
std::for_each(map.begin(), map.end(), [&](auto const& p) {
json.emplace(p.first, p.second->ToJson(mode));
});
@@ -131,7 +128,6 @@ auto Expression::ToJson(Expression::JsonMode mode) const -> nlohmann::json {
return nlohmann::json{};
}
-// NOLINTNEXTLINE(misc-no-recursion)
auto Expression::ComputeIsCacheable() const -> bool {
// Must be updated whenever we add a new non-cacheable value
if (IsName()) {
@@ -160,7 +156,6 @@ auto Expression::ComputeIsCacheable() const -> bool {
return true;
}
-// NOLINTNEXTLINE(misc-no-recursion)
auto Expression::ToString() const -> std::string {
return ToJson().dump();
}
@@ -169,17 +164,15 @@ auto Expression::ToString() const -> std::string {
-> std::string {
return AbbreviateJson(ToJson(), len);
}
-// NOLINTNEXTLINE(misc-no-recursion)
+
auto Expression::ToHash() const noexcept -> std::string {
return hash_.SetOnceAndGet([this] { return ComputeHash(); });
}
-// NOLINTNEXTLINE(misc-no-recursion)
auto Expression::IsCacheable() const -> bool {
return is_cachable_.SetOnceAndGet([this] { return ComputeIsCacheable(); });
}
-// NOLINTNEXTLINE(misc-no-recursion)
auto Expression::FromJson(nlohmann::json const& json) noexcept
-> ExpressionPtr {
if (json.is_null()) {
@@ -201,7 +194,6 @@ auto Expression::FromJson(nlohmann::json const& json) noexcept
std::transform(json.begin(),
json.end(),
std::back_inserter(l),
- // NOLINTNEXTLINE(misc-no-recursion)
[](auto const& j) { return FromJson(j); });
return ExpressionPtr{l};
}
@@ -235,7 +227,6 @@ auto Expression::TypeString() const noexcept -> std::string {
return TypeStringForIndex();
}
-// NOLINTNEXTLINE(misc-no-recursion)
auto Expression::ComputeHash() const noexcept -> std::string {
auto hash = std::string{};