Add/remove header files (include what you spell)

Also, fixed a couple of ClangTidy warnings about unnecessary "const", missing "explicit" etc.

PiperOrigin-RevId: 546874243
Change-Id: I234dc8d99b6e3ef0a6e12252f11fe299b9c69926
diff --git a/lifetime_analysis/BUILD b/lifetime_analysis/BUILD
index bf935f0..54e8b0a 100644
--- a/lifetime_analysis/BUILD
+++ b/lifetime_analysis/BUILD
@@ -8,19 +8,23 @@
     hdrs = ["analyze.h"],
     deps = [
         ":lifetime_analysis",
+        ":lifetime_constraints",
         ":lifetime_lattice",
+        ":object",
         ":object_repository",
+        ":object_set",
+        ":points_to_map",
         ":template_placeholder_support",
         "@absl//absl/strings",
         "@absl//absl/strings:str_format",
         "//lifetime_annotations",
         "//lifetime_annotations:lifetime",
         "//lifetime_annotations:lifetime_substitutions",
-        "//lifetime_annotations:pointee_type",
         "//lifetime_annotations:type_lifetimes",
         "@llvm-project//clang:analysis",
         "@llvm-project//clang:ast",
         "@llvm-project//clang:ast_matchers",
+        "@llvm-project//clang:basic",
         "@llvm-project//clang:index",
         "@llvm-project//clang:lex",
         "@llvm-project//llvm:Support",
@@ -33,12 +37,13 @@
     hdrs = ["template_placeholder_support.h"],
     deps = [
         "@absl//absl/strings",
-        "@absl//absl/strings:str_format",
         "@llvm-project//clang:analysis",
         "@llvm-project//clang:ast",
         "@llvm-project//clang:ast_matchers",
+        "@llvm-project//clang:basic",
         "@llvm-project//clang:lex",
         "@llvm-project//clang:tooling",
+        "@llvm-project//clang:tooling_refactoring",
         "@llvm-project//clang:transformer",
         "@llvm-project//llvm:Support",
     ],
@@ -49,7 +54,6 @@
     srcs = ["builtin_lifetimes.cc"],
     hdrs = ["builtin_lifetimes.h"],
     deps = [
-        "@absl//absl/strings",
         "//lifetime_annotations",
         "//lifetime_annotations:lifetime",
         "//lifetime_annotations:type_lifetimes",
@@ -64,18 +68,17 @@
     srcs = ["lifetime_analysis.cc"],
     hdrs = ["lifetime_analysis.h"],
     deps = [
-        ":builtin_lifetimes",
+        ":lifetime_constraints",
         ":lifetime_lattice",
         ":object",
         ":object_repository",
         ":object_set",
-        ":pointer_compatibility",
         ":points_to_map",
-        "//lifetime_annotations:lifetime",
         "//lifetime_annotations:pointee_type",
         "//lifetime_annotations:type_lifetimes",
         "@llvm-project//clang:analysis",
         "@llvm-project//clang:ast",
+        "@llvm-project//clang:basic",
         "@llvm-project//llvm:Support",
     ],
 )
@@ -90,6 +93,8 @@
         "//lifetime_annotations:pointee_type",
         "//lifetime_annotations:type_lifetimes",
         "@llvm-project//clang:analysis",
+        "@llvm-project//clang:ast",
+        "@llvm-project//clang:basic",
         "@llvm-project//llvm:Support",
     ],
 )
@@ -117,7 +122,6 @@
         "//lifetime_annotations:lifetime",
         "//lifetime_annotations:type_lifetimes",
         "@llvm-project//clang:ast",
-        "@llvm-project//llvm:Support",
     ],
 )
 
@@ -128,7 +132,6 @@
     deps = [
         ":object",
         "@absl//absl/strings",
-        "@absl//absl/strings:str_format",
         "@llvm-project//llvm:Support",
     ],
 )
@@ -143,7 +146,7 @@
         "//lifetime_annotations",
         "//lifetime_annotations:lifetime",
         "//lifetime_annotations/test:run_on_code",
-        "@llvm-project//clang:analysis",
+        "@llvm-project//clang:ast",
     ],
 )
 
@@ -152,10 +155,13 @@
     srcs = ["points_to_map.cc"],
     hdrs = ["points_to_map.h"],
     deps = [
+        ":object",
         ":object_set",
         "@absl//absl/strings",
         "@absl//absl/strings:str_format",
+        "//lifetime_annotations:lifetime",
         "@llvm-project//clang:ast",
+        "@llvm-project//clang:basic",
         "@llvm-project//llvm:Support",
     ],
 )
@@ -164,8 +170,11 @@
     name = "points_to_map_test",
     srcs = ["points_to_map_test.cc"],
     deps = [
+        ":object",
+        ":object_set",
         ":points_to_map",
         "@com_google_googletest//:gtest_main",
+        "//lifetime_annotations",
         "//lifetime_annotations:lifetime",
         "//lifetime_annotations/test:run_on_code",
         "@llvm-project//clang:ast",
@@ -199,6 +208,7 @@
     deps = [
         "//lifetime_annotations:pointee_type",
         "@llvm-project//clang:ast",
+        "@llvm-project//llvm:Support",
     ],
 )
 
@@ -210,8 +220,8 @@
         "@com_google_googletest//:gtest_main",
         "//lifetime_annotations",
         "//lifetime_annotations/test:run_on_code",
-        "@llvm-project//clang:analysis",
         "@llvm-project//clang:ast",
         "@llvm-project//clang:ast_matchers",
+        "@llvm-project//llvm:Support",
     ],
 )
diff --git a/lifetime_analysis/analyze.cc b/lifetime_analysis/analyze.cc
index f39a694..fde9b74 100644
--- a/lifetime_analysis/analyze.cc
+++ b/lifetime_analysis/analyze.cc
@@ -5,6 +5,9 @@
 #include "lifetime_analysis/analyze.h"
 
 #include <algorithm>
+#include <cassert>
+#include <cstddef>
+#include <cstdint>
 #include <map>
 #include <memory>
 #include <optional>
@@ -16,15 +19,19 @@
 #include "absl/strings/str_cat.h"
 #include "absl/strings/str_format.h"
 #include "absl/strings/str_join.h"
-#include "absl/strings/str_replace.h"
+#include "absl/strings/string_view.h"
 #include "lifetime_analysis/lifetime_analysis.h"
+#include "lifetime_analysis/lifetime_constraints.h"
 #include "lifetime_analysis/lifetime_lattice.h"
+#include "lifetime_analysis/object.h"
 #include "lifetime_analysis/object_repository.h"
+#include "lifetime_analysis/object_set.h"
+#include "lifetime_analysis/points_to_map.h"
 #include "lifetime_analysis/template_placeholder_support.h"
 #include "lifetime_annotations/function_lifetimes.h"
 #include "lifetime_annotations/lifetime.h"
+#include "lifetime_annotations/lifetime_annotations.h"
 #include "lifetime_annotations/lifetime_substitutions.h"
-#include "lifetime_annotations/pointee_type.h"
 #include "lifetime_annotations/type_lifetimes.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/DeclCXX.h"
@@ -37,14 +44,22 @@
 #include "clang/Analysis/CFG.h"
 #include "clang/Analysis/FlowSensitive/ControlFlowContext.h"
 #include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
+#include "clang/Analysis/FlowSensitive/DataflowAnalysisContext.h"
 #include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
 #include "clang/Analysis/FlowSensitive/WatchedLiteralsSolver.h"
+#include "clang/Basic/DiagnosticIDs.h"
+#include "clang/Basic/LLVM.h"
+#include "clang/Basic/SourceLocation.h"
 #include "clang/Index/USRGeneration.h"
 #include "clang/Lex/Lexer.h"
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/DenseSet.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/Error.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/raw_ostream.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/analyze.h b/lifetime_analysis/analyze.h
index af4a5a9..6a39674 100644
--- a/lifetime_analysis/analyze.h
+++ b/lifetime_analysis/analyze.h
@@ -7,14 +7,12 @@
 
 #include <functional>
 #include <string>
-#include <variant>
 
 #include "lifetime_analysis/lifetime_analysis.h"
 #include "lifetime_annotations/function_lifetimes.h"
 #include "lifetime_annotations/lifetime_annotations.h"
 #include "clang/AST/Decl.h"
 #include "llvm/ADT/DenseMap.h"
-#include "llvm/ADT/SmallVector.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/builtin_lifetimes.cc b/lifetime_analysis/builtin_lifetimes.cc
index cc9ce0d..0607099 100644
--- a/lifetime_analysis/builtin_lifetimes.cc
+++ b/lifetime_analysis/builtin_lifetimes.cc
@@ -4,10 +4,10 @@
 
 #include "lifetime_analysis/builtin_lifetimes.h"
 
+#include <cassert>
 #include <optional>
 #include <string>
 
-#include "absl/strings/str_cat.h"
 #include "lifetime_annotations/function_lifetimes.h"
 #include "lifetime_annotations/lifetime.h"
 #include "lifetime_annotations/lifetime_annotations.h"
@@ -15,8 +15,11 @@
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/Type.h"
+#include "clang/AST/TypeLoc.h"
 #include "clang/Basic/Builtins.h"
+#include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Error.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/builtin_lifetimes.h b/lifetime_analysis/builtin_lifetimes.h
index cce2a3b..a4c1206 100644
--- a/lifetime_analysis/builtin_lifetimes.h
+++ b/lifetime_analysis/builtin_lifetimes.h
@@ -5,11 +5,8 @@
 #ifndef DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_BUILTIN_LIFETIMES_H_
 #define DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_BUILTIN_LIFETIMES_H_
 
-#include <functional>
-#include <string>
-#include <variant>
-
 #include "lifetime_annotations/function_lifetimes.h"
+#include "clang/AST/Decl.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/lifetime_analysis.cc b/lifetime_analysis/lifetime_analysis.cc
index 1a7acdf..7bc3e12 100644
--- a/lifetime_analysis/lifetime_analysis.cc
+++ b/lifetime_analysis/lifetime_analysis.cc
@@ -4,22 +4,21 @@
 
 #include "lifetime_analysis/lifetime_analysis.h"
 
-#include <iostream>
-#include <memory>
+#include <cassert>
+#include <cstddef>
 #include <optional>
 #include <string>
 #include <utility>
 #include <variant>
 #include <vector>
 
-#include "lifetime_analysis/builtin_lifetimes.h"
+#include "lifetime_analysis/lifetime_constraints.h"
+#include "lifetime_analysis/lifetime_lattice.h"
 #include "lifetime_analysis/object.h"
 #include "lifetime_analysis/object_repository.h"
 #include "lifetime_analysis/object_set.h"
-#include "lifetime_analysis/pointer_compatibility.h"
 #include "lifetime_analysis/points_to_map.h"
 #include "lifetime_annotations/function_lifetimes.h"
-#include "lifetime_annotations/lifetime.h"
 #include "lifetime_annotations/pointee_type.h"
 #include "lifetime_annotations/type_lifetimes.h"
 #include "clang/AST/Decl.h"
@@ -32,11 +31,13 @@
 #include "clang/AST/TemplateBase.h"
 #include "clang/AST/Type.h"
 #include "clang/Analysis/CFG.h"
-#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
-#include "llvm/ADT/ArrayRef.h"
+#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
+#include "clang/Basic/DiagnosticIDs.h"
+#include "clang/Basic/LLVM.h"
 #include "llvm/ADT/DenseMap.h"
-#include "llvm/Support/Error.h"
+#include "llvm/ADT/DenseSet.h"
 #include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/raw_ostream.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/lifetime_analysis.h b/lifetime_analysis/lifetime_analysis.h
index 67f4a7e..30314f7 100644
--- a/lifetime_analysis/lifetime_analysis.h
+++ b/lifetime_analysis/lifetime_analysis.h
@@ -7,20 +7,25 @@
 
 #include <functional>
 #include <string>
-#include <variant>
 
+#include "lifetime_analysis/lifetime_constraints.h"
 #include "lifetime_analysis/lifetime_lattice.h"
+#include "lifetime_analysis/object.h"
 #include "lifetime_analysis/object_repository.h"
+#include "lifetime_analysis/object_set.h"
 #include "lifetime_analysis/points_to_map.h"
 #include "lifetime_annotations/function_lifetimes.h"
-#include "lifetime_annotations/lifetime.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/Expr.h"
-#include "clang/AST/ExprCXX.h"
 #include "clang/AST/Type.h"
 #include "clang/Analysis/CFG.h"
-#include "llvm/Support/Error.h"
-#include "llvm/Support/raw_ostream.h"
+#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
+#include "clang/Analysis/FlowSensitive/DataflowEnvironment.h"
+#include "clang/Basic/Diagnostic.h"
+#include "clang/Basic/DiagnosticIDs.h"
+#include "clang/Basic/LLVM.h"
+#include "clang/Basic/SourceLocation.h"
+#include "llvm/ADT/DenseMap.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/lifetime_constraints.cc b/lifetime_analysis/lifetime_constraints.cc
index 11ca159..3e76e52 100644
--- a/lifetime_analysis/lifetime_constraints.cc
+++ b/lifetime_analysis/lifetime_constraints.cc
@@ -4,13 +4,22 @@
 
 #include "lifetime_analysis/lifetime_constraints.h"
 
-#include <llvm/ADT/DenseSet.h>
-
 #include <algorithm>
+#include <cassert>
+#include <cstddef>
+#include <optional>
+#include <vector>
 
 #include "lifetime_annotations/lifetime.h"
 #include "lifetime_annotations/lifetime_substitutions.h"
 #include "lifetime_annotations/pointee_type.h"
+#include "lifetime_annotations/type_lifetimes.h"
+#include "clang/AST/Type.h"
+#include "clang/Analysis/FlowSensitive/DataflowLattice.h"
+#include "clang/Basic/LLVM.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/DenseSet.h"
+#include "llvm/Support/Error.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/lifetime_constraints.h b/lifetime_analysis/lifetime_constraints.h
index a6569de..55f2623 100644
--- a/lifetime_analysis/lifetime_constraints.h
+++ b/lifetime_analysis/lifetime_constraints.h
@@ -5,10 +5,13 @@
 #ifndef CRUBIT_LIFETIME_ANALYSIS_LIFETIME_CONSTRAINTS_H_
 #define CRUBIT_LIFETIME_ANALYSIS_LIFETIME_CONSTRAINTS_H_
 
+#include <utility>
+
 #include "lifetime_annotations/function_lifetimes.h"
 #include "lifetime_annotations/lifetime.h"
 #include "clang/Analysis/FlowSensitive/DataflowLattice.h"
 #include "llvm/ADT/DenseSet.h"
+#include "llvm/Support/Error.h"
 
 namespace clang {
 namespace tidy {
@@ -17,7 +20,7 @@
 class LifetimeConstraints {
  public:
   // Creates empty constraints.
-  LifetimeConstraints() {}
+  LifetimeConstraints() = default;
 
   // Returns the constraints on `callable` that allow `replacement_callable` to
   // be used where `callable` is requested.
diff --git a/lifetime_analysis/lifetime_lattice.cc b/lifetime_analysis/lifetime_lattice.cc
index 779dad1..6dc3343 100644
--- a/lifetime_analysis/lifetime_lattice.cc
+++ b/lifetime_analysis/lifetime_lattice.cc
@@ -4,16 +4,14 @@
 
 #include "lifetime_analysis/lifetime_lattice.h"
 
-#include <assert.h>
-
 #include <string>
-#include <tuple>
 #include <utility>
 
 #include "lifetime_analysis/lifetime_constraints.h"
 #include "lifetime_analysis/object_set.h"
 #include "lifetime_analysis/points_to_map.h"
 #include "clang/Analysis/FlowSensitive/DataflowLattice.h"
+#include "llvm/ADT/StringRef.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/lifetime_lattice.h b/lifetime_analysis/lifetime_lattice.h
index bdfa7bf..f02c3c5 100644
--- a/lifetime_analysis/lifetime_lattice.h
+++ b/lifetime_analysis/lifetime_lattice.h
@@ -6,13 +6,13 @@
 #define DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_LIFETIME_LATTICE_H_
 
 #include <string>
+#include <tuple>
 #include <utility>
 #include <variant>
 
 #include "lifetime_analysis/lifetime_constraints.h"
 #include "lifetime_analysis/object_set.h"
 #include "lifetime_analysis/points_to_map.h"
-#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
 #include "clang/Analysis/FlowSensitive/DataflowLattice.h"
 #include "llvm/ADT/StringRef.h"
 
diff --git a/lifetime_analysis/object.cc b/lifetime_analysis/object.cc
index 19ec321..10a2ed6 100644
--- a/lifetime_analysis/object.cc
+++ b/lifetime_analysis/object.cc
@@ -4,12 +4,17 @@
 
 #include "lifetime_analysis/object.h"
 
+#include <cassert>
+#include <optional>
+#include <ostream>
 #include <string>
+#include <utility>
 
 #include "absl/strings/str_cat.h"
 #include "absl/strings/str_format.h"
+#include "lifetime_annotations/function_lifetimes.h"
 #include "lifetime_annotations/lifetime.h"
-#include "clang/AST/Decl.h"
+#include "clang/AST/Type.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/object.h b/lifetime_analysis/object.h
index 51eb003..958e526 100644
--- a/lifetime_analysis/object.h
+++ b/lifetime_analysis/object.h
@@ -5,15 +5,13 @@
 #ifndef DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_OBJECT_H_
 #define DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_OBJECT_H_
 
-#include <atomic>
-#include <functional>
+#include <optional>
+#include <ostream>
 #include <string>
 
 #include "lifetime_annotations/function_lifetimes.h"
 #include "lifetime_annotations/lifetime.h"
-#include "clang/AST/Decl.h"
 #include "clang/AST/Type.h"
-#include "llvm/ADT/Hashing.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/object_repository.cc b/lifetime_analysis/object_repository.cc
index f94f623..bb88d92 100644
--- a/lifetime_analysis/object_repository.cc
+++ b/lifetime_analysis/object_repository.cc
@@ -4,15 +4,19 @@
 
 #include "lifetime_analysis/object_repository.h"
 
-#include <functional>
+#include <cassert>
+#include <cstddef>
 #include <optional>
 #include <string>
 #include <utility>
+#include <variant>
 #include <vector>
 
 #include "absl/strings/str_cat.h"
 #include "lifetime_analysis/builtin_lifetimes.h"
 #include "lifetime_analysis/object.h"
+#include "lifetime_analysis/object_set.h"
+#include "lifetime_analysis/points_to_map.h"
 #include "lifetime_annotations/function_lifetimes.h"
 #include "lifetime_annotations/lifetime.h"
 #include "lifetime_annotations/pointee_type.h"
@@ -21,12 +25,18 @@
 #include "clang/AST/DeclCXX.h"
 #include "clang/AST/Expr.h"
 #include "clang/AST/ExprCXX.h"
+#include "clang/AST/ExprObjC.h"
 #include "clang/AST/RecursiveASTVisitor.h"
+#include "clang/AST/Stmt.h"
 #include "clang/AST/Type.h"
 #include "clang/Basic/LLVM.h"
+#include "clang/Basic/Specifiers.h"
+#include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Support/Error.h"
 #include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/raw_ostream.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/object_repository.h b/lifetime_analysis/object_repository.h
index c73c040..53488fe 100644
--- a/lifetime_analysis/object_repository.h
+++ b/lifetime_analysis/object_repository.h
@@ -5,20 +5,24 @@
 #ifndef DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_OBJECT_REPOSITORY_H_
 #define DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_OBJECT_REPOSITORY_H_
 
-#include <functional>
+#include <cstddef>
 #include <optional>
 #include <string>
-#include <variant>
+#include <utility>
 
 #include "lifetime_analysis/object.h"
 #include "lifetime_analysis/object_set.h"
 #include "lifetime_analysis/points_to_map.h"
+#include "lifetime_annotations/function_lifetimes.h"
+#include "lifetime_annotations/lifetime.h"
 #include "lifetime_annotations/type_lifetimes.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/Expr.h"
 #include "clang/AST/ExprCXX.h"
+#include "clang/AST/Type.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Support/Allocator.h"
+#include "llvm/Support/Error.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/object_set.cc b/lifetime_analysis/object_set.cc
index 18582be..ab83ef4 100644
--- a/lifetime_analysis/object_set.cc
+++ b/lifetime_analysis/object_set.cc
@@ -7,8 +7,8 @@
 #include <string>
 #include <vector>
 
-#include "absl/strings/str_format.h"
 #include "absl/strings/str_join.h"
+#include "lifetime_analysis/object.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/object_set.h b/lifetime_analysis/object_set.h
index 3da954f..61d3922 100644
--- a/lifetime_analysis/object_set.h
+++ b/lifetime_analysis/object_set.h
@@ -5,11 +5,12 @@
 #ifndef DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_OBJECT_SET_H_
 #define DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_OBJECT_SET_H_
 
+#include <cstddef>
 #include <initializer_list>
+#include <ostream>
 #include <string>
 
 #include "lifetime_analysis/object.h"
-#include "llvm/ADT/STLExtras.h"
 #include "llvm/ADT/SmallSet.h"
 
 namespace clang {
diff --git a/lifetime_analysis/object_set_test.cc b/lifetime_analysis/object_set_test.cc
index cc664f5..a7ec0c0 100644
--- a/lifetime_analysis/object_set_test.cc
+++ b/lifetime_analysis/object_set_test.cc
@@ -4,13 +4,15 @@
 
 #include "lifetime_analysis/object_set.h"
 
+#include <optional>
+
 #include "gmock/gmock.h"
 #include "gtest/gtest.h"
 #include "lifetime_analysis/object.h"
 #include "lifetime_annotations/lifetime.h"
 #include "lifetime_annotations/lifetime_annotations.h"
 #include "lifetime_annotations/test/run_on_code.h"
-#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
+#include "clang/AST/ASTContext.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/pointer_compatibility.cc b/lifetime_analysis/pointer_compatibility.cc
index d2001b9..3d7184e 100644
--- a/lifetime_analysis/pointer_compatibility.cc
+++ b/lifetime_analysis/pointer_compatibility.cc
@@ -4,9 +4,13 @@
 
 #include "lifetime_analysis/pointer_compatibility.h"
 
+#include <cassert>
+
 #include "lifetime_annotations/pointee_type.h"
 #include "clang/AST/ASTContext.h"
 #include "clang/AST/DeclCXX.h"
+#include "clang/AST/Type.h"
+#include "llvm/Support/ErrorHandling.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/pointer_compatibility_test.cc b/lifetime_analysis/pointer_compatibility_test.cc
index f24cefd..99c3140 100644
--- a/lifetime_analysis/pointer_compatibility_test.cc
+++ b/lifetime_analysis/pointer_compatibility_test.cc
@@ -6,13 +6,14 @@
 
 #include <functional>
 
-#include "gmock/gmock.h"
 #include "gtest/gtest.h"
 #include "lifetime_annotations/lifetime_annotations.h"
 #include "lifetime_annotations/test/run_on_code.h"
 #include "clang/AST/ASTContext.h"
+#include "clang/AST/Type.h"
 #include "clang/ASTMatchers/ASTMatchFinder.h"
-#include "clang/Analysis/FlowSensitive/DataflowAnalysis.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
+#include "llvm/ADT/StringRef.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/points_to_map.cc b/lifetime_analysis/points_to_map.cc
index 905ab7e..c6f648b 100644
--- a/lifetime_analysis/points_to_map.cc
+++ b/lifetime_analysis/points_to_map.cc
@@ -4,13 +4,20 @@
 
 #include "lifetime_analysis/points_to_map.h"
 
+#include <cassert>
 #include <string>
 #include <utility>
 #include <vector>
 
 #include "absl/strings/str_format.h"
 #include "absl/strings/str_join.h"
+#include "lifetime_analysis/object.h"
+#include "lifetime_analysis/object_set.h"
+#include "lifetime_annotations/lifetime.h"
 #include "clang/AST/Expr.h"
+#include "clang/Basic/LLVM.h"
+#include "llvm/Support/ErrorHandling.h"
+#include "llvm/Support/raw_ostream.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/points_to_map.h b/lifetime_analysis/points_to_map.h
index 5fe7fd8..819b593 100644
--- a/lifetime_analysis/points_to_map.h
+++ b/lifetime_analysis/points_to_map.h
@@ -6,8 +6,11 @@
 #define DEVTOOLS_RUST_CC_INTEROP_LIFETIME_ANALYSIS_POINTS_TO_MAP_H_
 
 #include <string>
+#include <vector>
 
+#include "lifetime_analysis/object.h"
 #include "lifetime_analysis/object_set.h"
+#include "lifetime_annotations/lifetime.h"
 #include "clang/AST/Expr.h"
 #include "llvm/ADT/DenseMap.h"
 
diff --git a/lifetime_analysis/points_to_map_test.cc b/lifetime_analysis/points_to_map_test.cc
index ea30d91..7d0a939 100644
--- a/lifetime_analysis/points_to_map_test.cc
+++ b/lifetime_analysis/points_to_map_test.cc
@@ -4,12 +4,18 @@
 
 #include "lifetime_analysis/points_to_map.h"
 
-#include "gmock/gmock.h"
+#include <optional>
+
 #include "gtest/gtest.h"
+#include "lifetime_analysis/object.h"
+#include "lifetime_analysis/object_set.h"
 #include "lifetime_annotations/lifetime.h"
+#include "lifetime_annotations/lifetime_annotations.h"
 #include "lifetime_annotations/test/run_on_code.h"
 #include "clang/AST/ASTContext.h"
+#include "clang/AST/Expr.h"
 #include "clang/ASTMatchers/ASTMatchFinder.h"
+#include "clang/ASTMatchers/ASTMatchers.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/template_placeholder_support.cc b/lifetime_analysis/template_placeholder_support.cc
index 0daaf7a..fe89a43 100644
--- a/lifetime_analysis/template_placeholder_support.cc
+++ b/lifetime_analysis/template_placeholder_support.cc
@@ -5,27 +5,35 @@
 #include "lifetime_analysis/template_placeholder_support.h"
 
 #include <functional>
+#include <iterator>
 #include <memory>
 #include <string>
-#include <string_view>
 #include <utility>
 #include <vector>
 
 #include "absl/strings/str_cat.h"
-#include "absl/strings/str_format.h"
 #include "absl/strings/str_join.h"
-#include "absl/strings/str_replace.h"
+#include "clang/AST/Decl.h"
 #include "clang/AST/DeclTemplate.h"
 #include "clang/ASTMatchers/ASTMatchFinder.h"
 #include "clang/ASTMatchers/ASTMatchers.h"
 #include "clang/Analysis/CFG.h"
+#include "clang/Basic/SourceLocation.h"
 #include "clang/Lex/Lexer.h"
+#include "clang/Tooling/Refactoring/AtomicChange.h"
 #include "clang/Tooling/Tooling.h"
+#include "clang/Tooling/Transformer/RangeSelector.h"
+#include "clang/Tooling/Transformer/RewriteRule.h"
 #include "clang/Tooling/Transformer/Stencil.h"
 #include "clang/Tooling/Transformer/Transformer.h"
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/DenseSet.h"
+#include "llvm/ADT/IntrusiveRefCntPtr.h"
+#include "llvm/ADT/SmallVector.h"
 #include "llvm/Support/Error.h"
 #include "llvm/Support/VirtualFileSystem.h"
+#include "llvm/Support/raw_ostream.h"
 
 namespace clang {
 namespace tidy {
diff --git a/lifetime_analysis/template_placeholder_support.h b/lifetime_analysis/template_placeholder_support.h
index 29f0a85..ae34a74 100644
--- a/lifetime_analysis/template_placeholder_support.h
+++ b/lifetime_analysis/template_placeholder_support.h
@@ -49,8 +49,7 @@
 // of the original filesystem that's being used by `original_context`.
 void RunToolOnCodeWithOverlay(
     clang::ASTContext& original_context, const std::string& filename,
-    const std::string& code,
-    const std::function<void(clang::ASTContext&)> operation);
+    const std::string& code, std::function<void(clang::ASTContext&)> operation);
 
 }  // namespace lifetimes
 }  // namespace tidy