tools/gn: Remove includes of basictypes.h.

We can just use the standard integer types from stdint.h now that our
toolchain supports it and include macros.h for DISALLOW macros.

BUG=138542
TEST=gn and gn_unittests builds
[email protected]

Review URL: https://codereview.chromium.org/1280123005

Cr-Commit-Position: refs/heads/master@{#342570}
diff --git a/tools/gn/action_values.h b/tools/gn/action_values.h
index 3b546f2..b20d65c 100644
--- a/tools/gn/action_values.h
+++ b/tools/gn/action_values.h
@@ -8,7 +8,7 @@
 #include <string>
 #include <vector>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "tools/gn/source_file.h"
 #include "tools/gn/substitution_list.h"
 
diff --git a/tools/gn/args.h b/tools/gn/args.h
index 345516c..1f9cb52f 100644
--- a/tools/gn/args.h
+++ b/tools/gn/args.h
@@ -5,12 +5,13 @@
 #ifndef TOOLS_GN_ARGS_H_
 #define TOOLS_GN_ARGS_H_
 
-#include "base/basictypes.h"
 #include "base/containers/hash_tables.h"
+#include "base/macros.h"
 #include "base/synchronization/lock.h"
-#include "tools/gn/err.h"
 #include "tools/gn/scope.h"
 
+class Err;
+
 extern const char kBuildArgs_Help[];
 
 // Manages build arguments. It stores the global arguments specified on the
@@ -101,7 +102,7 @@
   // toolchain may define variables in different locations.
   mutable DeclaredArgumentsPerToolchain declared_arguments_per_toolchain_;
 
-  Args& operator=(const Args& other);  // Disallow assignment.
+  DISALLOW_ASSIGN(Args);
 };
 
 #endif  // TOOLS_GN_ARGS_H_
diff --git a/tools/gn/build_settings.h b/tools/gn/build_settings.h
index f64d5b7..71d0fb9 100644
--- a/tools/gn/build_settings.h
+++ b/tools/gn/build_settings.h
@@ -8,9 +8,9 @@
 #include <map>
 #include <set>
 
-#include "base/basictypes.h"
 #include "base/callback.h"
 #include "base/files/file_path.h"
+#include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "tools/gn/args.h"
 #include "tools/gn/scope.h"
diff --git a/tools/gn/builder.h b/tools/gn/builder.h
index ee47007..08fed30 100644
--- a/tools/gn/builder.h
+++ b/tools/gn/builder.h
@@ -5,9 +5,9 @@
 #ifndef TOOLS_GN_BUILDER_H_
 #define TOOLS_GN_BUILDER_H_
 
-#include "base/basictypes.h"
 #include "base/callback.h"
 #include "base/containers/hash_tables.h"
+#include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "tools/gn/builder_record.h"
 #include "tools/gn/label.h"
diff --git a/tools/gn/builder_record.h b/tools/gn/builder_record.h
index 3a7bf5d..0940cc8 100644
--- a/tools/gn/builder_record.h
+++ b/tools/gn/builder_record.h
@@ -7,7 +7,7 @@
 
 #include <set>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "tools/gn/item.h"
 #include "tools/gn/location.h"
diff --git a/tools/gn/c_include_iterator.h b/tools/gn/c_include_iterator.h
index 94ebca14..5099d8ba 100644
--- a/tools/gn/c_include_iterator.h
+++ b/tools/gn/c_include_iterator.h
@@ -5,7 +5,7 @@
 #ifndef TOOLS_GN_C_INCLUDE_ITERATOR_H_
 #define TOOLS_GN_C_INCLUDE_ITERATOR_H_
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "base/strings/string_piece.h"
 
 class InputFile;
diff --git a/tools/gn/command_refs.cc b/tools/gn/command_refs.cc
index a97e9a7..961e210 100644
--- a/tools/gn/command_refs.cc
+++ b/tools/gn/command_refs.cc
@@ -375,7 +375,7 @@
     "      Display a reverse dependency tree to get to the given file. This\n"
     "      will show how dependencies will reference that file.\n"
     "\n"
-    "  gn refs out/Debug //base/macros.h //base/basictypes.h --all\n"
+    "  gn refs out/Debug //base/macros.h //base/at_exit.h --all\n"
     "      Display all unique targets with some dependency path to a target\n"
     "      containing either of the given files as a source.\n"
     "\n"
diff --git a/tools/gn/config_values.h b/tools/gn/config_values.h
index 64c0acc..5452826 100644
--- a/tools/gn/config_values.h
+++ b/tools/gn/config_values.h
@@ -8,7 +8,7 @@
 #include <string>
 #include <vector>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "tools/gn/source_dir.h"
 #include "tools/gn/source_file.h"
 
diff --git a/tools/gn/config_values_generator.h b/tools/gn/config_values_generator.h
index 4e58010..3f118da 100644
--- a/tools/gn/config_values_generator.h
+++ b/tools/gn/config_values_generator.h
@@ -5,10 +5,7 @@
 #ifndef TOOLS_GN_CONFIG_VALUES_GENERATOR_H_
 #define TOOLS_GN_CONFIG_VALUES_GENERATOR_H_
 
-#include <string>
-#include <vector>
-
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "tools/gn/source_dir.h"
 
 class ConfigValues;
diff --git a/tools/gn/deps_iterator.h b/tools/gn/deps_iterator.h
index 1c3a75e1..cf28718 100644
--- a/tools/gn/deps_iterator.h
+++ b/tools/gn/deps_iterator.h
@@ -5,7 +5,6 @@
 #ifndef TOOLS_GN_DEPS_ITERATOR_H_
 #define TOOLS_GN_DEPS_ITERATOR_H_
 
-#include "base/basictypes.h"
 #include "tools/gn/label_ptr.h"
 
 class Target;
diff --git a/tools/gn/docs/cookbook.md b/tools/gn/docs/cookbook.md
index 02845fc..6351645 100644
--- a/tools/gn/docs/cookbook.md
+++ b/tools/gn/docs/cookbook.md
@@ -317,7 +317,7 @@
 GN is much more strict about header file checking. You may encounter
 errors that your target doesn't depend on the target containing a
 certain header file. The most common example is including
-`base/basictypes.h` without having `//base` in your project's dependency
+`base/macros.h` without having `//base` in your project's dependency
 list. The solution is to just add the missing dependency.
 
 The dependency tree must be a DAG. Some components might share headers
diff --git a/tools/gn/docs/reference.md b/tools/gn/docs/reference.md
index ad3ac85..e5bd647 100644
--- a/tools/gn/docs/reference.md
+++ b/tools/gn/docs/reference.md
@@ -767,7 +767,7 @@
       Display a reverse dependency tree to get to the given file. This
       will show how dependencies will reference that file.
 
-  gn refs out/Debug //base/macros.h //base/basictypes.h --all
+  gn refs out/Debug //base/macros.h //base/at_exit.h --all
       Display all unique targets with some dependency path to a target
       containing either of the given files as a source.
 
diff --git a/tools/gn/header_checker.h b/tools/gn/header_checker.h
index 35e8887..8f9212f 100644
--- a/tools/gn/header_checker.h
+++ b/tools/gn/header_checker.h
@@ -9,8 +9,8 @@
 #include <set>
 #include <vector>
 
-#include "base/basictypes.h"
 #include "base/gtest_prod_util.h"
+#include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/run_loop.h"
 #include "base/strings/string_piece.h"
diff --git a/tools/gn/inherited_libraries.h b/tools/gn/inherited_libraries.h
index 84114db..371c9a5e 100644
--- a/tools/gn/inherited_libraries.h
+++ b/tools/gn/inherited_libraries.h
@@ -9,7 +9,7 @@
 #include <utility>
 #include <vector>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 
 class Target;
 
diff --git a/tools/gn/input_file.h b/tools/gn/input_file.h
index 0aeaff8a..49e5f85 100644
--- a/tools/gn/input_file.h
+++ b/tools/gn/input_file.h
@@ -7,9 +7,9 @@
 
 #include <string>
 
-#include "base/basictypes.h"
 #include "base/files/file_path.h"
 #include "base/logging.h"
+#include "base/macros.h"
 #include "tools/gn/source_dir.h"
 #include "tools/gn/source_file.h"
 
diff --git a/tools/gn/input_file_manager.h b/tools/gn/input_file_manager.h
index c817c1c3..38ff37e 100644
--- a/tools/gn/input_file_manager.h
+++ b/tools/gn/input_file_manager.h
@@ -9,10 +9,10 @@
 #include <utility>
 #include <vector>
 
-#include "base/basictypes.h"
 #include "base/callback.h"
 #include "base/containers/hash_tables.h"
 #include "base/files/file_path.h"
+#include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/synchronization/lock.h"
 #include "base/synchronization/waitable_event.h"
diff --git a/tools/gn/ninja_target_writer.cc b/tools/gn/ninja_target_writer.cc
index 7913735..098a58cb 100644
--- a/tools/gn/ninja_target_writer.cc
+++ b/tools/gn/ninja_target_writer.cc
@@ -18,6 +18,7 @@
 #include "tools/gn/output_file.h"
 #include "tools/gn/scheduler.h"
 #include "tools/gn/string_utils.h"
+#include "tools/gn/substitution_type.h"
 #include "tools/gn/substitution_writer.h"
 #include "tools/gn/target.h"
 #include "tools/gn/trace.h"
diff --git a/tools/gn/ninja_target_writer.h b/tools/gn/ninja_target_writer.h
index f67eba5..4598ae8 100644
--- a/tools/gn/ninja_target_writer.h
+++ b/tools/gn/ninja_target_writer.h
@@ -7,14 +7,14 @@
 
 #include <iosfwd>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "tools/gn/path_output.h"
-#include "tools/gn/substitution_type.h"
 
 class FileTemplate;
 class OutputFile;
 class Settings;
 class Target;
+struct SubstitutionBits;
 
 // Generates one target's ".ninja" file. The toplevel "build.ninja" file is
 // generated by the NinjaBuildWriter.
diff --git a/tools/gn/ninja_writer.h b/tools/gn/ninja_writer.h
index bde836ce..fa4a433f 100644
--- a/tools/gn/ninja_writer.h
+++ b/tools/gn/ninja_writer.h
@@ -9,7 +9,7 @@
 #include <string>
 #include <vector>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 
 class Builder;
 class BuildSettings;
diff --git a/tools/gn/parse_tree.h b/tools/gn/parse_tree.h
index 9009752..b134d4a 100644
--- a/tools/gn/parse_tree.h
+++ b/tools/gn/parse_tree.h
@@ -7,7 +7,7 @@
 
 #include <vector>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "tools/gn/err.h"
 #include "tools/gn/token.h"
diff --git a/tools/gn/parser.h b/tools/gn/parser.h
index 3348e2d..02bb462 100644
--- a/tools/gn/parser.h
+++ b/tools/gn/parser.h
@@ -8,8 +8,8 @@
 #include <map>
 #include <vector>
 
-#include "base/basictypes.h"
 #include "base/gtest_prod_util.h"
+#include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "tools/gn/err.h"
 #include "tools/gn/parse_tree.h"
diff --git a/tools/gn/path_output.h b/tools/gn/path_output.h
index 46c1aa9..ca72948 100644
--- a/tools/gn/path_output.h
+++ b/tools/gn/path_output.h
@@ -8,7 +8,7 @@
 #include <iosfwd>
 #include <string>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "base/strings/string_piece.h"
 #include "tools/gn/escape.h"
 #include "tools/gn/source_dir.h"
diff --git a/tools/gn/scheduler.h b/tools/gn/scheduler.h
index 9b3ccb3..7e29ab5 100644
--- a/tools/gn/scheduler.h
+++ b/tools/gn/scheduler.h
@@ -8,8 +8,8 @@
 #include <map>
 
 #include "base/atomic_ref_count.h"
-#include "base/basictypes.h"
 #include "base/files/file_path.h"
+#include "base/macros.h"
 #include "base/message_loop/message_loop.h"
 #include "base/run_loop.h"
 #include "base/synchronization/lock.h"
diff --git a/tools/gn/scope.h b/tools/gn/scope.h
index fd044c0..0b9bfbe 100644
--- a/tools/gn/scope.h
+++ b/tools/gn/scope.h
@@ -8,8 +8,8 @@
 #include <map>
 #include <set>
 
-#include "base/basictypes.h"
 #include "base/containers/hash_tables.h"
+#include "base/macros.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/scoped_ptr.h"
 #include "base/memory/scoped_vector.h"
diff --git a/tools/gn/scope_per_file_provider.h b/tools/gn/scope_per_file_provider.h
index fb6d62f..8cdfa6c 100644
--- a/tools/gn/scope_per_file_provider.h
+++ b/tools/gn/scope_per_file_provider.h
@@ -5,10 +5,9 @@
 #ifndef TOOLS_GN_SCOPE_PER_FILE_PROVIDER_H_
 #define TOOLS_GN_SCOPE_PER_FILE_PROVIDER_H_
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "tools/gn/scope.h"
-#include "tools/gn/source_file.h"
 
 // ProgrammaticProvider for a scope to provide it with per-file built-in
 // variable support.
diff --git a/tools/gn/setup.h b/tools/gn/setup.h
index 9c873679..5b81a55 100644
--- a/tools/gn/setup.h
+++ b/tools/gn/setup.h
@@ -7,8 +7,8 @@
 
 #include <vector>
 
-#include "base/basictypes.h"
 #include "base/files/file_path.h"
+#include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
 #include "tools/gn/build_settings.h"
 #include "tools/gn/builder.h"
diff --git a/tools/gn/substitution_writer.h b/tools/gn/substitution_writer.h
index 219f135..f50fb8db 100644
--- a/tools/gn/substitution_writer.h
+++ b/tools/gn/substitution_writer.h
@@ -8,7 +8,6 @@
 #include <iosfwd>
 #include <vector>
 
-#include "base/basictypes.h"
 #include "tools/gn/substitution_type.h"
 
 struct EscapeOptions;
diff --git a/tools/gn/target.h b/tools/gn/target.h
index e8758b7..a983241 100644
--- a/tools/gn/target.h
+++ b/tools/gn/target.h
@@ -9,11 +9,9 @@
 #include <string>
 #include <vector>
 
-#include "base/basictypes.h"
 #include "base/gtest_prod_util.h"
 #include "base/logging.h"
-#include "base/strings/string_piece.h"
-#include "base/synchronization/lock.h"
+#include "base/macros.h"
 #include "tools/gn/action_values.h"
 #include "tools/gn/config_values.h"
 #include "tools/gn/inherited_libraries.h"
diff --git a/tools/gn/template.h b/tools/gn/template.h
index 0b123e04..43aaf7f 100644
--- a/tools/gn/template.h
+++ b/tools/gn/template.h
@@ -7,7 +7,6 @@
 
 #include <vector>
 
-#include "base/basictypes.h"
 #include "base/memory/ref_counted.h"
 #include "base/memory/scoped_ptr.h"
 
diff --git a/tools/gn/test_with_scope.h b/tools/gn/test_with_scope.h
index ba9515d5..445fe77 100644
--- a/tools/gn/test_with_scope.h
+++ b/tools/gn/test_with_scope.h
@@ -7,7 +7,7 @@
 
 #include <vector>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "tools/gn/build_settings.h"
 #include "tools/gn/err.h"
 #include "tools/gn/input_file.h"
diff --git a/tools/gn/tokenizer.h b/tools/gn/tokenizer.h
index 29d107a..5fa48b1 100644
--- a/tools/gn/tokenizer.h
+++ b/tools/gn/tokenizer.h
@@ -7,7 +7,7 @@
 
 #include <vector>
 
-#include "base/basictypes.h"
+#include "base/macros.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/string_util.h"
 #include "tools/gn/err.h"
diff --git a/tools/gn/tool.h b/tools/gn/tool.h
index b9575bc..ce94546 100644
--- a/tools/gn/tool.h
+++ b/tools/gn/tool.h
@@ -7,8 +7,8 @@
 
 #include <string>
 
-#include "base/basictypes.h"
 #include "base/logging.h"
+#include "base/macros.h"
 #include "tools/gn/substitution_list.h"
 #include "tools/gn/substitution_pattern.h"
 
diff --git a/tools/gn/trace.h b/tools/gn/trace.h
index a1be63a..384907b 100644
--- a/tools/gn/trace.h
+++ b/tools/gn/trace.h
@@ -7,10 +7,9 @@
 
 #include <string>
 
-#include "base/basictypes.h"
 #include "base/command_line.h"
 #include "base/files/file_path.h"
-#include "base/memory/scoped_ptr.h"
+#include "base/macros.h"
 #include "base/threading/platform_thread.h"
 #include "base/time/time.h"
 
diff --git a/tools/gn/value.cc b/tools/gn/value.cc
index 1a4215c..32a96ff 100644
--- a/tools/gn/value.cc
+++ b/tools/gn/value.cc
@@ -29,7 +29,7 @@
       origin_(origin) {
 }
 
-Value::Value(const ParseNode* origin, int64 int_val)
+Value::Value(const ParseNode* origin, int64_t int_val)
     : type_(INTEGER),
       boolean_value_(false),
       int_value_(int_val),
diff --git a/tools/gn/value.h b/tools/gn/value.h
index 00e1f7ab..44fba4ad 100644
--- a/tools/gn/value.h
+++ b/tools/gn/value.h
@@ -5,12 +5,12 @@
 #ifndef TOOLS_GN_VALUE_H_
 #define TOOLS_GN_VALUE_H_
 
+#include <stdint.h>
 #include <map>
 
-#include "base/basictypes.h"
 #include "base/logging.h"
+#include "base/macros.h"
 #include "base/memory/scoped_ptr.h"
-#include "base/strings/string_piece.h"
 #include "tools/gn/err.h"
 
 class ParseNode;
@@ -31,7 +31,7 @@
   Value();
   Value(const ParseNode* origin, Type t);
   Value(const ParseNode* origin, bool bool_val);
-  Value(const ParseNode* origin, int64 int_val);
+  Value(const ParseNode* origin, int64_t int_val);
   Value(const ParseNode* origin, std::string str_val);
   Value(const ParseNode* origin, const char* str_val);
   // Values "shouldn't" have null scopes when type == Scope, so be sure to
@@ -64,11 +64,11 @@
     return boolean_value_;
   }
 
-  int64& int_value() {
+  int64_t& int_value() {
     DCHECK(type_ == INTEGER);
     return int_value_;
   }
-  const int64& int_value() const {
+  const int64_t& int_value() const {
     DCHECK(type_ == INTEGER);
     return int_value_;
   }
@@ -122,7 +122,7 @@
   Type type_;
   std::string string_value_;
   bool boolean_value_;
-  int64 int_value_;
+  int64_t int_value_;
   std::vector<Value> list_value_;
   scoped_ptr<Scope> scope_value_;
 
diff --git a/tools/gn/visibility.h b/tools/gn/visibility.h
index 2e1b680..d6d7f1ff 100644
--- a/tools/gn/visibility.h
+++ b/tools/gn/visibility.h
@@ -7,8 +7,7 @@
 
 #include <vector>
 
-#include "base/basictypes.h"
-#include "base/strings/string_piece.h"
+#include "base/macros.h"
 #include "tools/gn/label_pattern.h"
 #include "tools/gn/source_dir.h"