diff options
author | Maksim Denisov <denisov.maksim@huawei.com> | 2024-10-04 14:42:28 +0200 |
---|---|---|
committer | Maksim Denisov <denisov.maksim@huawei.com> | 2024-10-07 15:20:41 +0200 |
commit | 0fc0d9118b5e525fa582de0286c8e83bb0da4e16 (patch) | |
tree | 23acbc464d5f15ef16432fc9277de3a4a8abcb9d /src | |
parent | e5a6474d0b2a41586b1c7ead20f2098c8dc977e2 (diff) | |
download | justbuild-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')
22 files changed, 4 insertions, 48 deletions
diff --git a/src/buildtool/build_engine/analysed_target/analysed_target.cpp b/src/buildtool/build_engine/analysed_target/analysed_target.cpp index 045add0d..b9a5f559 100644 --- a/src/buildtool/build_engine/analysed_target/analysed_target.cpp +++ b/src/buildtool/build_engine/analysed_target/analysed_target.cpp @@ -18,7 +18,6 @@ namespace { -// NOLINTNEXTLINE(misc-no-recursion) void CollectNonKnownArtifacts( ExpressionPtr const& expr, gsl::not_null<std::vector<ArtifactDescription>*> const& artifacts, diff --git a/src/buildtool/build_engine/expression/evaluator.cpp b/src/buildtool/build_engine/expression/evaluator.cpp index ea2f547e..3e129539 100644 --- a/src/buildtool/build_engine/expression/evaluator.cpp +++ b/src/buildtool/build_engine/expression/evaluator.cpp @@ -375,7 +375,6 @@ auto Join(ExpressionPtr const& expr, std::string const& sep) -> ExpressionPtr { } template <bool kDisjoint = false> -// NOLINTNEXTLINE(misc-no-recursion) auto Union(Expression::list_t const& dicts, std::size_t from, std::size_t to) -> ExpressionPtr { @@ -540,7 +539,6 @@ auto ExpandQuasiQuote(const SubExprEvaluator& eval, ExpressionPtr const& expr, Configuration const& env) -> ExpressionPtr; -// NOLINTNEXTLINE(misc-no-recursion) auto ExpandQuasiQuoteListEntry(const SubExprEvaluator& eval, ExpressionPtr const& expr, Configuration const& env) -> ExpressionPtr { @@ -595,7 +593,6 @@ auto ExpandQuasiQuoteListEntry(const SubExprEvaluator& eval, return ExpressionPtr{Expression::list_t{expr}}; } -// NOLINTNEXTLINE(misc-no-recursion) auto ExpandQuasiQuote(const SubExprEvaluator& eval, ExpressionPtr const& expr, Configuration const& env) -> ExpressionPtr { @@ -1416,7 +1413,6 @@ auto Evaluator::EvaluateExpression( return ExpressionPtr{nullptr}; } -// NOLINTNEXTLINE(misc-no-recursion) auto Evaluator::Evaluate(ExpressionPtr const& expr, Configuration const& env, FunctionMapPtr const& functions) -> ExpressionPtr { @@ -1430,7 +1426,6 @@ auto Evaluator::Evaluate(ExpressionPtr const& expr, expr->List().cbegin(), expr->List().cend(), std::back_inserter(list), - // NOLINTNEXTLINE(misc-no-recursion) [&](auto const& e) { return Evaluate(e, env, functions); }); return ExpressionPtr{list}; } 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{}; diff --git a/src/buildtool/build_engine/expression/target_result.cpp b/src/buildtool/build_engine/expression/target_result.cpp index 61f5a17f..c95a803f 100644 --- a/src/buildtool/build_engine/expression/target_result.cpp +++ b/src/buildtool/build_engine/expression/target_result.cpp @@ -65,7 +65,6 @@ auto SerializeTargetResultWithReplacement( // If replacements is set, replace any contained // non-known artifact by known artifact from replacement. Throws runtime_error // if no replacement is found. -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto SerializeExpression( gsl::not_null<std::unordered_map<std::string, nlohmann::json>*> const& nodes, @@ -178,7 +177,6 @@ auto SerializeTargetResultWithReplacement( return id; } -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto DeserializeExpression( HashFunction::Type hash_type, nlohmann::json const& entry, @@ -327,7 +325,6 @@ auto SerializeTargetResultWithReplacement( // Serialize artifact map to JSON. If replacements is set, replace // non-known artifacts by known artifacts from replacement. Throws runtime_error // if no replacement is found. -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto SerializeArtifactMap( ExpressionPtr const& expr, std::unordered_map<ArtifactDescription, Artifact::ObjectInfo> const& @@ -365,7 +362,6 @@ auto SerializeTargetResultWithReplacement( // Serialize provides map to JSON. If replacements is set, replace // non-known artifacts by known artifacts from replacement. Throws runtime_error // if no replacement is found. -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto SerializeProvidesMap( ExpressionPtr const& expr, std::unordered_map<ArtifactDescription, Artifact::ObjectInfo> const& @@ -398,7 +394,6 @@ auto JsonSet(nlohmann::json const& j) -> std::unordered_set<std::string> { return result; } -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto DeserializeProvidesMap(HashFunction::Type hash_type, nlohmann::json const& json) -> ExpressionPtr { @@ -415,7 +410,6 @@ auto JsonSet(nlohmann::json const& j) -> std::unordered_set<std::string> { // Serialize TargetResult to JSON. If replacements is set, replace non-known // artifacts by known artifacts from replacement. Throws runtime_error if no // replacement is found. -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto SerializeTargetResultWithReplacement( TargetResult const& result, std::unordered_map<ArtifactDescription, Artifact::ObjectInfo> const& @@ -446,7 +440,6 @@ auto TargetResult::ReplaceNonKnownAndToJson( return std::nullopt; } -// NOLINTNEXTLINE(misc-no-recursion) auto TargetResult::FromJson(HashFunction::Type hash_type, nlohmann::json const& json) noexcept -> std::optional<TargetResult> { diff --git a/src/buildtool/build_engine/target_map/result_map.hpp b/src/buildtool/build_engine/target_map/result_map.hpp index c0babcb2..3e144628 100644 --- a/src/buildtool/build_engine/target_map/result_map.hpp +++ b/src/buildtool/build_engine/target_map/result_map.hpp @@ -384,7 +384,6 @@ class ResultTargetMap { std::vector<std::size_t> num_blobs_{std::vector<std::size_t>(width_)}; std::vector<std::size_t> num_trees_{std::vector<std::size_t>(width_)}; - // NOLINTNEXTLINE(misc-no-recursion) constexpr static auto ComputeWidth(std::size_t jobs) -> std::size_t { if (jobs <= 0) { // Non-positive indicates to use the default value diff --git a/src/buildtool/build_engine/target_map/target_map.cpp b/src/buildtool/build_engine/target_map/target_map.cpp index 9b0d62a1..5dd9b7cf 100644 --- a/src/buildtool/build_engine/target_map/target_map.cpp +++ b/src/buildtool/build_engine/target_map/target_map.cpp @@ -238,7 +238,6 @@ auto NameTransitionedDeps( // Check if an object is contained an expression; to avoid tree-unfolding // the expression, we need to cache the values already computed. -// NOLINTNEXTLINE(misc-no-recursion) auto ExpressionContainsObject(std::unordered_map<ExpressionPtr, bool>* map, const ExpressionPtr& object, const ExpressionPtr& exp) { diff --git a/src/buildtool/common/repository_config.cpp b/src/buildtool/common/repository_config.cpp index 804bec2e..78f7b8a4 100644 --- a/src/buildtool/common/repository_config.cpp +++ b/src/buildtool/common/repository_config.cpp @@ -111,7 +111,6 @@ auto RepositoryConfig::BuildGraphForRepository(std::string const& repo, // unique id if it and all its dependencies are content-fixed or return // std::nullopt otherwise. Recursion immediately aborts on traversing the first // non-content-fixed repository. -// NOLINTNEXTLINE(misc-no-recursion) auto RepositoryConfig::AddToGraphAndGetId( gsl::not_null<nlohmann::json*> const& graph, gsl::not_null<int*> const& id_counter, diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp index 5bed3dfc..9eaecd7a 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp @@ -232,7 +232,6 @@ struct DirectoryNodeBundle final { } /// \brief Convert `DirectoryTree` to `DirectoryNodeBundle`. -/// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto DirectoryTreeToBundle( std::string const& root_name, DirectoryTreePtr const& tree, diff --git a/src/buildtool/execution_api/bazel_msg/directory_tree.cpp b/src/buildtool/execution_api/bazel_msg/directory_tree.cpp index 5b3b20e2..c7ddfdef 100644 --- a/src/buildtool/execution_api/bazel_msg/directory_tree.cpp +++ b/src/buildtool/execution_api/bazel_msg/directory_tree.cpp @@ -51,7 +51,6 @@ auto DirectoryTree::FromNamedArtifacts( return dir_tree; } -// NOLINTNEXTLINE(misc-no-recursion) auto DirectoryTree::AddArtifact(std::filesystem::path::iterator* begin, std::filesystem::path::iterator const& end, Artifact const* artifact) -> bool { diff --git a/src/buildtool/execution_api/common/blob_tree.cpp b/src/buildtool/execution_api/common/blob_tree.cpp index daf2a87c..6bb503b7 100644 --- a/src/buildtool/execution_api/common/blob_tree.cpp +++ b/src/buildtool/execution_api/common/blob_tree.cpp @@ -25,7 +25,6 @@ #include "src/buildtool/file_system/object_type.hpp" #include "src/utils/cpp/hex_string.hpp" -/// NOLINTNEXTLINE(misc-no-recursion) auto BlobTree::FromDirectoryTree(DirectoryTreePtr const& tree, std::filesystem::path const& parent) noexcept -> std::optional<BlobTreePtr> { diff --git a/src/buildtool/execution_api/common/common_api.cpp b/src/buildtool/execution_api/common/common_api.cpp index 319be597..c21d14a4 100644 --- a/src/buildtool/execution_api/common/common_api.cpp +++ b/src/buildtool/execution_api/common/common_api.cpp @@ -81,7 +81,6 @@ auto CommonRetrieveToFds( return true; } -/// NOLINTNEXTLINE(misc-no-recursion) auto CommonUploadBlobTree(BlobTreePtr const& blob_tree, IExecutionApi const& api) noexcept -> bool { // Create digest list from blobs for batch availability check. diff --git a/src/buildtool/execution_api/git/git_api.hpp b/src/buildtool/execution_api/git/git_api.hpp index 1c7edca0..aab488b3 100644 --- a/src/buildtool/execution_api/git/git_api.hpp +++ b/src/buildtool/execution_api/git/git_api.hpp @@ -53,7 +53,7 @@ class GitApi final : public IExecutionApi { return nullptr; } - // NOLINTNEXTLINE(misc-no-recursion,google-default-arguments) + // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToPaths( std::vector<Artifact::ObjectInfo> const& artifacts_info, std::vector<std::filesystem::path> const& output_paths, @@ -172,7 +172,6 @@ class GitApi final : public IExecutionApi { return true; } - // NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto RetrieveToCas( std::vector<Artifact::ObjectInfo> const& artifacts_info, IExecutionApi const& api) const noexcept -> bool override { diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp index 7ba26b3d..2302cb5c 100644 --- a/src/buildtool/execution_api/local/local_api.hpp +++ b/src/buildtool/execution_api/local/local_api.hpp @@ -79,7 +79,7 @@ class LocalApi final : public IExecutionApi { properties}}; } - // NOLINTNEXTLINE(misc-no-recursion,google-default-arguments) + // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToPaths( std::vector<Artifact::ObjectInfo> const& artifacts_info, std::vector<std::filesystem::path> const& output_paths, @@ -154,7 +154,6 @@ class LocalApi final : public IExecutionApi { }); } - // NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto RetrieveToCas( std::vector<Artifact::ObjectInfo> const& artifacts_info, IExecutionApi const& api) const noexcept -> bool final { diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp index 1b2933af..c9206d1b 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp @@ -230,7 +230,7 @@ auto BazelApi::CreateAction( properties}}; } -// NOLINTNEXTLINE(misc-no-recursion, google-default-arguments) +// NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto BazelApi::RetrieveToPaths( std::vector<Artifact::ObjectInfo> const& artifacts_info, std::vector<std::filesystem::path> const& output_paths, @@ -323,7 +323,6 @@ auto BazelApi::CreateAction( ); } -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto BazelApi::RetrieveToCas( std::vector<Artifact::ObjectInfo> const& artifacts_info, IExecutionApi const& api) const noexcept -> bool { @@ -382,7 +381,6 @@ auto BazelApi::CreateAction( artifacts_info, api, jobs, use_blob_splitting, &done); } -/// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto BazelApi::ParallelRetrieveToCasWithCache( std::vector<Artifact::ObjectInfo> const& all_artifacts_info, IExecutionApi const& api, diff --git a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp index 91498b22..e4ce1ce0 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_cas_client.cpp @@ -263,7 +263,6 @@ auto BazelCasClient::BatchReadBlobs( return result; } -// NOLINTNEXTLINE(misc-no-recursion) auto BazelCasClient::GetTree(std::string const& instance_name, bazel_re::Digest const& root_digest, std::int32_t page_size, @@ -484,7 +483,6 @@ auto BazelCasClient::FindMissingBlobs(std::string const& instance_name, return result; } -// NOLINTNEXTLINE(misc-no-recursion) auto BazelCasClient::BatchUpdateBlobs( std::string const& instance_name, std::vector<gsl::not_null<BazelBlob const*>>::const_iterator const& begin, diff --git a/src/buildtool/execution_engine/executor/executor.hpp b/src/buildtool/execution_engine/executor/executor.hpp index a25958b2..63ab96ba 100644 --- a/src/buildtool/execution_engine/executor/executor.hpp +++ b/src/buildtool/execution_engine/executor/executor.hpp @@ -271,7 +271,6 @@ class ExecutorImpl { /// \param[in] api The remote execution API of the CAS. /// \param[in] tree The git tree to be uploaded. /// \returns True if the upload was successful, False in case of any error. - // NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] static auto VerifyOrUploadTree(IExecutionApi const& api, GitTree const& tree) noexcept -> bool { diff --git a/src/buildtool/file_system/git_tree.cpp b/src/buildtool/file_system/git_tree.cpp index ad7a1c5b..1f916dc1 100644 --- a/src/buildtool/file_system/git_tree.cpp +++ b/src/buildtool/file_system/git_tree.cpp @@ -36,7 +36,6 @@ namespace { return (normalized / "").parent_path(); // strip trailing slash } -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] auto LookupEntryPyPath( GitTree const& tree, std::filesystem::path::const_iterator it, diff --git a/src/buildtool/main/archive.cpp b/src/buildtool/main/archive.cpp index 13d377ca..e49da224 100644 --- a/src/buildtool/main/archive.cpp +++ b/src/buildtool/main/archive.cpp @@ -51,7 +51,6 @@ void archive_entry_cleanup(archive_entry* entry) { } } -// NOLINTNEXTLINE(misc-no-recursion) auto add_to_archive(HashFunction::Type hash_type, archive* archive, IExecutionApi const& api, diff --git a/src/buildtool/main/diagnose.cpp b/src/buildtool/main/diagnose.cpp index 49aefc86..9171869e 100644 --- a/src/buildtool/main/diagnose.cpp +++ b/src/buildtool/main/diagnose.cpp @@ -215,7 +215,6 @@ auto DumpExpressionToMap(gsl::not_null<nlohmann::json*> const& map, return false; } -// NOLINTNEXTLINE(misc-no-recursion) void DumpNodesInExpressionToMap(gsl::not_null<nlohmann::json*> const& map, ExpressionPtr const& expr) { if (expr->IsNode()) { diff --git a/src/other_tools/just_mr/utils.cpp b/src/other_tools/just_mr/utils.cpp index 9700b824..e49da9d8 100644 --- a/src/other_tools/just_mr/utils.cpp +++ b/src/other_tools/just_mr/utils.cpp @@ -19,7 +19,6 @@ namespace JustMR::Utils { -// NOLINTNEXTLINE(misc-no-recursion) auto ResolveRepo(ExpressionPtr const& repo_desc, ExpressionPtr const& repos, gsl::not_null<std::unordered_set<std::string>*> const& seen) diff --git a/src/utils/automata/dfa_minimizer.hpp b/src/utils/automata/dfa_minimizer.hpp index 5017b635..d536bd8b 100644 --- a/src/utils/automata/dfa_minimizer.hpp +++ b/src/utils/automata/dfa_minimizer.hpp @@ -196,7 +196,6 @@ class DFAMinimizer { } // Mark pair as distinguishable and recursively mark all parents. - // NOLINTNEXTLINE(misc-no-recursion) static void MarkPairValue(gsl::not_null<StatePairValue*> const& data) { data->marked = true; for (auto* parent : data->parents) { diff --git a/src/utils/cpp/json.hpp b/src/utils/cpp/json.hpp index 1fe4df3f..589a5884 100644 --- a/src/utils/cpp/json.hpp +++ b/src/utils/cpp/json.hpp @@ -50,7 +50,6 @@ auto ExtractValueAs( namespace detail { -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] static inline auto IndentListsOnlyUntilDepth( nlohmann::json const& json, std::string const& indent, @@ -89,7 +88,6 @@ namespace detail { return json.dump(); } -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] static inline auto IndentOnlyUntilDepth( nlohmann::json const& json, std::string const& indent, @@ -164,7 +162,6 @@ namespace detail { } // \brief Dump json, replacing subexpressions at the given depths by "*". -// NOLINTNEXTLINE(misc-no-recursion) [[nodiscard]] static inline auto TruncateJson(nlohmann::json const& json, std::size_t depth) -> std::string { |