From a1d6689907864974118e592ef2ac7d716c576aad Mon Sep 17 00:00:00 2001 From: Abseil Team Date: Fri, 1 May 2020 09:13:53 -0700 Subject: Export of internal Abseil changes -- 28f0285638324bb04c20304cf14e5ade25420f1f by Gennadiy Rozental : Make CheckDefaultValueParsingRoundtrip private in CommandLineFlag. PiperOrigin-RevId: 309417330 GitOrigin-RevId: 28f0285638324bb04c20304cf14e5ade25420f1f Change-Id: I8dfed7005b3e5d58232df786e65fa7565ae72be8 --- absl/flags/internal/commandlineflag.cc | 5 +++++ absl/flags/internal/commandlineflag.h | 11 +++++++---- absl/flags/parse.cc | 3 ++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/absl/flags/internal/commandlineflag.cc b/absl/flags/internal/commandlineflag.cc index de588c13..f1e50d01 100644 --- a/absl/flags/internal/commandlineflag.cc +++ b/absl/flags/internal/commandlineflag.cc @@ -37,6 +37,11 @@ bool PrivateHandleInterface::ValidateInputValue(const CommandLineFlag& flag, return flag.ValidateInputValue(value); } +void PrivateHandleInterface::CheckDefaultValueParsingRoundtrip( + const CommandLineFlag& flag) { + flag.CheckDefaultValueParsingRoundtrip(); +} + } // namespace flags_internal ABSL_NAMESPACE_END } // namespace absl diff --git a/absl/flags/internal/commandlineflag.h b/absl/flags/internal/commandlineflag.h index f807fb9a..f60204dd 100644 --- a/absl/flags/internal/commandlineflag.h +++ b/absl/flags/internal/commandlineflag.h @@ -151,10 +151,6 @@ class CommandLineFlag { flags_internal::ValueSource source, std::string* error) = 0; - // Checks that flags default value can be converted to string and back to the - // flag's value type. - virtual void CheckDefaultValueParsingRoundtrip() const = 0; - protected: ~CommandLineFlag() = default; @@ -175,6 +171,10 @@ class CommandLineFlag { // Interfaces to operate on validators. // Validates supplied value usign validator or parseflag routine virtual bool ValidateInputValue(absl::string_view value) const = 0; + + // Checks that flags default value can be converted to string and back to the + // flag's value type. + virtual void CheckDefaultValueParsingRoundtrip() const = 0; }; // This class serves as a trampoline to access private methods of @@ -191,6 +191,9 @@ class PrivateHandleInterface { // Access to CommandLineFlag::ValidateInputValue. static bool ValidateInputValue(const CommandLineFlag& flag, absl::string_view value); + + // Access to CommandLineFlag::CheckDefaultValueParsingRoundtrip. + static void CheckDefaultValueParsingRoundtrip(const CommandLineFlag& flag); }; // This macro is the "source of truth" for the list of supported flag built-in diff --git a/absl/flags/parse.cc b/absl/flags/parse.cc index b60b36f6..b76edc62 100644 --- a/absl/flags/parse.cc +++ b/absl/flags/parse.cc @@ -298,7 +298,8 @@ void CheckDefaultValuesParsingRoundtrip() { ABSL_FLAGS_INTERNAL_BUILTIN_TYPES(IGNORE_TYPE) #undef IGNORE_TYPE - flag->CheckDefaultValueParsingRoundtrip(); + flags_internal::PrivateHandleInterface::CheckDefaultValueParsingRoundtrip( + *flag); }); #endif } -- cgit v1.2.3