From 33c576f9730da83752b2211efa4752c7f7d3d9af Mon Sep 17 00:00:00 2001 From: Paul Cristian Sarbu Date: Tue, 24 Jun 2025 12:48:33 +0200 Subject: Clarify use of a clang-tidy check The google-default-arguments check normally imposes that virtual methods have no default arguments. For our use-cases, all implementations of such methods are expected to use the same default arguments, and thus this check is manually disabled via NOLINT comments. However, this is not done consistently. This commit cleans this up and clarifies our intent by: - removing the default values (and the NOLINT statement) for all implementations of virtual methods with default argument values, matching the desired intended behaviour, but - keeping the clang-tidy check for future cases where derived classes would want to provide each different defaults. --- src/buildtool/execution_api/local/local_api.cpp | 3 --- src/buildtool/execution_api/local/local_api.hpp | 12 +++--------- src/buildtool/execution_api/remote/bazel/bazel_api.cpp | 6 ++---- src/buildtool/execution_api/remote/bazel/bazel_api.hpp | 12 +++--------- src/buildtool/execution_api/serve/mr_local_api.cpp | 2 -- src/buildtool/execution_api/serve/mr_local_api.hpp | 11 +++-------- 6 files changed, 11 insertions(+), 35 deletions(-) (limited to 'src/buildtool/execution_api') diff --git a/src/buildtool/execution_api/local/local_api.cpp b/src/buildtool/execution_api/local/local_api.cpp index c0a3a30e..d746c8e9 100644 --- a/src/buildtool/execution_api/local/local_api.cpp +++ b/src/buildtool/execution_api/local/local_api.cpp @@ -59,7 +59,6 @@ LocalApi::LocalApi(gsl::not_null const& local_context, : local_context_{*local_context}, git_api_{CreateFallbackApi(*local_context->storage, repo_config)} {} -// NOLINTNEXTLINE(google-default-arguments) auto LocalApi::CreateAction( ArtifactDigest const& root_digest, std::vector const& command, @@ -102,7 +101,6 @@ auto LocalApi::CreateAction( properties}}; } -// NOLINTNEXTLINE(google-default-arguments) auto LocalApi::RetrieveToPaths( std::vector const& artifacts_info, std::vector const& output_paths, @@ -130,7 +128,6 @@ auto LocalApi::RetrieveToPaths( return true; } -// NOLINTNEXTLINE(google-default-arguments) auto LocalApi::RetrieveToFds( std::vector const& artifacts_info, std::vector const& fds, diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp index 1b6ddeab..92761738 100644 --- a/src/buildtool/execution_api/local/local_api.hpp +++ b/src/buildtool/execution_api/local/local_api.hpp @@ -40,7 +40,6 @@ class LocalApi final : public IExecutionApi { explicit LocalApi(gsl::not_null const& local_context, RepositoryConfig const* repo_config = nullptr) noexcept; - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto CreateAction( ArtifactDigest const& root_digest, std::vector const& command, @@ -49,8 +48,7 @@ class LocalApi final : public IExecutionApi { std::vector const& output_dirs, std::map const& env_vars, std::map const& properties, - bool force_legacy = false) const noexcept - -> IExecutionAction::Ptr final; + bool force_legacy) const noexcept -> IExecutionAction::Ptr final; /// \brief Create a new action (>=RBEv2.1). /// \param[in] root_digest Digest of the build root. @@ -72,20 +70,16 @@ class LocalApi final : public IExecutionApi { std::map const& properties) const noexcept -> IExecutionAction::Ptr; - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToPaths( std::vector const& artifacts_info, std::vector const& output_paths, - IExecutionApi const* /*alternative*/ = nullptr) const noexcept - -> bool final; + IExecutionApi const* /*alternative*/) const noexcept -> bool final; - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToFds( std::vector const& artifacts_info, std::vector const& fds, bool raw_tree, - IExecutionApi const* /*alternative*/ = nullptr) const noexcept - -> bool final; + IExecutionApi const* /*alternative*/) const noexcept -> bool final; [[nodiscard]] auto RetrieveToCas( std::vector const& artifacts_info, diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp index 00bb2e75..11cb7659 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_api.cpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_api.cpp @@ -151,7 +151,6 @@ BazelApi::BazelApi(BazelApi&& other) noexcept = default; // implement destructor in cpp, where all members are complete types BazelApi::~BazelApi() = default; -// NOLINTNEXTLINE(google-default-arguments) auto BazelApi::CreateAction( ArtifactDigest const& root_digest, std::vector const& command, @@ -191,7 +190,6 @@ auto BazelApi::CreateAction( best_effort}}; } -// NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto BazelApi::RetrieveToPaths( std::vector const& artifacts_info, std::vector const& output_paths, @@ -221,7 +219,8 @@ auto BazelApi::CreateAction( auto const result = reader.RecursivelyReadTreeLeafs( info.digest, output_paths[i]); if (not result or - not RetrieveToPaths(result->infos, result->paths)) { + not RetrieveToPaths( + result->infos, result->paths, alternative)) { return false; } } @@ -266,7 +265,6 @@ auto BazelApi::CreateAction( return true; } -// NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto BazelApi::RetrieveToFds( std::vector const& artifacts_info, std::vector const& fds, diff --git a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp index 99e43578..344ae569 100644 --- a/src/buildtool/execution_api/remote/bazel/bazel_api.hpp +++ b/src/buildtool/execution_api/remote/bazel/bazel_api.hpp @@ -58,7 +58,6 @@ class BazelApi final : public IExecutionApi { auto operator=(BazelApi&&) -> BazelApi& = delete; ~BazelApi() final; - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto CreateAction( ArtifactDigest const& root_digest, std::vector const& command, @@ -67,23 +66,18 @@ class BazelApi final : public IExecutionApi { std::vector const& output_dirs, std::map const& env_vars, std::map const& properties, - bool force_legacy = false) const noexcept - -> IExecutionAction::Ptr final; + bool force_legacy) const noexcept -> IExecutionAction::Ptr final; - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToPaths( std::vector const& artifacts_info, std::vector const& output_paths, - IExecutionApi const* alternative = nullptr) const noexcept - -> bool final; + IExecutionApi const* alternative) const noexcept -> bool final; - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToFds( std::vector const& artifacts_info, std::vector const& fds, bool raw_tree, - IExecutionApi const* alternative = nullptr) const noexcept - -> bool final; + IExecutionApi const* alternative) const noexcept -> bool final; [[nodiscard]] auto ParallelRetrieveToCas( std::vector const& artifacts_info, diff --git a/src/buildtool/execution_api/serve/mr_local_api.cpp b/src/buildtool/execution_api/serve/mr_local_api.cpp index 9c58d73c..06b75c14 100644 --- a/src/buildtool/execution_api/serve/mr_local_api.cpp +++ b/src/buildtool/execution_api/serve/mr_local_api.cpp @@ -34,7 +34,6 @@ MRLocalApi::MRLocalApi( native_local_api_{native_local_api}, compat_local_api_{compatible_local_api} {} -// NOLINTNEXTLINE(google-default-arguments) auto MRLocalApi::RetrieveToPaths( std::vector const& artifacts_info, std::vector const& output_paths, @@ -94,7 +93,6 @@ auto MRLocalApi::RetrieveToCas( return compat_local_api_->RetrieveToCas(*compat_artifacts, api); } -// NOLINTNEXTLINE(google-default-arguments) auto MRLocalApi::Upload(std::unordered_set&& blobs, bool skip_find_missing) const noexcept -> bool { // in native mode, dispatch to native local api diff --git a/src/buildtool/execution_api/serve/mr_local_api.hpp b/src/buildtool/execution_api/serve/mr_local_api.hpp index 738f52fe..237c1267 100644 --- a/src/buildtool/execution_api/serve/mr_local_api.hpp +++ b/src/buildtool/execution_api/serve/mr_local_api.hpp @@ -65,20 +65,16 @@ class MRLocalApi final : public IExecutionApi { /// Handles both native and compatible artifacts. Dispatches to appropriate /// local api instance based on digest hash type. Alternative api is never /// used. - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToPaths( std::vector const& artifacts_info, std::vector const& output_paths, - IExecutionApi const* /*alternative*/ = nullptr) const noexcept - -> bool final; + IExecutionApi const* /*alternative*/) const noexcept -> bool final; - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto RetrieveToFds( std::vector const& /*artifacts_info*/, std::vector const& /*fds*/, bool /*raw_tree*/, - IExecutionApi const* /*alternative*/ = nullptr) const noexcept - -> bool final { + IExecutionApi const* /*alternative*/) const noexcept -> bool final { // Retrieval to file descriptors not supported return false; } @@ -104,9 +100,8 @@ class MRLocalApi final : public IExecutionApi { /// the blobs to the appropriate local api instance based on used protocol. /// \note Caller is responsible for passing vectors with artifacts of the /// same digest type. - // NOLINTNEXTLINE(google-default-arguments) [[nodiscard]] auto Upload(std::unordered_set&& blobs, - bool skip_find_missing = false) const noexcept + bool skip_find_missing) const noexcept -> bool final; [[nodiscard]] auto UploadTree( -- cgit v1.2.3