Convert typedef to using. Remove unused char_traits.h There should be no behavior change. Change-Id: I6085c03f5140e46c6f1f2d1c2974cdacfa532133 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/6080 Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Brett Wilson <brettw@chromium.org>
diff --git a/base/strings/char_traits.h b/base/strings/char_traits.h deleted file mode 100644 index c432849..0000000 --- a/base/strings/char_traits.h +++ /dev/null
@@ -1,92 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_STRINGS_CHAR_TRAITS_H_ -#define BASE_STRINGS_CHAR_TRAITS_H_ - -#include <stddef.h> - -#include "base/compiler_specific.h" - -namespace base { - -// constexpr version of http://en.cppreference.com/w/cpp/string/char_traits. -// This currently just implements the bits needed to support a (mostly) -// constexpr std::string_view. -// -// TODO(dcheng): Once we switch to C++17, most methods will become constexpr and -// we can switch over to using the one in the standard library. -template <typename T> -struct CharTraits { - // Performs a lexographical comparison of the first N characters of |s1| and - // |s2|. Returns 0 if equal, -1 if |s1| is less than |s2|, and 1 if |s1| is - // greater than |s2|. - static constexpr int compare(const T* s1, const T* s2, size_t n) noexcept; - - // Returns the length of |s|, assuming null termination (and not including the - // terminating null). - static constexpr size_t length(const T* s) noexcept; -}; - -template <typename T> -constexpr int CharTraits<T>::compare(const T* s1, - const T* s2, - size_t n) noexcept { - for (; n; --n, ++s1, ++s2) { - if (*s1 < *s2) - return -1; - if (*s1 > *s2) - return 1; - } - return 0; -} - -template <typename T> -constexpr size_t CharTraits<T>::length(const T* s) noexcept { - size_t i = 0; - for (; *s; ++s) - ++i; - return i; -} - -// char specialization of CharTraits that can use clang's constexpr instrinsics, -// where available. -template <> -struct CharTraits<char> { - static constexpr int compare(const char* s1, - const char* s2, - size_t n) noexcept; - static constexpr size_t length(const char* s) noexcept; -}; - -constexpr int CharTraits<char>::compare(const char* s1, - const char* s2, - size_t n) noexcept { -#if HAS_FEATURE(cxx_constexpr_string_builtins) - return __builtin_memcmp(s1, s2, n); -#else - for (; n; --n, ++s1, ++s2) { - if (*s1 < *s2) - return -1; - if (*s1 > *s2) - return 1; - } - return 0; -#endif -} - -constexpr size_t CharTraits<char>::length(const char* s) noexcept { -#if defined(__clang__) - return __builtin_strlen(s); -#else - size_t i = 0; - for (; *s; ++s) - ++i; - return i; -#endif -} - -} // namespace base - -#endif // BASE_STRINGS_CHAR_TRAITS_H_
diff --git a/tools/gn/build_settings.h b/tools/gn/build_settings.h index 646472f..40049d9 100644 --- a/tools/gn/build_settings.h +++ b/tools/gn/build_settings.h
@@ -25,8 +25,8 @@ // may be multiple Settings objects that refer to this, one for each toolchain. class BuildSettings { public: - typedef base::Callback<void(std::unique_ptr<Item>)> ItemDefinedCallback; - typedef base::Callback<void(const std::string&)> PrintCallback; + using ItemDefinedCallback = base::Callback<void(std::unique_ptr<Item>)>; + using PrintCallback = base::Callback<void(const std::string&)>; BuildSettings(); BuildSettings(const BuildSettings& other);
diff --git a/tools/gn/builder.cc b/tools/gn/builder.cc index fc271c4..bbdb182 100644 --- a/tools/gn/builder.cc +++ b/tools/gn/builder.cc
@@ -20,7 +20,7 @@ namespace { -typedef BuilderRecord::BuilderRecordSet BuilderRecordSet; +using BuilderRecordSet = BuilderRecord::BuilderRecordSet; // Recursively looks in the tree for a given node, returning true if it // was found in the dependecy graph. This is used to see if a given node
diff --git a/tools/gn/builder.h b/tools/gn/builder.h index 973ee6a..62f4f96 100644 --- a/tools/gn/builder.h +++ b/tools/gn/builder.h
@@ -24,7 +24,7 @@ // the main thread only. See also BuilderRecord. class Builder { public: - typedef base::Callback<void(const BuilderRecord*)> ResolvedGeneratedCallback; + using ResolvedGeneratedCallback = base::Callback<void(const BuilderRecord*)>; explicit Builder(Loader* loader); ~Builder();
diff --git a/tools/gn/builder_record.h b/tools/gn/builder_record.h index 9dcc366..adf07be 100644 --- a/tools/gn/builder_record.h +++ b/tools/gn/builder_record.h
@@ -29,7 +29,7 @@ // the current build (should_generate is false). class BuilderRecord { public: - typedef std::set<BuilderRecord*> BuilderRecordSet; + using BuilderRecordSet = std::set<BuilderRecord*>; enum ItemType { ITEM_UNKNOWN,
diff --git a/tools/gn/command_path.cc b/tools/gn/command_path.cc index 503ba6d..14b1796 100644 --- a/tools/gn/command_path.cc +++ b/tools/gn/command_path.cc
@@ -41,7 +41,7 @@ bool with_data; }; -typedef std::list<PathVector> WorkQueue; +using WorkQueue = std::list<PathVector>; struct Stats { Stats() : public_paths(0), other_paths(0) {}
diff --git a/tools/gn/command_refs.cc b/tools/gn/command_refs.cc index 6364d81..8854652 100644 --- a/tools/gn/command_refs.cc +++ b/tools/gn/command_refs.cc
@@ -26,11 +26,11 @@ namespace { -typedef std::set<const Target*> TargetSet; -typedef std::vector<const Target*> TargetVector; +using TargetSet = std::set<const Target*>; +using TargetVector = std::vector<const Target*>; // Maps targets to the list of targets that depend on them. -typedef std::multimap<const Target*, const Target*> DepMap; +using DepMap = std::multimap<const Target*, const Target*>; // Populates the reverse dependency map for the targets in the Setup. void FillDepMap(Setup* setup, DepMap* dep_map) {
diff --git a/tools/gn/commands.h b/tools/gn/commands.h index f57f740..db38a2c 100644 --- a/tools/gn/commands.h +++ b/tools/gn/commands.h
@@ -27,7 +27,7 @@ namespace commands { -typedef int (*CommandRunner)(const std::vector<std::string>&); +using CommandRunner = int (*)(const std::vector<std::string>&); extern const char kAnalyze[]; extern const char kAnalyze_HelpShort[]; @@ -102,7 +102,7 @@ CommandRunner runner; }; -typedef std::map<std::string_view, CommandInfo> CommandInfoMap; +using CommandInfoMap = std::map<std::string_view, CommandInfo>; const CommandInfoMap& GetCommands();
diff --git a/tools/gn/desc_builder.cc b/tools/gn/desc_builder.cc index 6ede896..2c079a0 100644 --- a/tools/gn/desc_builder.cc +++ b/tools/gn/desc_builder.cc
@@ -106,7 +106,7 @@ // Common functionality for target and config description builder class BaseDescBuilder { public: - typedef std::unique_ptr<base::Value> ValuePtr; + using ValuePtr = std::unique_ptr<base::Value>; BaseDescBuilder(const std::set<std::string>& what, bool all,
diff --git a/tools/gn/functions.h b/tools/gn/functions.h index 4119571..8149db7 100644 --- a/tools/gn/functions.h +++ b/tools/gn/functions.h
@@ -26,31 +26,31 @@ // This type of function invocation has no block and evaluates its arguments // itself rather than taking a pre-executed list. This allows us to implement // certain built-in functions. -typedef Value (*SelfEvaluatingArgsFunction)(Scope* scope, - const FunctionCallNode* function, - const ListNode* args_list, - Err* err); +using SelfEvaluatingArgsFunction = Value (*)(Scope* scope, + const FunctionCallNode* function, + const ListNode* args_list, + Err* err); // This type of function invocation takes a block node that it will execute. -typedef Value (*GenericBlockFunction)(Scope* scope, - const FunctionCallNode* function, - const std::vector<Value>& args, - BlockNode* block, - Err* err); +using GenericBlockFunction = Value (*)(Scope* scope, + const FunctionCallNode* function, + const std::vector<Value>& args, + BlockNode* block, + Err* err); // This type of function takes a block, but does not need to control execution // of it. The dispatch function will pre-execute the block and pass the // resulting block_scope to the function. -typedef Value (*ExecutedBlockFunction)(const FunctionCallNode* function, - const std::vector<Value>& args, - Scope* block_scope, - Err* err); +using ExecutedBlockFunction = Value (*)(const FunctionCallNode* function, + const std::vector<Value>& args, + Scope* block_scope, + Err* err); // This type of function does not take a block. It just has arguments. -typedef Value (*NoBlockFunction)(Scope* scope, - const FunctionCallNode* function, - const std::vector<Value>& args, - Err* err); +using NoBlockFunction = Value (*)(Scope* scope, + const FunctionCallNode* function, + const std::vector<Value>& args, + Err* err); extern const char kAction[]; extern const char kAction_HelpShort[]; @@ -432,7 +432,7 @@ bool is_target; }; -typedef std::map<std::string_view, FunctionInfo> FunctionInfoMap; +using FunctionInfoMap = std::map<std::string_view, FunctionInfo>; // Returns the mapping of all built-in functions. const FunctionInfoMap& GetFunctions();
diff --git a/tools/gn/header_checker.h b/tools/gn/header_checker.h index 8e73c19..786edcb 100644 --- a/tools/gn/header_checker.h +++ b/tools/gn/header_checker.h
@@ -46,7 +46,7 @@ return target == other.target && is_public == other.is_public; } }; - typedef std::vector<ChainLink> Chain; + using Chain = std::vector<ChainLink>; // check_generated, if true, will also check generated // files. Something that can only be done after running a build that @@ -94,10 +94,10 @@ bool is_generated; }; - typedef std::vector<TargetInfo> TargetVector; - typedef std::map<SourceFile, TargetVector> FileMap; - typedef base::RepeatingCallback<bool(const base::FilePath& path)> - PathExistsCallback; + using TargetVector = std::vector<TargetInfo>; + using FileMap = std::map<SourceFile, TargetVector>; + using PathExistsCallback = + base::RepeatingCallback<bool(const base::FilePath& path)>; // Backend for Run() that takes the list of files to check. The errors_ list // will be populate on failure.
diff --git a/tools/gn/import_manager.h b/tools/gn/import_manager.h index d72d5a7..e033183 100644 --- a/tools/gn/import_manager.h +++ b/tools/gn/import_manager.h
@@ -43,7 +43,7 @@ std::mutex imports_lock_; // Owning pointers to the scopes. - typedef std::map<SourceFile, std::unique_ptr<ImportInfo>> ImportMap; + using ImportMap = std::map<SourceFile, std::unique_ptr<ImportInfo>>; ImportMap imports_; std::unordered_set<std::string> imports_in_progress_;
diff --git a/tools/gn/inherited_libraries.h b/tools/gn/inherited_libraries.h index e8568b2..71d02f4 100644 --- a/tools/gn/inherited_libraries.h +++ b/tools/gn/inherited_libraries.h
@@ -62,7 +62,7 @@ bool is_public; }; - typedef std::map<const Target*, Node> LibraryMap; + using LibraryMap = std::map<const Target*, Node>; LibraryMap map_; DISALLOW_COPY_AND_ASSIGN(InheritedLibraries);
diff --git a/tools/gn/label_ptr.h b/tools/gn/label_ptr.h index ac994f5..d51ef16 100644 --- a/tools/gn/label_ptr.h +++ b/tools/gn/label_ptr.h
@@ -22,7 +22,7 @@ // location of the thing that added this dependency. template <typename T> struct LabelPtrPair { - typedef T DestType; + using DestType = T; LabelPtrPair() = default; @@ -43,11 +43,11 @@ const ParseNode* origin = nullptr; }; -typedef LabelPtrPair<Config> LabelConfigPair; -typedef LabelPtrPair<Target> LabelTargetPair; +using LabelConfigPair = LabelPtrPair<Config>; +using LabelTargetPair = LabelPtrPair<Target>; -typedef std::vector<LabelConfigPair> LabelConfigVector; -typedef std::vector<LabelTargetPair> LabelTargetVector; +using LabelConfigVector = std::vector<LabelConfigPair>; +using LabelTargetVector = std::vector<LabelTargetPair>; // Default comparison operators ----------------------------------------------- //
diff --git a/tools/gn/loader.h b/tools/gn/loader.h index 71b22b8..06737c3 100644 --- a/tools/gn/loader.h +++ b/tools/gn/loader.h
@@ -71,12 +71,12 @@ class LoaderImpl : public Loader { public: // Callback to emulate InputFileManager::AsyncLoadFile. - typedef base::Callback<bool(const LocationRange&, - const BuildSettings*, - const SourceFile&, - const base::Callback<void(const ParseNode*)>&, - Err*)> - AsyncLoadFileCallback; + using AsyncLoadFileCallback = + base::Callback<bool(const LocationRange&, + const BuildSettings*, + const SourceFile&, + const base::Callback<void(const ParseNode*)>&, + Err*)>; explicit LoaderImpl(const BuildSettings* build_settings); @@ -164,14 +164,14 @@ // mocking purposes. AsyncLoadFileCallback async_load_file_; - typedef std::set<LoadID> LoadIDSet; + using LoadIDSet = std::set<LoadID>; LoadIDSet invocations_; const BuildSettings* build_settings_; Label default_toolchain_label_; // Records for the build config file loads. - typedef std::map<Label, std::unique_ptr<ToolchainRecord>> ToolchainRecordMap; + using ToolchainRecordMap = std::map<Label, std::unique_ptr<ToolchainRecord>>; ToolchainRecordMap toolchain_records_; };
diff --git a/tools/gn/loader_unittest.cc b/tools/gn/loader_unittest.cc index dc8b0df..83a2389 100644 --- a/tools/gn/loader_unittest.cc +++ b/tools/gn/loader_unittest.cc
@@ -52,7 +52,7 @@ class MockInputFileManager { public: - typedef base::Callback<void(const ParseNode*)> Callback; + using Callback = base::Callback<void(const ParseNode*)>; MockInputFileManager() = default; @@ -84,7 +84,7 @@ return true; } - typedef std::map<SourceFile, std::unique_ptr<CannedResult>> CannedResponseMap; + using CannedResponseMap = std::map<SourceFile, std::unique_ptr<CannedResult>>; CannedResponseMap canned_responses_; std::vector<std::pair<SourceFile, Callback>> pending_;
diff --git a/tools/gn/ninja_c_binary_target_writer.h b/tools/gn/ninja_c_binary_target_writer.h index 8dacf8e..445198f 100644 --- a/tools/gn/ninja_c_binary_target_writer.h +++ b/tools/gn/ninja_c_binary_target_writer.h
@@ -28,7 +28,7 @@ UniqueVector<OutputFile>* obj_files) const override; private: - typedef std::set<OutputFile> OutputFileSet; + using OutputFileSet = std::set<OutputFile>; // Writes all flags for the compiler: includes, defines, cflags, etc. void WriteCompilerVars();
diff --git a/tools/gn/parser.h b/tools/gn/parser.h index a537170..de1a082 100644 --- a/tools/gn/parser.h +++ b/tools/gn/parser.h
@@ -137,9 +137,9 @@ DISALLOW_COPY_AND_ASSIGN(Parser); }; -typedef std::unique_ptr<ParseNode> (Parser::*PrefixFunc)(const Token& token); -typedef std::unique_ptr<ParseNode> ( - Parser::*InfixFunc)(std::unique_ptr<ParseNode> left, const Token& token); +using PrefixFunc = std::unique_ptr<ParseNode> (Parser::*)(const Token& token); +using InfixFunc = std::unique_ptr<ParseNode> ( + Parser::*)(std::unique_ptr<ParseNode> left, const Token& token); struct ParserHelper { PrefixFunc prefix; @@ -151,7 +151,8 @@ // Renders parse subtree as a formatted text, indenting by the given number of // spaces. -void RenderToText(const base::Value& node, int indent_level, - std::ostringstream& os); +void RenderToText(const base::Value& node, + int indent_level, + std::ostringstream& os); #endif // TOOLS_GN_PARSER_H_
diff --git a/tools/gn/scope.h b/tools/gn/scope.h index 962f5c3..397669b 100644 --- a/tools/gn/scope.h +++ b/tools/gn/scope.h
@@ -366,7 +366,7 @@ // Note that this can't use string pieces since the names are constructed from // Values which might be deallocated before this goes out of scope. - typedef std::unordered_map<std::string, std::unique_ptr<Scope>> NamedScopeMap; + using NamedScopeMap = std::unordered_map<std::string, std::unique_ptr<Scope>>; NamedScopeMap target_defaults_; // Null indicates not set and that we should fallback to the containing @@ -374,16 +374,16 @@ std::unique_ptr<PatternList> sources_assignment_filter_; // Owning pointers, must be deleted. - typedef std::map<std::string, scoped_refptr<const Template>> TemplateMap; + using TemplateMap = std::map<std::string, scoped_refptr<const Template>>; TemplateMap templates_; ItemVector* item_collector_; // Opaque pointers. See SetProperty() above. - typedef std::map<const void*, void*> PropertyMap; + using PropertyMap = std::map<const void*, void*>; PropertyMap properties_; - typedef std::set<ProgrammaticProvider*> ProviderSet; + using ProviderSet = std::set<ProgrammaticProvider*>; ProviderSet programmatic_providers_; SourceDir source_dir_;
diff --git a/tools/gn/switches.h b/tools/gn/switches.h index 9f0ddf0..900104a 100644 --- a/tools/gn/switches.h +++ b/tools/gn/switches.h
@@ -18,7 +18,7 @@ const char* long_help; }; -typedef std::map<std::string_view, SwitchInfo> SwitchInfoMap; +using SwitchInfoMap = std::map<std::string_view, SwitchInfo>; // Returns the mapping of all global switches. const SwitchInfoMap& GetSwitches();
diff --git a/tools/gn/target.cc b/tools/gn/target.cc index 27dce25..8a5b989 100644 --- a/tools/gn/target.cc +++ b/tools/gn/target.cc
@@ -23,7 +23,7 @@ namespace { -typedef std::set<const Config*> ConfigSet; +using ConfigSet = std::set<const Config*>; // Merges the public configs from the given target to the given config list. void MergePublicConfigsFrom(const Target* from_target,
diff --git a/tools/gn/target.h b/tools/gn/target.h index 549b354..abd1b44 100644 --- a/tools/gn/target.h +++ b/tools/gn/target.h
@@ -56,8 +56,8 @@ DEPS_LINKED, // Iterates through all non-data dependencies. }; - typedef std::vector<SourceFile> FileList; - typedef std::vector<std::string> StringVector; + using FileList = std::vector<SourceFile>; + using StringVector = std::vector<std::string>; // We track the set of build files that may affect this target, please refer // to Scope for how this is determined.
diff --git a/tools/gn/unique_vector.h b/tools/gn/unique_vector.h index ec8bb27..3ebf182 100644 --- a/tools/gn/unique_vector.h +++ b/tools/gn/unique_vector.h
@@ -91,9 +91,9 @@ template <typename T> class UniqueVector { public: - typedef std::vector<T> Vector; - typedef typename Vector::iterator iterator; - typedef typename Vector::const_iterator const_iterator; + using Vector = std::vector<T>; + using iterator = typename Vector::iterator; + using const_iterator = typename Vector::const_iterator; const Vector& vector() const { return vector_; } size_t size() const { return vector_.size(); } @@ -153,8 +153,8 @@ } private: - typedef internal::UniquifyRef<T> Ref; - typedef std::unordered_set<Ref> HashSet; + using Ref = internal::UniquifyRef<T>; + using HashSet = std::unordered_set<Ref>; HashSet set_; Vector vector_;
diff --git a/tools/gn/variables.h b/tools/gn/variables.h index 60769d4..0de220d 100644 --- a/tools/gn/variables.h +++ b/tools/gn/variables.h
@@ -336,7 +336,7 @@ const char* help; }; -typedef std::map<std::string_view, VariableInfo> VariableInfoMap; +using VariableInfoMap = std::map<std::string_view, VariableInfo>; // Returns the built-in readonly variables. // Note: this is used only for help so this getter is not threadsafe.