[clang] [clang][ssaf] Remove `BuildNamespaceKind` (PR #207313)

Aviral Goel via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 2 21:29:16 PDT 2026


https://github.com/aviralg updated https://github.com/llvm/llvm-project/pull/207313

>From 2e35826ac1bd8214168e0e39a51fe1ff181befb5 Mon Sep 17 00:00:00 2001
From: Aviral Goel <goel.aviral at gmail.com>
Date: Thu, 2 Jul 2026 20:40:16 -0700
Subject: [PATCH] Remove BuildNamespaceKind

---
 .../Core/Model/BuildNamespace.h               |  33 +-----
 .../Core/Model/PrivateFieldNames.def          |   1 -
 .../Core/Support/FormatProviders.h            |   7 --
 .../Core/Model/BuildNamespace.cpp             |  27 +----
 .../Core/ModelStringConversions.h             |  36 ------
 .../JSONFormat/JSONFormatImpl.cpp             |  40 +------
 .../Serialization/JSONFormat/JSONFormatImpl.h |  13 ---
 .../JSONFormat/MultiArchStaticLibrary.cpp     |  12 --
 .../JSONFormat/StaticLibrary.cpp              |  10 --
 .../TUSummaryExtractorFrontendAction.cpp      |   4 +-
 .../Inputs/tu-summary-bad-array.json          |   1 -
 .../Inputs/tu-summary-bad-summary.json        |   1 -
 .../PointerFlow/Inputs/tu-summary-no-key.json |   1 -
 .../PointerFlow/Inputs/tu-summary.json        |   1 -
 .../Inputs/wpa-result-bad-edges.json          |   1 -
 .../Inputs/wpa-result-odd-count.json          |   1 -
 .../PointerFlow/Inputs/wpa-result.json        |   3 -
 .../Inputs/tu-summary-bad-element.json        |   1 -
 .../Inputs/tu-summary-bad-ptr-level.json      |   1 -
 .../Inputs/tu-summary-no-key.json             |   1 -
 .../UnsafeBufferUsage/Inputs/tu-summary.json  |   1 -
 .../Inputs/wpa-result-bad-epls.json           |   1 -
 .../Inputs/wpa-result-odd-count.json          |   1 -
 .../UnsafeBufferUsage/Inputs/wpa-result.json  |   3 -
 .../ssaf-analyzer/Inputs/lu-tags-only.json    |   2 -
 .../Scalable/ssaf-analyzer/Inputs/lu.json     |   4 -
 .../Scalable/ssaf-analyzer/Outputs/all.json   |   3 -
 .../Scalable/ssaf-analyzer/Outputs/both.json  |   3 -
 .../Scalable/ssaf-analyzer/Outputs/pairs.json |   3 -
 .../Scalable/ssaf-analyzer/Outputs/tags.json  |   3 -
 .../Artifact/Inputs/rt-lu-empty.json          |   1 -
 .../rt-multi-arch-shared-library-empty.json   |   1 -
 ...rt-multi-arch-shared-library-nonempty.json |   5 -
 .../rt-multi-arch-static-library-empty.json   |   2 -
 ...rt-multi-arch-static-library-nonempty.json |   4 -
 .../Inputs/rt-static-library-empty.json       |   1 -
 .../Artifact/Inputs/rt-tu-empty.json          |   1 -
 .../invalid-direct-callee-element.json        |   1 -
 .../CallGraph/invalid-direct-callee-id.json   |   1 -
 .../Inputs/CallGraph/missing-def-col.json     |   1 -
 .../Inputs/CallGraph/missing-def-file.json    |   1 -
 .../Inputs/CallGraph/missing-def-line.json    |   1 -
 .../Inputs/CallGraph/missing-def.json         |   1 -
 .../CallGraph/missing-direct-callees.json     |   1 -
 .../Inputs/CallGraph/missing-pretty-name.json |   1 -
 .../CallGraph/missing-virtual-callees.json    |   1 -
 .../Inputs/data-element-not-object.json       |   3 +-
 .../Inputs/data-entry-missing-data.json       |   3 +-
 .../data-entry-missing-summary-name.json      |   3 +-
 .../LUSummary/Inputs/data-not-array.json      |   3 +-
 .../duplicate-entity-id-in-data-map.json      |   5 +-
 .../LUSummary/Inputs/duplicate-entity.json    |   7 +-
 .../Inputs/duplicate-summary-name.json        |   3 +-
 .../entity-data-element-not-object.json       |   3 +-
 .../Inputs/entity-data-missing-entity-id.json |   3 +-
 .../entity-data-missing-entity-summary.json   |   3 +-
 .../Inputs/entity-id-not-uint64.json          |   3 +-
 .../Inputs/entity-name-missing-namespace.json |   3 +-
 .../Inputs/entity-name-missing-suffix.json    |   4 +-
 .../Inputs/entity-name-missing-usr.json       |   5 +-
 .../Inputs/id-table-element-not-object.json   |   3 +-
 .../Inputs/id-table-entry-id-not-uint64.json  |   5 +-
 .../Inputs/id-table-entry-missing-id.json     |   5 +-
 .../Inputs/id-table-entry-missing-name.json   |   3 +-
 .../LUSummary/Inputs/id-table-not-array.json  |   3 +-
 .../Inputs/linkage-table-duplicate-id.json    |   5 +-
 .../linkage-table-element-not-object.json     |   3 +-
 .../linkage-table-entry-id-not-uint64.json    |   3 +-
 ...kage-table-entry-linkage-invalid-type.json |   3 +-
 ...kage-table-entry-linkage-missing-type.json |   3 +-
 .../linkage-table-entry-missing-id.json       |   3 +-
 .../linkage-table-entry-missing-linkage.json  |   3 +-
 .../Inputs/linkage-table-extra-id.json        |   3 +-
 .../Inputs/linkage-table-missing-id.json      |   5 +-
 .../Inputs/linkage-table-not-array.json       |   3 +-
 .../lu-namespace-element-invalid-kind.json    |  13 ---
 .../lu-namespace-element-missing-kind.json    |  12 --
 .../lu-namespace-element-missing-name.json    |   4 +-
 .../Inputs/lu-namespace-not-array.json        |   3 +-
 .../LUSummary/Inputs/mismatched-type.json     |   1 -
 .../LUSummary/Inputs/missing-data.json        |   3 +-
 .../LUSummary/Inputs/missing-id-table.json    |   3 +-
 .../Inputs/missing-linkage-table.json         |   3 +-
 .../Inputs/missing-target-triple.json         |   1 -
 .../LUSummary/Inputs/missing-type.json        |   1 -
 .../namespace-element-invalid-kind.json       |  34 ------
 .../namespace-element-missing-kind.json       |  33 ------
 .../namespace-element-missing-name.json       |   7 +-
 .../Inputs/namespace-element-not-object.json  |   3 +-
 .../Inputs/not-normalized-target-triple.json  |   1 -
 .../Inputs/pairs-element-not-object.json      |   3 +-
 .../Inputs/pairs-invalid-first-field.json     |   3 +-
 .../pairs-invalid-pairs-field-type.json       |   3 +-
 .../Inputs/pairs-invalid-second-field.json    |   3 +-
 .../Inputs/pairs-missing-first-field.json     |   3 +-
 .../Inputs/pairs-missing-pairs-field.json     |   3 +-
 .../Inputs/pairs-missing-second-field.json    |   3 +-
 .../read-entity-summary-no-format-info.json   |   3 +-
 .../LUSummary/Inputs/rt-empty-data-entry.json |   1 -
 .../LUSummary/Inputs/rt-empty-namespace.json  |   1 -
 .../LUSummary/Inputs/rt-linkage-external.json |   2 -
 .../LUSummary/Inputs/rt-linkage-internal.json |   2 -
 .../LUSummary/Inputs/rt-linkage-multiple.json |   4 -
 .../LUSummary/Inputs/rt-linkage-none.json     |   2 -
 .../rt-multiple-namespace-elements.json       |   3 -
 .../Inputs/rt-single-namespace-element.json   |   1 -
 .../Inputs/rt-two-summary-types.json          |   6 -
 .../ssaf-format/LUSummary/id-table.test       |  25 -----
 .../ssaf-format/LUSummary/permissions.test    |   2 +-
 .../ssaf-format/LUSummary/top-level.test      |  19 ----
 .../Inputs/duplicate-target-triple.json       |   3 -
 .../Inputs/member-empty-lu-namespace.json     |   1 -
 .../Inputs/member-inner-error.json            |   1 -
 .../Inputs/member-mismatched-type.json        |   2 -
 .../Inputs/member-missing-type.json           |   2 -
 .../Inputs/member-namespace-mismatch.json     |   2 -
 .../Inputs/member-not-object.json             |   1 -
 .../Inputs/members-not-array.json             |   1 -
 .../Inputs/mismatched-type.json               |   1 -
 .../Inputs/missing-members.json               |   1 -
 .../Inputs/missing-type.json                  |   1 -
 .../Inputs/rt-empty-members.json              |   1 -
 .../Inputs/rt-multiple-members.json           |   3 -
 .../Inputs/rt-nonempty-members.json           |   5 -
 .../Inputs/rt-single-member.json              |   2 -
 .../Inputs/rt-three-members.json              |   4 -
 .../Inputs/unsorted-members-input.json        |   3 -
 .../Inputs/unsorted-three-members-input.json  |   4 -
 .../Inputs/duplicate-target-triple.json       |   3 -
 .../Inputs/member-inner-error.json            |   1 -
 .../Inputs/member-mismatched-type.json        |   2 -
 .../Inputs/member-missing-type.json           |   2 -
 .../Inputs/member-namespace-mismatch.json     |   2 -
 .../Inputs/member-not-object.json             |   1 -
 .../Inputs/members-not-array.json             |   1 -
 .../Inputs/mismatched-type.json               |   1 -
 .../Inputs/missing-members.json               |   1 -
 .../Inputs/missing-type.json                  |   1 -
 .../Inputs/namespace-wrong-kind.json          |   8 --
 .../Inputs/rt-empty-members.json              |   1 -
 .../Inputs/rt-multiple-members.json           |   3 -
 .../Inputs/rt-nonempty-members.json           |   5 -
 .../Inputs/rt-single-member.json              |   2 -
 .../Inputs/rt-three-members.json              |   4 -
 .../Inputs/unsorted-members-input.json        |   3 -
 .../Inputs/unsorted-three-members-input.json  |   4 -
 .../MultiArchStaticLibrary/top-level.test     |   6 -
 .../Inputs/duplicate-member.json              |   3 -
 .../Inputs/member-inner-error.json            |   1 -
 .../Inputs/member-mismatched-type.json        |   1 -
 .../Inputs/member-missing-type.json           |   2 -
 .../Inputs/member-not-object.json             |   1 -
 .../Inputs/member-triple-mismatch.json        |   2 -
 .../Inputs/members-not-array.json             |   1 -
 .../StaticLibrary/Inputs/mismatched-type.json |   1 -
 .../StaticLibrary/Inputs/missing-members.json |   1 -
 .../Inputs/missing-target-triple.json         |   1 -
 .../StaticLibrary/Inputs/missing-type.json    |   1 -
 .../Inputs/namespace-invalid-kind.json        |   9 --
 .../Inputs/namespace-missing-kind.json        |   8 --
 .../Inputs/namespace-missing-name.json        |   4 +-
 .../Inputs/namespace-wrong-kind.json          |   9 --
 .../Inputs/not-normalized-target-triple.json  |   1 -
 .../StaticLibrary/Inputs/rt-empty.json        |   1 -
 .../Inputs/rt-multiple-members.json           |   4 -
 .../Inputs/rt-single-member.json              |   2 -
 .../Inputs/unsorted-members-input.json        |   4 -
 .../ssaf-format/StaticLibrary/top-level.test  |  23 +---
 .../Inputs/data-element-not-object.json       |   1 -
 .../Inputs/data-entry-missing-data.json       |   1 -
 .../data-entry-missing-summary-name.json      |   1 -
 .../TUSummary/Inputs/data-not-array.json      |   1 -
 .../duplicate-entity-id-in-data-map.json      |   1 -
 .../TUSummary/Inputs/duplicate-entity.json    |   5 +-
 .../Inputs/duplicate-summary-name.json        |   1 -
 .../entity-data-element-not-object.json       |   1 -
 .../Inputs/entity-data-missing-entity-id.json |   1 -
 .../entity-data-missing-entity-summary.json   |   1 -
 .../Inputs/entity-id-not-uint64.json          |   1 -
 .../Inputs/entity-name-missing-suffix.json    |   3 +-
 .../Inputs/entity-name-missing-usr.json       |   3 +-
 .../Inputs/id-table-element-not-object.json   |   1 -
 .../Inputs/id-table-entry-id-not-uint64.json  |   1 -
 .../Inputs/id-table-entry-missing-id.json     |   1 -
 .../Inputs/id-table-entry-missing-name.json   |   3 +-
 .../TUSummary/Inputs/id-table-not-array.json  |   1 -
 .../TUSummary/Inputs/invalid-kind.json        |  11 --
 .../Inputs/linkage-table-duplicate-id.json    |   5 +-
 .../linkage-table-element-not-object.json     |   1 -
 .../linkage-table-entry-id-not-uint64.json    |   3 +-
 ...kage-table-entry-linkage-invalid-type.json |   3 +-
 ...kage-table-entry-linkage-missing-type.json |   1 -
 .../linkage-table-entry-missing-id.json       |   3 +-
 .../linkage-table-entry-missing-linkage.json  |   1 -
 .../Inputs/linkage-table-extra-id.json        |   3 +-
 .../Inputs/linkage-table-missing-id.json      |   1 -
 .../Inputs/linkage-table-not-array.json       |   1 -
 .../TUSummary/Inputs/mismatched-type.json     |   1 -
 .../TUSummary/Inputs/missing-data.json        |   1 -
 .../TUSummary/Inputs/missing-id-table.json    |   1 -
 .../TUSummary/Inputs/missing-kind.json        |  10 --
 .../Inputs/missing-linkage-table.json         |   1 -
 .../TUSummary/Inputs/missing-name.json        |   4 +-
 .../Inputs/missing-target-triple.json         |   1 -
 .../TUSummary/Inputs/missing-type.json        |   1 -
 .../Inputs/not-normalized-target-triple.json  |   1 -
 .../Inputs/pairs-element-not-object.json      |   1 -
 .../Inputs/pairs-invalid-first-field.json     |   1 -
 .../pairs-invalid-pairs-field-type.json       |   1 -
 .../Inputs/pairs-invalid-second-field.json    |   1 -
 .../Inputs/pairs-missing-first-field.json     |   1 -
 .../Inputs/pairs-missing-pairs-field.json     |   1 -
 .../Inputs/pairs-missing-second-field.json    |   1 -
 .../read-entity-summary-no-format-info.json   |   1 -
 .../TUSummary/Inputs/rt-empty-data-entry.json |   1 -
 .../TUSummary/Inputs/rt-empty.json            |   1 -
 .../TUSummary/Inputs/rt-link-unit.json        |   1 -
 .../TUSummary/Inputs/rt-linkage-external.json |   1 -
 .../TUSummary/Inputs/rt-linkage-internal.json |   1 -
 .../TUSummary/Inputs/rt-linkage-multiple.json |   1 -
 .../TUSummary/Inputs/rt-linkage-none.json     |   1 -
 .../Inputs/rt-two-summary-types.json          |   1 -
 .../ssaf-format/TUSummary/top-level.test      |  21 ----
 .../Inputs/pairs-result-bad-count.json        |   2 -
 .../Inputs/pairs-result-entry-not-object.json |   1 -
 .../pairs-result-missing-entity-id.json       |   1 -
 .../WPASuite/Inputs/rt-all-results.json       |   3 -
 .../WPASuite/Inputs/rt-multiple-results.json  |   1 -
 .../Scalable/ssaf-linker/Inputs/tu-1.json     |   1 -
 .../Scalable/ssaf-linker/Inputs/tu-2.json     |   1 -
 .../Scalable/ssaf-linker/Inputs/tu-empty.json |   1 -
 .../Inputs/tu-invalid-entity-id-multikey.json |   1 -
 .../Inputs/tu-invalid-entity-id-ref.json      |   1 -
 .../Inputs/tu-invalid-entity-id-value.json    |   1 -
 .../ssaf-linker/Inputs/tu-missing-fields.json |   1 -
 .../Scalable/ssaf-linker/Outputs/lu-1+2.json  |  20 ----
 .../Scalable/ssaf-linker/Outputs/lu-1.json    |  11 --
 .../Scalable/ssaf-linker/Outputs/lu-2.json    |  11 --
 .../ssaf-linker/Outputs/lu-empty.json         |   1 -
 .../Scalable/ssaf-linker/linking-errors.test  |   2 +-
 clang/tools/clang-ssaf-linker/SSAFLinker.cpp  |   3 +-
 .../CallGraph/CallGraphExtractorTest.cpp      |   5 +-
 .../Analyses/PointerFlow/PointerFlowTest.cpp  |   3 +-
 .../PointerFlow/PointerFlowWPATest.cpp        |   6 +-
 .../UnsafeBufferUsageTest.cpp                 |   3 +-
 .../UnsafeBufferUsageWPATest.cpp              |   6 +-
 .../BuildNamespaceTest.cpp                    | 103 ++++--------------
 .../EntityIdTableTest.cpp                     |   4 +-
 .../EntityLinkerTest.cpp                      |  54 ++++-----
 .../ScalableStaticAnalysis/EntityNameTest.cpp |  41 +++----
 .../ScalableStaticAnalysis/LUSummaryTest.cpp  |   2 +-
 .../ModelStringConversionsTest.cpp            |  54 ---------
 .../Registries/MockSerializationFormat.cpp    |   2 +-
 .../SummaryExtractorRegistryTest.cpp          |   5 +-
 .../JSONFormatTest/LUSummaryTest.cpp          |  19 ++--
 .../JSONFormatTest/TUSummaryTest.cpp          |  25 ++---
 .../SummaryData/SummaryDataTest.cpp           |   6 +-
 .../TUSummaryBuilderTest.cpp                  |   5 +-
 .../AnalysisDriverTest.cpp                    |   6 +-
 .../UnsafeBufferReachableAnalysisTest.cpp     |   6 +-
 260 files changed, 174 insertions(+), 1093 deletions(-)
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/namespace-wrong-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-invalid-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-wrong-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
 delete mode 100644 clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json

diff --git a/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h b/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h
index d503b16bf294c..a11b979c4a550 100644
--- a/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h
+++ b/clang/include/clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h
@@ -27,38 +27,20 @@
 
 namespace clang::ssaf {
 
-enum class BuildNamespaceKind : unsigned short {
-  CompilationUnit,
-  LinkUnit,
-  StaticLibrary,
-  MultiArchStaticLibrary
-};
-
 /// Represents a single namespace in the build process.
 ///
 /// A BuildNamespace groups program entities, such as those belonging to a
-/// compilation unit or link unit (e.g., a shared library). Each namespace has a
-/// kind (CompilationUnit or LinkUnit) and a unique identifier name within that
-/// kind.
+/// compilation unit or link unit (e.g., a shared library). Each namespace is
+/// identified by a unique name.
 ///
 /// BuildNamespaces can be composed into NestedBuildNamespace to represent
 /// hierarchical namespace structures that model how software is constructed
 /// from its components.
 class BuildNamespace {
-  BuildNamespaceKind Kind;
   std::string Name;
 
-  auto asTuple() const { return std::tie(Kind, Name); }
-
 public:
-  BuildNamespace(BuildNamespaceKind Kind, llvm::StringRef Name)
-      : Kind(Kind), Name(Name.str()) {}
-
-  /// Creates a BuildNamespace representing a compilation unit.
-  ///
-  /// \param CompilationId The unique identifier for the compilation unit.
-  /// \returns A BuildNamespace with CompilationUnit kind.
-  static BuildNamespace makeCompilationUnit(llvm::StringRef CompilationId);
+  explicit BuildNamespace(llvm::StringRef Name) : Name(Name.str()) {}
 
   bool operator==(const BuildNamespace &Other) const;
   bool operator!=(const BuildNamespace &Other) const;
@@ -93,14 +75,6 @@ class NestedBuildNamespace {
     Namespaces.push_back(N);
   }
 
-  /// Creates a NestedBuildNamespace representing a compilation unit.
-  ///
-  /// \param CompilationId The unique identifier for the compilation unit.
-  /// \returns A NestedBuildNamespace containing a single CompilationUnit
-  ///          BuildNamespace.
-  static NestedBuildNamespace
-  makeCompilationUnit(llvm::StringRef CompilationId);
-
   /// Creates a new NestedBuildNamespace by appending additional namespace.
   ///
   /// \param Namespace The namespace to append.
@@ -124,7 +98,6 @@ class NestedBuildNamespace {
                                        const NestedBuildNamespace &NBN);
 };
 
-llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, BuildNamespaceKind BNK);
 llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const BuildNamespace &BN);
 llvm::raw_ostream &operator<<(llvm::raw_ostream &OS,
                               const NestedBuildNamespace &NBN);
diff --git a/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def b/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def
index 33f47f8f9151c..e77d699814d0e 100644
--- a/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def
+++ b/clang/include/clang/ScalableStaticAnalysis/Core/Model/PrivateFieldNames.def
@@ -17,7 +17,6 @@
 #define FIELD(CLASS, FIELD_NAME)
 #endif
 
-FIELD(BuildNamespace, Kind)
 FIELD(BuildNamespace, Name)
 FIELD(EntityId, Index)
 FIELD(EntityIdTable, Entities)
diff --git a/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h b/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h
index e4a7b54033924..b3b9e597dbc74 100644
--- a/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h
+++ b/clang/include/clang/ScalableStaticAnalysis/Core/Support/FormatProviders.h
@@ -46,13 +46,6 @@ template <> struct format_provider<clang::ssaf::EntityLinkage> {
   }
 };
 
-template <> struct format_provider<clang::ssaf::BuildNamespaceKind> {
-  static void format(clang::ssaf::BuildNamespaceKind Val, raw_ostream &OS,
-                     StringRef Style) {
-    OS << Val;
-  }
-};
-
 template <> struct format_provider<clang::ssaf::BuildNamespace> {
   static void format(const clang::ssaf::BuildNamespace &Val, raw_ostream &OS,
                      StringRef Style) {
diff --git a/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp b/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp
index f68ed961f71b9..953af8b12534b 100644
--- a/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp
+++ b/clang/lib/ScalableStaticAnalysis/Core/Model/BuildNamespace.cpp
@@ -7,21 +7,12 @@
 //===----------------------------------------------------------------------===//
 
 #include "clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h"
-#include "../ModelStringConversions.h"
 #include "llvm/ADT/STLExtras.h"
-#include "llvm/Support/ErrorHandling.h"
-#include <tuple>
 
 namespace clang::ssaf {
 
-BuildNamespace
-BuildNamespace::makeCompilationUnit(llvm::StringRef CompilationId) {
-  return BuildNamespace{BuildNamespaceKind::CompilationUnit,
-                        CompilationId.str()};
-}
-
 bool BuildNamespace::operator==(const BuildNamespace &Other) const {
-  return asTuple() == Other.asTuple();
+  return Name == Other.Name;
 }
 
 bool BuildNamespace::operator!=(const BuildNamespace &Other) const {
@@ -29,15 +20,7 @@ bool BuildNamespace::operator!=(const BuildNamespace &Other) const {
 }
 
 bool BuildNamespace::operator<(const BuildNamespace &Other) const {
-  return asTuple() < Other.asTuple();
-}
-
-NestedBuildNamespace
-NestedBuildNamespace::makeCompilationUnit(llvm::StringRef CompilationId) {
-  NestedBuildNamespace Result;
-  Result.Namespaces.push_back(
-      BuildNamespace::makeCompilationUnit(CompilationId));
-  return Result;
+  return Name < Other.Name;
 }
 
 bool NestedBuildNamespace::empty() const { return Namespaces.empty(); }
@@ -54,12 +37,8 @@ bool NestedBuildNamespace::operator<(const NestedBuildNamespace &Other) const {
   return Namespaces < Other.Namespaces;
 }
 
-llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, BuildNamespaceKind BNK) {
-  return OS << buildNamespaceKindToString(BNK);
-}
-
 llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, const BuildNamespace &BN) {
-  return OS << "BuildNamespace(" << BN.Kind << ", " << BN.Name << ")";
+  return OS << "BuildNamespace(" << BN.Name << ")";
 }
 
 llvm::raw_ostream &operator<<(llvm::raw_ostream &OS,
diff --git a/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h b/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h
index 9a4392bd72990..03f76211e8cea 100644
--- a/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h
+++ b/clang/lib/ScalableStaticAnalysis/Core/ModelStringConversions.h
@@ -16,7 +16,6 @@
 #ifndef LLVM_CLANG_LIB_ScalableStaticAnalysis_CORE_MODELSTRINGCONVERSIONS_H
 #define LLVM_CLANG_LIB_ScalableStaticAnalysis_CORE_MODELSTRINGCONVERSIONS_H
 
-#include "clang/ScalableStaticAnalysis/Core/Model/BuildNamespace.h"
 #include "clang/ScalableStaticAnalysis/Core/Model/EntityLinkage.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Support/ErrorHandling.h"
@@ -24,41 +23,6 @@
 
 namespace clang::ssaf {
 
-//===----------------------------------------------------------------------===//
-// BuildNamespaceKind
-//===----------------------------------------------------------------------===//
-
-/// Returns the canonical string representation of \p BNK used for
-/// serialization and display (e.g. "CompilationUnit", "LinkUnit").
-inline llvm::StringRef buildNamespaceKindToString(BuildNamespaceKind BNK) {
-  switch (BNK) {
-  case BuildNamespaceKind::CompilationUnit:
-    return "CompilationUnit";
-  case BuildNamespaceKind::LinkUnit:
-    return "LinkUnit";
-  case BuildNamespaceKind::StaticLibrary:
-    return "StaticLibrary";
-  case BuildNamespaceKind::MultiArchStaticLibrary:
-    return "MultiArchStaticLibrary";
-  }
-  llvm_unreachable("Unhandled BuildNamespaceKind variant");
-}
-
-/// Parses a string produced by buildNamespaceKindToString(). Returns
-/// std::nullopt if \p Str does not match any known BuildNamespaceKind value.
-inline std::optional<BuildNamespaceKind>
-buildNamespaceKindFromString(llvm::StringRef Str) {
-  if (Str == "CompilationUnit")
-    return BuildNamespaceKind::CompilationUnit;
-  if (Str == "LinkUnit")
-    return BuildNamespaceKind::LinkUnit;
-  if (Str == "StaticLibrary")
-    return BuildNamespaceKind::StaticLibrary;
-  if (Str == "MultiArchStaticLibrary")
-    return BuildNamespaceKind::MultiArchStaticLibrary;
-  return std::nullopt;
-}
-
 //===----------------------------------------------------------------------===//
 // EntityLinkageType
 //===----------------------------------------------------------------------===//
diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
index f935761b3c476..95226bef38b97 100644
--- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
+++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
@@ -235,49 +235,12 @@ Object JSONFormat::entityIdToJSONObject(EntityId EI) {
   return Result;
 }
 
-//----------------------------------------------------------------------------
-// BuildNamespaceKind
-//----------------------------------------------------------------------------
-
-llvm::Expected<BuildNamespaceKind>
-buildNamespaceKindFromJSON(llvm::StringRef BuildNamespaceKindStr) {
-  auto OptBuildNamespaceKind =
-      buildNamespaceKindFromString(BuildNamespaceKindStr);
-  if (!OptBuildNamespaceKind) {
-    return ErrorBuilder::create(std::errc::invalid_argument,
-                                ErrorMessages::InvalidBuildNamespaceKind,
-                                BuildNamespaceKindStr)
-        .build();
-  }
-  return *OptBuildNamespaceKind;
-}
-
-// Provided for consistency with respect to rest of the codebase.
-llvm::StringRef buildNamespaceKindToJSON(BuildNamespaceKind BNK) {
-  return buildNamespaceKindToString(BNK);
-}
-
 //----------------------------------------------------------------------------
 // BuildNamespace
 //----------------------------------------------------------------------------
 
 llvm::Expected<BuildNamespace>
 JSONFormat::buildNamespaceFromJSON(const Object &BuildNamespaceObject) const {
-  auto OptBuildNamespaceKindStr = BuildNamespaceObject.getString("kind");
-  if (!OptBuildNamespaceKindStr) {
-    return ErrorBuilder::create(std::errc::invalid_argument,
-                                ErrorMessages::FailedToReadObjectAtField,
-                                "BuildNamespaceKind", "kind", "string")
-        .build();
-  }
-
-  auto ExpectedKind = buildNamespaceKindFromJSON(*OptBuildNamespaceKindStr);
-  if (!ExpectedKind) {
-    return ErrorBuilder::wrap(ExpectedKind.takeError())
-        .context(ErrorMessages::ReadingFromField, "BuildNamespaceKind", "kind")
-        .build();
-  }
-
   auto OptNameStr = BuildNamespaceObject.getString("name");
   if (!OptNameStr) {
     return ErrorBuilder::create(std::errc::invalid_argument,
@@ -286,12 +249,11 @@ JSONFormat::buildNamespaceFromJSON(const Object &BuildNamespaceObject) const {
         .build();
   }
 
-  return {BuildNamespace(*ExpectedKind, *OptNameStr)};
+  return {BuildNamespace(*OptNameStr)};
 }
 
 Object JSONFormat::buildNamespaceToJSON(const BuildNamespace &BN) const {
   Object Result;
-  Result["kind"] = buildNamespaceKindToJSON(getKind(BN));
   Result["name"] = getName(BN);
   return Result;
 }
diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h
index b17f296eda1b4..cd3643982dac2 100644
--- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h
+++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/JSONFormatImpl.h
@@ -108,9 +108,6 @@ inline constexpr const char
     *FailedToSerializeEntitySummaryMismatchedSummaryName =
         "JSONFormat - EntitySummary data for '{0}' reports mismatched '{1}'";
 
-inline constexpr const char *InvalidBuildNamespaceKind =
-    "invalid BuildNamespaceKind value '{0}' for field 'kind'";
-
 inline constexpr const char *InvalidEntityLinkageType =
     "invalid EntityLinkageType value '{0}' for field 'type'";
 
@@ -200,16 +197,6 @@ llvm::StringRef summaryNameToJSON(const SummaryName &SN);
 AnalysisName analysisNameFromJSON(llvm::StringRef AnalysisNameStr);
 llvm::StringRef analysisNameToJSON(const AnalysisName &AN);
 
-//----------------------------------------------------------------------------
-// BuildNamespaceKind helpers
-//----------------------------------------------------------------------------
-
-llvm::Expected<BuildNamespaceKind>
-buildNamespaceKindFromJSON(llvm::StringRef BuildNamespaceKindStr);
-
-// Provided for consistency with respect to rest of the codebase.
-llvm::StringRef buildNamespaceKindToJSON(BuildNamespaceKind BNK);
-
 //----------------------------------------------------------------------------
 // EntityLinkageType helpers
 //----------------------------------------------------------------------------
diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp
index e8971a2f34be3..cfa84dbdcf883 100644
--- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp
+++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/MultiArchStaticLibrary.cpp
@@ -70,18 +70,6 @@ JSONFormat::readMultiArchStaticLibraryFromObject(const Object &RootObject) {
         .build();
   }
 
-  if (getKind(*ExpectedNamespace) !=
-      BuildNamespaceKind::MultiArchStaticLibrary) {
-    return ErrorBuilder::create(
-               std::errc::invalid_argument,
-               ErrorMessages::MismatchedSummaryType,
-               buildNamespaceKindToJSON(
-                   BuildNamespaceKind::MultiArchStaticLibrary),
-               "namespace.kind",
-               buildNamespaceKindToJSON(getKind(*ExpectedNamespace)))
-        .build();
-  }
-
   const Array *MembersArray = RootObject.getArray("members");
   if (!MembersArray) {
     return ErrorBuilder::create(std::errc::invalid_argument,
diff --git a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp
index d4538d19aed24..7786c58fa7c04 100644
--- a/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp
+++ b/clang/lib/ScalableStaticAnalysis/Core/Serialization/JSONFormat/StaticLibrary.cpp
@@ -86,16 +86,6 @@ JSONFormat::readStaticLibraryFromObject(const Object &RootObject) {
         .build();
   }
 
-  if (getKind(*ExpectedNamespace) != BuildNamespaceKind::StaticLibrary) {
-    return ErrorBuilder::create(
-               std::errc::invalid_argument,
-               ErrorMessages::MismatchedSummaryType,
-               buildNamespaceKindToJSON(BuildNamespaceKind::StaticLibrary),
-               "namespace.kind",
-               buildNamespaceKindToJSON(getKind(*ExpectedNamespace)))
-        .build();
-  }
-
   StaticLibrary S(std::move(T), std::move(*ExpectedNamespace));
 
   const Array *MembersArray = RootObject.getArray("members");
diff --git a/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp b/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp
index bb4caef8f99ab..5c017ebca5d2c 100644
--- a/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp
+++ b/clang/lib/ScalableStaticAnalysis/Frontend/TUSummaryExtractorFrontendAction.cpp
@@ -141,9 +141,7 @@ TUSummaryRunner::TUSummaryRunner(llvm::Triple TargetTriple,
                                  std::unique_ptr<SerializationFormat> Format,
                                  const SSAFOptions &Opts)
     : MultiplexConsumer(std::vector<std::unique_ptr<ASTConsumer>>{}),
-      Summary(std::move(TargetTriple),
-              BuildNamespace(BuildNamespaceKind::CompilationUnit,
-                             Opts.CompilationUnitId)),
+      Summary(std::move(TargetTriple), BuildNamespace(Opts.CompilationUnitId)),
       Opts(Opts), Format(std::move(Format)) {
   assert(this->Format);
   assert(!Opts.CompilationUnitId.empty());
diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
index 282917559e5b5..adbc21b787283 100644
--- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
+++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-array.json
@@ -82,7 +82,6 @@
     }
   ],
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
index c2c5e119ca330..1e1823ae8ba92 100644
--- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
+++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-bad-summary.json
@@ -59,7 +59,6 @@
     }
   ],
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
index 14c654f8b7c14..506fd25759af4 100644
--- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
+++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary-no-key.json
@@ -88,7 +88,6 @@
     }
   ],
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
index 9b0b4575e2f61..e9179fd5843f3 100644
--- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
+++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/tu-summary.json
@@ -86,7 +86,6 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json
index 85d68e0b5f1d0..381a2bb7d490a 100644
--- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json
+++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-bad-edges.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json
index 391926df77dcb..f16c948422626 100644
--- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json
+++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result-odd-count.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json
index 2d28f8697d339..575184b82b58c 100644
--- a/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json
+++ b/clang/test/Analysis/Scalable/PointerFlow/Inputs/wpa-result.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -31,7 +29,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
index 8e73183ce3b29..77ffc18c5970a 100644
--- a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
+++ b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-element.json
@@ -45,7 +45,6 @@
     }
   ],
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
index 9a4ef04219f0a..0841e08bb5797 100644
--- a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
+++ b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-bad-ptr-level.json
@@ -50,7 +50,6 @@
     }
   ],
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
index 0ab350fa56182..24f34c806b3ee 100644
--- a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
+++ b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary-no-key.json
@@ -50,7 +50,6 @@
     }
   ],
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
index e4df108408472..2e41a2a733625 100644
--- a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
+++ b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/tu-summary.json
@@ -100,7 +100,6 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "Mock.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-epls.json b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-epls.json
index f7ee6a2d197e8..651c52d8f5bc1 100644
--- a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-epls.json
+++ b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-bad-epls.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-odd-count.json b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-odd-count.json
index 005a51a849f8f..a03dbedb832ba 100644
--- a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-odd-count.json
+++ b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result-odd-count.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result.json b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result.json
index b3d2d605b7946..2bf9609968edc 100644
--- a/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result.json
+++ b/clang/test/Analysis/Scalable/UnsafeBufferUsage/Inputs/wpa-result.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -31,7 +29,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
index ddff7a789fffb..01552f15b6465 100644
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
+++ b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu-tags-only.json
@@ -18,7 +18,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -37,7 +36,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
index 4654ada97a341..536901024bf67 100644
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
+++ b/clang/test/Analysis/Scalable/ssaf-analyzer/Inputs/lu.json
@@ -62,7 +62,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -75,7 +74,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -88,7 +86,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -119,7 +116,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json
index f1e8cf98553c9..cf9898105b195 100644
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json
+++ b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/all.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -31,7 +29,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json
index 814fea5823441..f5d85c5a3e272 100644
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json
+++ b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/both.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -31,7 +29,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json
index c8431c7280ce0..016892129cd11 100644
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json
+++ b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/pairs.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -31,7 +29,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json
index c3a7cfe9d6edb..b436bc72c85b3 100644
--- a/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json
+++ b/clang/test/Analysis/Scalable/ssaf-analyzer/Outputs/tags.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -31,7 +29,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-lu-empty.json b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-lu-empty.json
index d3c64b8d3eaf3..255709aea10ae 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-lu-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-lu-empty.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-empty.json b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-empty.json
index 1cd693b2fc8ce..909e88382cf3e 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-empty.json
@@ -2,7 +2,6 @@
   "members": [],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-nonempty.json b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-nonempty.json
index dc00a24f0eaf0..f8de5ef655606 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-nonempty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-shared-library-nonempty.json
@@ -8,7 +8,6 @@
           "name": {
             "namespace": [
               {
-                "kind": "LinkUnit",
                 "name": "libfoo"
               }
             ],
@@ -27,7 +26,6 @@
       ],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -42,7 +40,6 @@
           "name": {
             "namespace": [
               {
-                "kind": "LinkUnit",
                 "name": "libfoo"
               }
             ],
@@ -61,7 +58,6 @@
       ],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -71,7 +67,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-empty.json b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-empty.json
index dfe68cef81677..fa83e9f72ca17 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-empty.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -11,7 +10,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-nonempty.json b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-nonempty.json
index ea877c68be3fb..6386e9b664b68 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-nonempty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-multi-arch-static-library-nonempty.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -17,14 +16,12 @@
           "linkage_table": [],
           "target_triple": "x86_64-apple-macosx",
           "tu_namespace": {
-            "kind": "CompilationUnit",
             "name": "a.cpp"
           },
           "type": "TUSummary"
         }
       ],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "x86_64-apple-macosx",
@@ -32,7 +29,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-static-library-empty.json b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-static-library-empty.json
index 3059d007a2e9e..b507063b8178a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-static-library-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-static-library-empty.json
@@ -1,7 +1,6 @@
 {
   "members": [],
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libempty"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-tu-empty.json b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-tu-empty.json
index f89161ea705e7..4283c249de14f 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-tu-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Artifact/Inputs/rt-tu-empty.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
index b726ec997917f..3d97aab252ac0 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-element.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
index c4d8af0dbfcfc..eb015a1aaabae 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/invalid-direct-callee-id.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
index fb928fe397acc..846dc7fd53cc8 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-col.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
index e43509f1f8ca4..dcbfc5a2187b6 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-file.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
index dd14915d37aba..4bd0aa573ac6d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def-line.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
index c0da9cd05f807..99b8e48504295 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-def.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
index 45262d5813200..8ed38a57bf3ad 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-direct-callees.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
index b1e7de381a36a..11b96ce994a8d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-pretty-name.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
index 02e313bdc67b0..45b4e69a0ac02 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/Inputs/CallGraph/missing-virtual-callees.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
index dc1aecd86683e..3e8ca527b3b99 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-element-not-object.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -12,4 +11,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
index c7c70a5838efc..e223eaaadfc22 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-data.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -14,4 +13,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
index c4234534261db..69ea82f79392f 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-entry-missing-summary-name.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -14,4 +13,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
index 68a5efddea138..42db27d3c8b57 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/data-not-array.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -10,4 +9,4 @@
   "data": {},
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
index 08bda0ffa6c73..75dadc757c676 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity-id-in-data-map.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -13,11 +12,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -53,4 +50,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
index 0d5e7d5b1eeec..12f79e147694c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-entity.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -13,11 +12,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -30,11 +27,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -58,4 +53,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
index 04efe47d41cee..dc14163d4d32a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/duplicate-summary-name.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -19,4 +18,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
index 9c17365ea1916..edf21979a9f9b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-element-not-object.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -17,4 +16,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
index 498a6c8359fa9..d99aa24e609e1 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-id.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -19,4 +18,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
index cc8f8a331a466..9e1efc073ec65 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-data-missing-entity-summary.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -19,4 +18,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
index 302674eacc912..f29366e190f38 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-id-not-uint64.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -20,4 +19,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
index 174423ce72c33..1c1888a15d107 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-namespace.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -25,4 +24,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
index 92457c7f75d44..b5a51cf425e85 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-suffix.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -12,7 +11,6 @@
         "usr": "c:@F at foo",
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -30,4 +28,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
index a3af210d887b1..f462f41e2d45d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/entity-name-missing-usr.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -12,11 +11,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -34,4 +31,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
index acaa0feb24d25..4f7063cfd4b5d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-element-not-object.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -12,4 +11,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
index cf31a7ba25106..40565f0044b1c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-id-not-uint64.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -13,11 +12,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -28,4 +25,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
index 193b036461f1c..001896c552f4b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-id.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -12,11 +11,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -27,4 +24,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
index 54bef9ba275a9..9ff4b325f7055 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-entry-missing-name.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -14,4 +13,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
index 80ae213169a43..13a3e5902677b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/id-table-not-array.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -10,4 +9,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
index e03fa76057044..9d581a6f62cb8 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-duplicate-id.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -13,11 +12,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -41,4 +38,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
index 7345dae82c552..9225f7a9d81f0 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-element-not-object.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -12,4 +11,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
index ae30fe240fb20..1653ee62bceba 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-id-not-uint64.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -17,4 +16,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
index 7f53e39f1d942..fe70bed49fdf3 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -17,4 +16,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
index d52f40c4fda2d..fa6132273da38 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -15,4 +14,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
index 73738e0a42255..2bf8305c91d3b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-id.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -16,4 +15,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
index 32f3e0c84b863..2a4fd6d8ef01b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-entry-missing-linkage.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -14,4 +13,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
index af1436f97df13..11f4540b042bf 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-extra-id.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -17,4 +16,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
index e0e299d938ec7..e829ed86b56ef 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-missing-id.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -13,11 +12,9 @@
         "suffix": "",
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ]
@@ -28,4 +25,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
index 05d8503262109..34f3f374a5973 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/linkage-table-not-array.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -10,4 +9,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
deleted file mode 100644
index 42bf456dbe99a..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-invalid-kind.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
-  "lu_namespace": [
-    {
-      "kind": "invalid_kind",
-      "name": "test.cpp"
-    }
-  ],
-  "id_table": [],
-  "linkage_table": [],
-  "data": [],
-  "target_triple": "arm64-apple-macosx",
-  "type": "LUSummary"
-}
\ No newline at end of file
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
deleted file mode 100644
index 875285cde50c1..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-kind.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "lu_namespace": [
-    {
-      "name": "test.cpp"
-    }
-  ],
-  "id_table": [],
-  "linkage_table": [],
-  "data": [],
-  "target_triple": "arm64-apple-macosx",
-  "type": "LUSummary"
-}
\ No newline at end of file
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
index 9f0bf4c24032a..99c36081bfb09 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-element-missing-name.json
@@ -1,8 +1,6 @@
 {
   "lu_namespace": [
-    {
-      "kind": "CompilationUnit"
-    }
+    {}
   ],
   "id_table": [],
   "linkage_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
index 88d7643a6eb83..2d4e2729f6c74 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/lu-namespace-not-array.json
@@ -1,6 +1,5 @@
 {
   "lu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
@@ -8,4 +7,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/mismatched-type.json
index fef18fcc1a874..3ae529b30ff51 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/mismatched-type.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
index bcf22838ce522..acd07d70265b5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-data.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -9,4 +8,4 @@
   "linkage_table": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
index 764ce701287b5..9cc5d5942659f 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-id-table.json
@@ -1,11 +1,10 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
index cb85ce147e4a0..3b95f70602cc1 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-linkage-table.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -9,4 +8,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
index 765a8b8b2f703..80f84b49b5169 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-target-triple.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-type.json
index 356001dbe68ae..5105938e12c48 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/missing-type.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
deleted file mode 100644
index 6c648ca818656..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-invalid-kind.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  "lu_namespace": [
-    {
-      "kind": "LinkUnit",
-      "name": "test.exe"
-    }
-  ],
-  "id_table": [
-    {
-      "id": 0,
-      "name": {
-        "usr": "c:@F at foo",
-        "suffix": "",
-        "namespace": [
-          {
-            "kind": "invalid_kind",
-            "name": "test.cpp"
-          }
-        ]
-      }
-    }
-  ],
-  "linkage_table": [
-    {
-      "id": 0,
-      "linkage": {
-        "type": "External"
-      }
-    }
-  ],
-  "data": [],
-  "target_triple": "arm64-apple-macosx",
-  "type": "LUSummary"
-}
\ No newline at end of file
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
deleted file mode 100644
index 004ff880ab480..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-kind.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "lu_namespace": [
-    {
-      "kind": "LinkUnit",
-      "name": "test.exe"
-    }
-  ],
-  "id_table": [
-    {
-      "id": 0,
-      "name": {
-        "usr": "c:@F at foo",
-        "suffix": "",
-        "namespace": [
-          {
-            "name": "test.cpp"
-          }
-        ]
-      }
-    }
-  ],
-  "linkage_table": [
-    {
-      "id": 0,
-      "linkage": {
-        "type": "Internal"
-      }
-    }
-  ],
-  "data": [],
-  "target_triple": "arm64-apple-macosx",
-  "type": "LUSummary"
-}
\ No newline at end of file
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
index b35b6bb00da4b..b67a53ccaea5c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-missing-name.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -12,9 +11,7 @@
         "usr": "c:@F at foo",
         "suffix": "",
         "namespace": [
-          {
-            "kind": "CompilationUnit"
-          }
+          {}
         ]
       }
     }
@@ -30,4 +27,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
index 00f88a4651d90..6bbe44faf7272 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/namespace-element-not-object.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -28,4 +27,4 @@
   "data": [],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
index 6ecdeef56e55a..86266c30ce839 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/not-normalized-target-triple.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
index 7bc19afa5e943..dd1b55b749288 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-element-not-object.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -24,4 +23,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
index 72e7545626f90..ac1a20aac84b9 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-first-field.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -29,4 +28,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
index 801de7d969b2a..4edbb97f9b91e 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-pairs-field-type.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -22,4 +21,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
index 2b5b2fd87a763..75eb2d1f86e3d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-invalid-second-field.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -29,4 +28,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
index 62897d2e5ce73..5fc11668546b9 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-first-field.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -28,4 +27,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
index d71c7fa96431d..c295f76878b5c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-pairs-field.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -20,4 +19,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
index 23459d00e76d6..c71c7061bd06a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/pairs-missing-second-field.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -28,4 +27,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
index 63989f69371fd..fbf9ab842d805 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/read-entity-summary-no-format-info.json
@@ -1,7 +1,6 @@
 {
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "test.exe"
     }
   ],
@@ -20,4 +19,4 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "type": "LUSummary"
-}
\ No newline at end of file
+}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
index cf8124d999f7f..b2b802f6f0e4c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-data-entry.json
@@ -9,7 +9,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
index d3c64b8d3eaf3..255709aea10ae 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-empty-namespace.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
index 1024caba971c7..280f1d0ca57cc 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-external.json
@@ -6,7 +6,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -25,7 +24,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
index f4e9603d9bd0e..8069bf207ec91 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-internal.json
@@ -6,7 +6,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -25,7 +24,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
index e2c333ffbc07a..f7b535131b1be 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-multiple.json
@@ -6,7 +6,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -19,7 +18,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -32,7 +30,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -63,7 +60,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
index 8330210158484..b7dccd08806d1 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-linkage-none.json
@@ -6,7 +6,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -25,7 +24,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
index 84d1dfc524a00..f78d45cc06d57 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-multiple-namespace-elements.json
@@ -4,15 +4,12 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "a.cpp"
     },
     {
-      "kind": "CompilationUnit",
       "name": "b.cpp"
     },
     {
-      "kind": "LinkUnit",
       "name": "libtest.so"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
index d3c64b8d3eaf3..255709aea10ae 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-single-namespace-element.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
index 3297419191ef8..b3857bbe3c49b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/Inputs/rt-two-summary-types.json
@@ -138,7 +138,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -151,7 +150,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -164,7 +162,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -177,7 +174,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -190,7 +186,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "test.cpp"
           }
         ],
@@ -233,7 +228,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "CompilationUnit",
       "name": "test.cpp"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/id-table.test b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/id-table.test
index 733cd61d844a2..b84adad916f04 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/id-table.test
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/id-table.test
@@ -18,31 +18,6 @@
 // NAMESPACE-ELEMENT-NOT-OBJECT-NEXT: reading NestedBuildNamespace from field 'namespace'
 // NAMESPACE-ELEMENT-NOT-OBJECT-NEXT: failed to read BuildNamespace from index '0': expected JSON object
 
-// RUN: not clang-ssaf-format --type lu %S/Inputs/namespace-element-missing-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-ELEMENT-MISSING-KIND
-// RUN: not clang-ssaf-format --type lu --encoding %S/Inputs/namespace-element-missing-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-ELEMENT-MISSING-KIND
-// NAMESPACE-ELEMENT-MISSING-KIND:      clang-ssaf-format: error: reading LUSummary from file '{{.*}}namespace-element-missing-kind.json'
-// NAMESPACE-ELEMENT-MISSING-KIND-NEXT: reading IdTable from field 'id_table'
-// NAMESPACE-ELEMENT-MISSING-KIND-NEXT: reading EntityIdTable entry from index '0'
-// NAMESPACE-ELEMENT-MISSING-KIND-NEXT: reading EntityName from field 'name'
-// NAMESPACE-ELEMENT-MISSING-KIND-NEXT: reading NestedBuildNamespace from field 'namespace'
-// NAMESPACE-ELEMENT-MISSING-KIND-NEXT: reading BuildNamespace from index '0'
-// NAMESPACE-ELEMENT-MISSING-KIND-NEXT: failed to read BuildNamespaceKind from field 'kind': expected JSON string
-
-// RUN: not clang-ssaf-format --type lu %S/Inputs/namespace-element-invalid-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-ELEMENT-INVALID-KIND
-// RUN: not clang-ssaf-format --type lu --encoding %S/Inputs/namespace-element-invalid-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-ELEMENT-INVALID-KIND
-// NAMESPACE-ELEMENT-INVALID-KIND:      clang-ssaf-format: error: reading LUSummary from file '{{.*}}namespace-element-invalid-kind.json'
-// NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading IdTable from field 'id_table'
-// NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading EntityIdTable entry from index '0'
-// NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading EntityName from field 'name'
-// NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading NestedBuildNamespace from field 'namespace'
-// NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading BuildNamespace from index '0'
-// NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading BuildNamespaceKind from field 'kind'
-// NAMESPACE-ELEMENT-INVALID-KIND-NEXT: invalid BuildNamespaceKind value 'invalid_kind' for field 'kind'
-
 // RUN: not clang-ssaf-format --type lu %S/Inputs/namespace-element-missing-name.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-ELEMENT-MISSING-NAME
 // RUN: not clang-ssaf-format --type lu --encoding %S/Inputs/namespace-element-missing-name.json 2>&1 \
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/permissions.test b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/permissions.test
index 0d2db01a471db..7d5dd42a6fb7b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/permissions.test
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/permissions.test
@@ -20,7 +20,7 @@
 // No read permission
 // ============================================================================
 
-// RUN: echo '{"lu_namespace": [{"kind": "LinkUnit", "name": "test.exe"}], "id_table": [], "linkage_table": [], "data": []}' > %t/no-read-permission.json
+// RUN: echo '{"lu_namespace": [{"name": "test.exe"}], "id_table": [], "linkage_table": [], "data": []}' > %t/no-read-permission.json
 // RUN: chmod -r %t/no-read-permission.json
 // RUN: not clang-ssaf-format --type lu %t/no-read-permission.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NO-READ-PERMISSION
diff --git a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
index 933a9227446a2..262dd2c4304ed 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
+++ b/clang/test/Analysis/Scalable/ssaf-format/LUSummary/top-level.test
@@ -23,25 +23,6 @@
 // LU-NAMESPACE-ELEMENT-NOT-OBJECT-NEXT: reading NestedBuildNamespace from field 'lu_namespace'
 // LU-NAMESPACE-ELEMENT-NOT-OBJECT-NEXT: failed to read BuildNamespace from index '0': expected JSON object
 
-// RUN: not clang-ssaf-format --type lu %S/Inputs/lu-namespace-element-missing-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=LU-NAMESPACE-ELEMENT-MISSING-KIND
-// RUN: not clang-ssaf-format --type lu --encoding %S/Inputs/lu-namespace-element-missing-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=LU-NAMESPACE-ELEMENT-MISSING-KIND
-// LU-NAMESPACE-ELEMENT-MISSING-KIND:      clang-ssaf-format: error: reading LUSummary from file '{{.*}}lu-namespace-element-missing-kind.json'
-// LU-NAMESPACE-ELEMENT-MISSING-KIND-NEXT: reading NestedBuildNamespace from field 'lu_namespace'
-// LU-NAMESPACE-ELEMENT-MISSING-KIND-NEXT: reading BuildNamespace from index '0'
-// LU-NAMESPACE-ELEMENT-MISSING-KIND-NEXT: failed to read BuildNamespaceKind from field 'kind': expected JSON string
-
-// RUN: not clang-ssaf-format --type lu %S/Inputs/lu-namespace-element-invalid-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=LU-NAMESPACE-ELEMENT-INVALID-KIND
-// RUN: not clang-ssaf-format --type lu --encoding %S/Inputs/lu-namespace-element-invalid-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=LU-NAMESPACE-ELEMENT-INVALID-KIND
-// LU-NAMESPACE-ELEMENT-INVALID-KIND:      clang-ssaf-format: error: reading LUSummary from file '{{.*}}lu-namespace-element-invalid-kind.json'
-// LU-NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading NestedBuildNamespace from field 'lu_namespace'
-// LU-NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading BuildNamespace from index '0'
-// LU-NAMESPACE-ELEMENT-INVALID-KIND-NEXT: reading BuildNamespaceKind from field 'kind'
-// LU-NAMESPACE-ELEMENT-INVALID-KIND-NEXT: invalid BuildNamespaceKind value 'invalid_kind' for field 'kind'
-
 // RUN: not clang-ssaf-format --type lu %S/Inputs/lu-namespace-element-missing-name.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=LU-NAMESPACE-ELEMENT-MISSING-NAME
 // RUN: not clang-ssaf-format --type lu --encoding %S/Inputs/lu-namespace-element-missing-name.json 2>&1 \
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/duplicate-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/duplicate-target-triple.json
index f3142832581fb..a812e51be6514 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/duplicate-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/duplicate-target-triple.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -19,7 +18,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -29,7 +27,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-empty-lu-namespace.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-empty-lu-namespace.json
index a8bdc5e79da9b..d08c405133715 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-empty-lu-namespace.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-empty-lu-namespace.json
@@ -11,7 +11,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-inner-error.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-inner-error.json
index 5b6b7413b1738..895bb7bc9c697 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-inner-error.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-inner-error.json
@@ -10,7 +10,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-mismatched-type.json
index c48d5a5cc3eb4..f8c38de14c0cf 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-mismatched-type.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -16,7 +15,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-missing-type.json
index 3630d1843e243..25cbaeaee9528 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-missing-type.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -15,7 +14,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-namespace-mismatch.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-namespace-mismatch.json
index ab779950af56d..8851e0c3633a0 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-namespace-mismatch.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-namespace-mismatch.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libbar"
         }
       ],
@@ -16,7 +15,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-not-object.json
index 8269b374cb602..7f1c2d01aa332 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/member-not-object.json
@@ -4,7 +4,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/members-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/members-not-array.json
index 7b84c5635327a..f17f5e7662d47 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/members-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/members-not-array.json
@@ -2,7 +2,6 @@
   "members": {},
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/mismatched-type.json
index 3d7f01538bee1..1f275573e703a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/mismatched-type.json
@@ -2,7 +2,6 @@
   "members": [],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-members.json
index 5191a4f092f2d..ab8e12ed3573e 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-members.json
@@ -1,7 +1,6 @@
 {
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-type.json
index 79794ae546e1e..52427a0ef8c44 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/missing-type.json
@@ -2,7 +2,6 @@
   "members": [],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ]
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-empty-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-empty-members.json
index 1cd693b2fc8ce..909e88382cf3e 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-empty-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-empty-members.json
@@ -2,7 +2,6 @@
   "members": [],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-multiple-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-multiple-members.json
index d1de17900eb84..284dd84afedf5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-multiple-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-multiple-members.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -19,7 +18,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -29,7 +27,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-nonempty-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-nonempty-members.json
index dc00a24f0eaf0..f8de5ef655606 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-nonempty-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-nonempty-members.json
@@ -8,7 +8,6 @@
           "name": {
             "namespace": [
               {
-                "kind": "LinkUnit",
                 "name": "libfoo"
               }
             ],
@@ -27,7 +26,6 @@
       ],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -42,7 +40,6 @@
           "name": {
             "namespace": [
               {
-                "kind": "LinkUnit",
                 "name": "libfoo"
               }
             ],
@@ -61,7 +58,6 @@
       ],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -71,7 +67,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-single-member.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-single-member.json
index bf7e570e21bf5..ff01a19f060ec 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-single-member.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-single-member.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -16,7 +15,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-three-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-three-members.json
index ce123fe904dda..923498eaac7b2 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-three-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/rt-three-members.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -19,7 +18,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -32,7 +30,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -42,7 +39,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-members-input.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-members-input.json
index 3c47d9167107e..b731211428a7a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-members-input.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-members-input.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -19,7 +18,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -29,7 +27,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-three-members-input.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-three-members-input.json
index ff5f5f88e134d..716d03bef5763 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-three-members-input.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchSharedLibrary/Inputs/unsorted-three-members-input.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -19,7 +18,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -32,7 +30,6 @@
       "linkage_table": [],
       "lu_namespace": [
         {
-          "kind": "LinkUnit",
           "name": "libfoo"
         }
       ],
@@ -42,7 +39,6 @@
   ],
   "namespace": [
     {
-      "kind": "LinkUnit",
       "name": "libfoo"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/duplicate-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/duplicate-target-triple.json
index 6c07b51e9823c..7d6acb3b300af 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/duplicate-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/duplicate-target-triple.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -12,7 +11,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -20,7 +18,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-inner-error.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-inner-error.json
index e71e2a42cf8cb..6a83bf08fdcf9 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-inner-error.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-inner-error.json
@@ -7,7 +7,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-mismatched-type.json
index 5e92521f02260..7f0f274b9cdf5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-mismatched-type.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -11,7 +10,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-missing-type.json
index 6422b9ce326e5..7325f95d42e93 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-missing-type.json
@@ -3,14 +3,12 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx"
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-namespace-mismatch.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-namespace-mismatch.json
index 8b7f6cacd5937..f70acc6069174 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-namespace-mismatch.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-namespace-mismatch.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libbar"
       },
       "target_triple": "arm64-apple-macosx",
@@ -11,7 +10,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-not-object.json
index ccaa32242d329..99cdb1ebbd4b5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/member-not-object.json
@@ -3,7 +3,6 @@
     "not an object"
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/members-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/members-not-array.json
index cb68c661a1d3a..a86b6e5f52ff5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/members-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/members-not-array.json
@@ -1,7 +1,6 @@
 {
   "members": {},
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/mismatched-type.json
index 390eb2a4cb0a9..f8b18cf9dc4c1 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/mismatched-type.json
@@ -3,7 +3,6 @@
     "arm64": {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-members.json
index d3e3ac408164e..ca1fcbda51e9e 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-members.json
@@ -1,6 +1,5 @@
 {
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-type.json
index ea946be0839aa..c6014bb4a3aad 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/missing-type.json
@@ -3,7 +3,6 @@
     "arm64": {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/namespace-wrong-kind.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/namespace-wrong-kind.json
deleted file mode 100644
index e5495e2551700..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/namespace-wrong-kind.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "members": [],
-  "namespace": {
-    "kind": "StaticLibrary",
-    "name": "libfoo"
-  },
-  "type": "MultiArchStaticLibrary"
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-empty-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-empty-members.json
index 13a106614f1e0..7a00014cb39e6 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-empty-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-empty-members.json
@@ -1,7 +1,6 @@
 {
   "members": [],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-multiple-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-multiple-members.json
index ab9f2744b8e78..27103c888f1df 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-multiple-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-multiple-members.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -12,7 +11,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "x86_64-apple-macosx",
@@ -20,7 +18,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-nonempty-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-nonempty-members.json
index 5a76aef859774..907aaff7090c7 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-nonempty-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-nonempty-members.json
@@ -8,14 +8,12 @@
           "linkage_table": [],
           "target_triple": "arm64-apple-macosx",
           "tu_namespace": {
-            "kind": "CompilationUnit",
             "name": "a.cpp"
           },
           "type": "TUSummary"
         }
       ],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -29,14 +27,12 @@
           "linkage_table": [],
           "target_triple": "x86_64-apple-macosx",
           "tu_namespace": {
-            "kind": "CompilationUnit",
             "name": "a.cpp"
           },
           "type": "TUSummary"
         }
       ],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "x86_64-apple-macosx",
@@ -44,7 +40,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-single-member.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-single-member.json
index dfe68cef81677..fa83e9f72ca17 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-single-member.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-single-member.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -11,7 +10,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-three-members.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-three-members.json
index 2b85071edaecb..7c2ba45acffa8 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-three-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/rt-three-members.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -12,7 +11,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64_32-apple-macosx",
@@ -21,7 +19,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "x86_64-apple-macosx",
@@ -29,7 +26,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-members-input.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-members-input.json
index b7a23875432f2..fc24652222dab 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-members-input.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-members-input.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "x86_64-apple-macosx",
@@ -12,7 +11,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -20,7 +18,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-three-members-input.json b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-three-members-input.json
index 74ee6fe49e82c..e861340b77487 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-three-members-input.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/Inputs/unsorted-three-members-input.json
@@ -3,7 +3,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "x86_64-apple-macosx",
@@ -12,7 +11,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64-apple-macosx",
@@ -21,7 +19,6 @@
     {
       "members": [],
       "namespace": {
-        "kind": "StaticLibrary",
         "name": "libfoo"
       },
       "target_triple": "arm64_32-apple-macosx",
@@ -29,7 +26,6 @@
     }
   ],
   "namespace": {
-    "kind": "MultiArchStaticLibrary",
     "name": "libfoo"
   },
   "type": "MultiArchStaticLibrary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/top-level.test b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/top-level.test
index d233465f9fd62..95cf8c456f315 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/top-level.test
+++ b/clang/test/Analysis/Scalable/ssaf-format/MultiArchStaticLibrary/top-level.test
@@ -33,12 +33,6 @@
 // NAMESPACE-NOT-OBJECT:      clang-ssaf-format: error: reading MultiArchStaticLibrary from file '{{.*}}namespace-not-object.json'
 // NAMESPACE-NOT-OBJECT-NEXT: failed to read BuildNamespace from field 'namespace': expected JSON object
 
-// The namespace kind must be MultiArchStaticLibrary.
-// RUN: not clang-ssaf-format --type multi-arch-static-library %S/Inputs/namespace-wrong-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-WRONG-KIND
-// NAMESPACE-WRONG-KIND:      clang-ssaf-format: error: reading MultiArchStaticLibrary from file '{{.*}}namespace-wrong-kind.json'
-// NAMESPACE-WRONG-KIND-NEXT: expected 'MultiArchStaticLibrary' for field 'namespace.kind' but got 'StaticLibrary'
-
 // ============================================================================
 // members field errors
 // ============================================================================
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/duplicate-member.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/duplicate-member.json
index e3ea75ba7024c..dbbac249a455c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/duplicate-member.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/duplicate-member.json
@@ -2,7 +2,6 @@
   "type": "StaticLibrary",
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": [
@@ -10,7 +9,6 @@
       "type": "TUSummary",
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "a.cpp"
       },
       "id_table": [],
@@ -21,7 +19,6 @@
       "type": "TUSummary",
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "a.cpp"
       },
       "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-inner-error.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-inner-error.json
index 5134814e4166a..2131485dad88c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-inner-error.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-inner-error.json
@@ -9,7 +9,6 @@
     }
   ],
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-mismatched-type.json
index cf85ec21d0d4e..7572b3bec7cc7 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-mismatched-type.json
@@ -2,7 +2,6 @@
   "type": "StaticLibrary",
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-missing-type.json
index 3ba536ee869f6..65699548acbb8 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-missing-type.json
@@ -3,7 +3,6 @@
     {
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "a.cpp"
       },
       "id_table": [],
@@ -12,7 +11,6 @@
     }
   ],
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-not-object.json
index d62af500c4b04..b7edf883d8ae7 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-not-object.json
@@ -2,7 +2,6 @@
   "type": "StaticLibrary",
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": ["not an object"]
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-triple-mismatch.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-triple-mismatch.json
index 39a8c23970d1d..51ba3d0208eaf 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-triple-mismatch.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/member-triple-mismatch.json
@@ -2,7 +2,6 @@
   "type": "StaticLibrary",
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": [
@@ -10,7 +9,6 @@
       "type": "TUSummary",
       "target_triple": "x86_64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "a.cpp"
       },
       "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/members-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/members-not-array.json
index 1686e7ac517b4..b766cc29c667d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/members-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/members-not-array.json
@@ -2,7 +2,6 @@
   "type": "StaticLibrary",
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": {}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/mismatched-type.json
index 5c754996b18ce..736d1bc418813 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/mismatched-type.json
@@ -2,7 +2,6 @@
   "type": "TUSummary",
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": []
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-members.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-members.json
index 6f5059edaac85..243b15827dd74 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-members.json
@@ -2,7 +2,6 @@
   "type": "StaticLibrary",
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   }
 }
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-target-triple.json
index 6ab76fc69aa0c..aa3d2fff0f438 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-target-triple.json
@@ -1,7 +1,6 @@
 {
   "type": "StaticLibrary",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": []
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-type.json
index 9e470063d7865..57bf90e759aa5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/missing-type.json
@@ -1,7 +1,6 @@
 {
   "target_triple": "arm64-apple-macosx",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": []
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-invalid-kind.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-invalid-kind.json
deleted file mode 100644
index 5e96399f34387..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-invalid-kind.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "type": "StaticLibrary",
-  "target_triple": "arm64-apple-macosx",
-  "namespace": {
-    "kind": "invalid_kind",
-    "name": "libfoo"
-  },
-  "members": []
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-kind.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-kind.json
deleted file mode 100644
index 7aa0a00cdc4a2..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-kind.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "type": "StaticLibrary",
-  "target_triple": "arm64-apple-macosx",
-  "namespace": {
-    "name": "libfoo"
-  },
-  "members": []
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-name.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-name.json
index 750e310763ee9..2b82cda3803b9 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-missing-name.json
@@ -1,8 +1,6 @@
 {
   "type": "StaticLibrary",
   "target_triple": "arm64-apple-macosx",
-  "namespace": {
-    "kind": "StaticLibrary"
-  },
+  "namespace": {},
   "members": []
 }
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-wrong-kind.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-wrong-kind.json
deleted file mode 100644
index 073cd4a505d2f..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/namespace-wrong-kind.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "type": "StaticLibrary",
-  "target_triple": "arm64-apple-macosx",
-  "namespace": {
-    "kind": "CompilationUnit",
-    "name": "libfoo"
-  },
-  "members": []
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/not-normalized-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/not-normalized-target-triple.json
index f9b0c3351c0ee..3892e949ec1e1 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/not-normalized-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/not-normalized-target-triple.json
@@ -2,7 +2,6 @@
   "type": "StaticLibrary",
   "target_triple": "arm64-macosx-apple",
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "members": []
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-empty.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-empty.json
index 3059d007a2e9e..b507063b8178a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-empty.json
@@ -1,7 +1,6 @@
 {
   "members": [],
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libempty"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-multiple-members.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-multiple-members.json
index 7e1636d2740c8..e0a77a51df2ce 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-multiple-members.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-multiple-members.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "a.cpp"
       },
       "type": "TUSummary"
@@ -17,7 +16,6 @@
       "linkage_table": [],
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "b.cpp"
       },
       "type": "TUSummary"
@@ -28,14 +26,12 @@
       "linkage_table": [],
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "c.cpp"
       },
       "type": "TUSummary"
     }
   ],
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libmulti"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-single-member.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-single-member.json
index 7ad6021fbc447..b930f420a8908 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-single-member.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/rt-single-member.json
@@ -6,14 +6,12 @@
       "linkage_table": [],
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "a.cpp"
       },
       "type": "TUSummary"
     }
   ],
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libfoo"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/unsorted-members-input.json b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/unsorted-members-input.json
index fb6820ca7a07d..14b5d2ace17ae 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/unsorted-members-input.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/Inputs/unsorted-members-input.json
@@ -6,7 +6,6 @@
       "linkage_table": [],
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "c.cpp"
       },
       "type": "TUSummary"
@@ -17,7 +16,6 @@
       "linkage_table": [],
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "a.cpp"
       },
       "type": "TUSummary"
@@ -28,14 +26,12 @@
       "linkage_table": [],
       "target_triple": "arm64-apple-macosx",
       "tu_namespace": {
-        "kind": "CompilationUnit",
         "name": "b.cpp"
       },
       "type": "TUSummary"
     }
   ],
   "namespace": {
-    "kind": "StaticLibrary",
     "name": "libmulti"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/top-level.test b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/top-level.test
index a27496f2681e6..2c60a0861a6b6 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/top-level.test
+++ b/clang/test/Analysis/Scalable/ssaf-format/StaticLibrary/top-level.test
@@ -41,27 +41,6 @@
 // MISSING-NAMESPACE:      clang-ssaf-format: error: reading StaticLibrary from file '{{.*}}missing-namespace.json'
 // MISSING-NAMESPACE-NEXT: failed to read BuildNamespace from field 'namespace': expected JSON object
 
-// RUN: not clang-ssaf-format --type static-library %S/Inputs/namespace-missing-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-MISSING-KIND
-// NAMESPACE-MISSING-KIND:      clang-ssaf-format: error: reading StaticLibrary from file '{{.*}}namespace-missing-kind.json'
-// NAMESPACE-MISSING-KIND-NEXT: reading BuildNamespace from field 'namespace'
-// NAMESPACE-MISSING-KIND-NEXT: failed to read BuildNamespaceKind from field 'kind': expected JSON string
-
-// RUN: not clang-ssaf-format --type static-library %S/Inputs/namespace-invalid-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-INVALID-KIND
-// NAMESPACE-INVALID-KIND:      clang-ssaf-format: error: reading StaticLibrary from file '{{.*}}namespace-invalid-kind.json'
-// NAMESPACE-INVALID-KIND-NEXT: reading BuildNamespace from field 'namespace'
-// NAMESPACE-INVALID-KIND-NEXT: reading BuildNamespaceKind from field 'kind'
-// NAMESPACE-INVALID-KIND-NEXT: invalid BuildNamespaceKind value 'invalid_kind' for field 'kind'
-
-// StaticLibrary's namespace field must specifically have kind=StaticLibrary.
-// Any other well-formed kind (CompilationUnit, LinkUnit) is reported as a
-// mismatch.
-// RUN: not clang-ssaf-format --type static-library %S/Inputs/namespace-wrong-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-WRONG-KIND
-// NAMESPACE-WRONG-KIND:      clang-ssaf-format: error: reading StaticLibrary from file '{{.*}}namespace-wrong-kind.json'
-// NAMESPACE-WRONG-KIND-NEXT: expected 'StaticLibrary' for field 'namespace.kind' but got 'CompilationUnit'
-
 // RUN: not clang-ssaf-format --type static-library %S/Inputs/namespace-missing-name.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=NAMESPACE-MISSING-NAME
 // NAMESPACE-MISSING-NAME:      clang-ssaf-format: error: reading StaticLibrary from file '{{.*}}namespace-missing-name.json'
@@ -122,4 +101,4 @@
 // RUN: not clang-ssaf-format --type static-library %S/Inputs/duplicate-member.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=DUPLICATE-MEMBER
 // DUPLICATE-MEMBER:      clang-ssaf-format: error: reading StaticLibrary from file '{{.*}}duplicate-member.json'
-// DUPLICATE-MEMBER-NEXT: failed to insert StaticLibrary member at index '1': encountered duplicate 'BuildNamespace(CompilationUnit, a.cpp)'
+// DUPLICATE-MEMBER-NEXT: failed to insert StaticLibrary member at index '1': encountered duplicate 'BuildNamespace(a.cpp)'
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
index c7493f7e44b63..0ce52632d82e1 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-element-not-object.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
index e4f8167c42c68..38e8c04ee29f1 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-data.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
index e2b47108e352c..4a5d498762543 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-entry-missing-summary-name.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
index d386cc4d01feb..f755bb98a759d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/data-not-array.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
index a4d6723f0c595..7b4c3b399a5ad 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity-id-in-data-map.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
index 16e47f09d2a00..bc0611bde6f65 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-entity.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
@@ -22,11 +21,11 @@
   "linkage_table": [
     {
       "id": 0,
-      "linkage": { "type": "Internal" }
+      "linkage": {"type": "Internal"}
     },
     {
       "id": 1,
-      "linkage": { "type": "External" }
+      "linkage": {"type": "External"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
index c8051f1c65957..752578a9cb1c4 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/duplicate-summary-name.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
index 53ca9af49e1d2..6832e27c01d64 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-element-not-object.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
index 5510ddccda80e..10341a30363c0 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-id.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
index add0a42a0efa6..aab301cd67b65 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-data-missing-entity-summary.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
index 4d3b958f56b2c..5ebddf9bea8a6 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-id-not-uint64.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
index a9b793c706697..9fd93ef2f624c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-suffix.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
@@ -14,7 +13,7 @@
   "linkage_table": [
     {
       "id": 0,
-      "linkage": { "type": "External" }
+      "linkage": {"type": "External"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
index d32cf5c7ff188..7cdfd88f80530 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/entity-name-missing-usr.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
@@ -14,7 +13,7 @@
   "linkage_table": [
     {
       "id": 0,
-      "linkage": { "type": "Internal" }
+      "linkage": {"type": "Internal"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
index 6a0f8b77c09e6..0ee127e912b4e 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-element-not-object.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [123],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
index b08b426f3c411..a388bc0bcb198 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-id-not-uint64.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
index b6cdea259939a..9fb7613559aae 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-id.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
index 12b52496f3c04..0f5b77c967045 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-entry-missing-name.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
@@ -11,7 +10,7 @@
   "linkage_table": [
     {
       "id": 0,
-      "linkage": { "type": "None" }
+      "linkage": {"type": "None"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
index 098595093e1e0..8df85bf5c2c0c 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/id-table-not-array.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": {},
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
deleted file mode 100644
index a13fa2fe6bf42..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/invalid-kind.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
-  "tu_namespace": {
-    "kind": "invalid_kind",
-    "name": "test.cpp"
-  },
-  "id_table": [],
-  "linkage_table": [],
-  "data": [],
-  "target_triple": "arm64-apple-macosx",
-  "type": "TUSummary"
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
index 2e3cd065e82d9..e9d95a4b07617 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-duplicate-id.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
@@ -15,11 +14,11 @@
   "linkage_table": [
     {
       "id": 0,
-      "linkage": { "type": "External" }
+      "linkage": {"type": "External"}
     },
     {
       "id": 0,
-      "linkage": { "type": "Internal" }
+      "linkage": {"type": "Internal"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
index b08e22e2bbd7e..a85050e639d36 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-element-not-object.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
index fde6f8b169cda..fb4b364e3efb5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-id-not-uint64.json
@@ -1,13 +1,12 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
   "linkage_table": [
     {
       "id": "not_a_number",
-      "linkage": { "type": "External" }
+      "linkage": {"type": "External"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
index c9cabba10173e..51bb9066d05c2 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-invalid-type.json
@@ -1,13 +1,12 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
   "linkage_table": [
     {
       "id": 0,
-      "linkage": { "type": "invalid_type" }
+      "linkage": {"type": "invalid_type"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
index 8fdc7c7bb18f0..053c71eead77b 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-linkage-missing-type.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
index 597db631bfd60..926d517187d9d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-id.json
@@ -1,12 +1,11 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
   "linkage_table": [
     {
-      "linkage": { "type": "External" }
+      "linkage": {"type": "External"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
index 05654ecff98cd..72a87764a9945 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-entry-missing-linkage.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
index e0d15d64a0d26..5ee0ef7945da4 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-extra-id.json
@@ -1,13 +1,12 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
   "linkage_table": [
     {
       "id": 0,
-      "linkage": { "type": "External" }
+      "linkage": {"type": "External"}
     }
   ],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
index 0ba968150772b..7290bce38f712 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-missing-id.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
index 5823203d8a78a..c55b30305fda4 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/linkage-table-not-array.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/mismatched-type.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/mismatched-type.json
index ff8de5a3b8d18..67dd44780ebaf 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/mismatched-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/mismatched-type.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "LUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
index acf745874f98c..17640787d0563 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-data.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
index 32cd4e5fd8374..2588bfeb56e58 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-id-table.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
deleted file mode 100644
index 5123eee3b4635..0000000000000
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-kind.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "tu_namespace": {
-    "name": "test.cpp"
-  },
-  "id_table": [],
-  "linkage_table": [],
-  "data": [],
-  "target_triple": "arm64-apple-macosx",
-  "type": "TUSummary"
-}
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
index d9a5e0c2c417f..4c5662bb34d0a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-linkage-table.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
index 2bc2b044beb83..46df20c658021 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-name.json
@@ -1,7 +1,5 @@
 {
-  "tu_namespace": {
-    "kind": "CompilationUnit"
-  },
+  "tu_namespace": {},
   "id_table": [],
   "linkage_table": [],
   "data": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
index 47f7230671601..a74ee92bb3002 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-target-triple.json
@@ -3,7 +3,6 @@
   "id_table": [],
   "linkage_table": [],
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-type.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-type.json
index 3e7b173c4d486..200776105c0ab 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/missing-type.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   }
 }
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
index aa98ebf6db8ee..9a48d5831bc69 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/not-normalized-target-triple.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "target_triple": "arm64-macosx-apple",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
index 7859843bdadb2..0b29518f97cd5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-element-not-object.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
index a5fdfb9159e59..9b17db36ed747 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-first-field.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
index 837478a480b03..3485487d768cc 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-pairs-field-type.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
index 2b90c19e7329b..c85f831bca7c5 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-invalid-second-field.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
index d9747413f533b..f53568bc68919 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-first-field.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
index 9032a351802bf..e694ecc2a55df 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-pairs-field.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
index 3c5df43fb79ba..3e4bb0da64c5e 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/pairs-missing-second-field.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
index a84b3a0c8cf19..fae5ed99a8695 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/read-entity-summary-no-format-info.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
index 2ba2b6956602f..75bb74e71117a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty-data-entry.json
@@ -9,7 +9,6 @@
   "linkage_table": [],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
index f89161ea705e7..4283c249de14f 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-empty.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
index d61e83b130a07..5458aa1f60e41 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-link-unit.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "LinkUnit",
     "name": "libtest.so"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
index bb26bc0de603a..6260dafad4ed7 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-external.json
@@ -19,7 +19,6 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
index f3aa427a9e239..e90fa8319d881 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-internal.json
@@ -19,7 +19,6 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
index c22c932ad2882..d725ff778c417 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-multiple.json
@@ -45,7 +45,6 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
index 495890dc3cc44..fad1f78846cd4 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-linkage-none.json
@@ -19,7 +19,6 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
index 080afccbdf482..c0a893e454c58 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/Inputs/rt-two-summary-types.json
@@ -203,7 +203,6 @@
   ],
   "target_triple": "arm64-apple-macosx",
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "test.cpp"
   },
   "type": "TUSummary"
diff --git a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
index a17ddbb6e64e3..989c9c03a3c6a 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
+++ b/clang/test/Analysis/Scalable/ssaf-format/TUSummary/top-level.test
@@ -3,31 +3,10 @@
 
 // REQUIRES: plugins
 
-// ============================================================================
-// buildNamespaceKindFromJSON() errors
-// ============================================================================
-
-// RUN: not clang-ssaf-format --type tu %S/Inputs/invalid-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=INVALID-KIND
-// RUN: not clang-ssaf-format --type tu --encoding %S/Inputs/invalid-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=INVALID-KIND
-// INVALID-KIND:      clang-ssaf-format: error: reading TUSummary from file '{{.*}}invalid-kind.json'
-// INVALID-KIND-NEXT: reading BuildNamespace from field 'tu_namespace'
-// INVALID-KIND-NEXT: reading BuildNamespaceKind from field 'kind'
-// INVALID-KIND-NEXT: invalid BuildNamespaceKind value 'invalid_kind' for field 'kind'
-
 // ============================================================================
 // buildNamespaceFromJSON() errors
 // ============================================================================
 
-// RUN: not clang-ssaf-format --type tu %S/Inputs/missing-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=MISSING-KIND
-// RUN: not clang-ssaf-format --type tu --encoding %S/Inputs/missing-kind.json 2>&1 \
-// RUN:   | FileCheck %s --match-full-lines --check-prefix=MISSING-KIND
-// MISSING-KIND:      clang-ssaf-format: error: reading TUSummary from file '{{.*}}missing-kind.json'
-// MISSING-KIND-NEXT: reading BuildNamespace from field 'tu_namespace'
-// MISSING-KIND-NEXT: failed to read BuildNamespaceKind from field 'kind': expected JSON string
-
 // RUN: not clang-ssaf-format --type tu %S/Inputs/missing-name.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=MISSING-NAME
 // RUN: not clang-ssaf-format --type tu --encoding %S/Inputs/missing-name.json 2>&1 \
diff --git a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-count.json b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-count.json
index 4cc1f4f3522ee..4f27038ec77e3 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-count.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-bad-count.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-entry-not-object.json b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-entry-not-object.json
index 3be3acba1aa77..7aef816304654 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-entry-not-object.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-entry-not-object.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-missing-entity-id.json b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-missing-entity-id.json
index 8eb3954a342e9..cb01905a81ea8 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-missing-entity-id.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/pairs-result-missing-entity-id.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-all-results.json b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-all-results.json
index 5b50a4da1dc98..849bd3d49c33d 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-all-results.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-all-results.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -18,7 +17,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
@@ -31,7 +29,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-multiple-results.json b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-multiple-results.json
index e07b8abf9e712..7bb8de6def3dd 100644
--- a/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-multiple-results.json
+++ b/clang/test/Analysis/Scalable/ssaf-format/WPASuite/Inputs/rt-multiple-results.json
@@ -5,7 +5,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "test.exe"
           }
         ],
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
index 0fe78af8c28bb..32c573ee578e8 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-1.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "tu1.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
index 48a7fbef570e6..f41426974a3d2 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-2.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "tu2.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
index 2b4e9179934d5..8db2137f1de17 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-empty.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "empty.cpp"
   },
   "id_table": [],
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
index a66be3036e31f..e92fc9c0e66be 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-multikey.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "invalid-entity-id-multikey.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
index 535cc18dc10d5..4ef0df8a96b04 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-ref.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "invalid-entity-id-ref.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
index 1fd3d1aeb0ac9..1700792152922 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-invalid-entity-id-value.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "invalid-entity-id-value.cpp"
   },
   "id_table": [
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
index 6d6daedb644b4..7730a5dfdc7f7 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Inputs/tu-missing-fields.json
@@ -1,6 +1,5 @@
 {
   "tu_namespace": {
-    "kind": "CompilationUnit",
     "name": "missing-fields.cpp"
   },
   "target_triple": "arm64-apple-macosx",
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
index 663f5dd814534..9821347c45345 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1+2.json
@@ -404,7 +404,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -417,11 +416,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -434,11 +431,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -451,11 +446,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -468,11 +461,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -485,7 +476,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -498,7 +488,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -511,11 +500,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -528,11 +515,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -545,11 +530,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -562,11 +545,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1+2"
           }
         ],
@@ -645,7 +626,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "lu-1+2"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
index 4fd99f978148b..36d16ed6e7d2a 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-1.json
@@ -227,7 +227,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "lu-1"
           }
         ],
@@ -240,11 +239,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1"
           }
         ],
@@ -257,11 +254,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1"
           }
         ],
@@ -274,7 +269,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "lu-1"
           }
         ],
@@ -287,11 +281,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1"
           }
         ],
@@ -304,11 +296,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu1.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-1"
           }
         ],
@@ -357,7 +347,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "lu-1"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
index e7fd3f39da0c1..3dded71ee1bbd 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-2.json
@@ -233,7 +233,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "lu-2"
           }
         ],
@@ -246,11 +245,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-2"
           }
         ],
@@ -263,11 +260,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-2"
           }
         ],
@@ -280,7 +275,6 @@
       "name": {
         "namespace": [
           {
-            "kind": "LinkUnit",
             "name": "lu-2"
           }
         ],
@@ -293,11 +287,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-2"
           }
         ],
@@ -310,11 +302,9 @@
       "name": {
         "namespace": [
           {
-            "kind": "CompilationUnit",
             "name": "tu2.cpp"
           },
           {
-            "kind": "LinkUnit",
             "name": "lu-2"
           }
         ],
@@ -363,7 +353,6 @@
   ],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "lu-2"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
index 30ba3ed8f0aed..16e5eb56d2221 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
+++ b/clang/test/Analysis/Scalable/ssaf-linker/Outputs/lu-empty.json
@@ -4,7 +4,6 @@
   "linkage_table": [],
   "lu_namespace": [
     {
-      "kind": "LinkUnit",
       "name": "lu-empty"
     }
   ],
diff --git a/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test b/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
index 5bda8128ac0e1..d762534a3f86f 100644
--- a/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
+++ b/clang/test/Analysis/Scalable/ssaf-linker/linking-errors.test
@@ -7,7 +7,7 @@
 // RUN: not clang-ssaf-linker %S/Inputs/tu-empty.json %S/Inputs/tu-empty.json -o %t/lu.json 2>&1 \
 // RUN:   | FileCheck %s --match-full-lines --check-prefix=DUP-NS
 // DUP-NS:      clang-ssaf-linker: error: Linking summary '{{.*}}tu-empty.json'
-// DUP-NS-NEXT: failed to link TU summary: duplicate BuildNamespace(CompilationUnit, empty.cpp)
+// DUP-NS-NEXT: failed to link TU summary: duplicate BuildNamespace(empty.cpp)
 
 // Entity ID object in summary data blob with '@' key alongside extra keys is a fatal error.
 // RUN: not clang-ssaf-linker %S/Inputs/tu-invalid-entity-id-multikey.json -o %t/lu.json 2>&1 \
diff --git a/clang/tools/clang-ssaf-linker/SSAFLinker.cpp b/clang/tools/clang-ssaf-linker/SSAFLinker.cpp
index a8bf6c97a37b8..d64a88936056c 100644
--- a/clang/tools/clang-ssaf-linker/SSAFLinker.cpp
+++ b/clang/tools/clang-ssaf-linker/SSAFLinker.cpp
@@ -125,8 +125,7 @@ void link(const LinkerInput &LI, llvm::TimerGroup &TG) {
   // TODO: The linker currently uses a hardcoded target triple. Architecture
   // tracking in the linker will be handled properly in a separate PR.
   EntityLinker EL(llvm::Triple("arm64-apple-macosx"),
-                  NestedBuildNamespace(BuildNamespace(
-                      BuildNamespaceKind::LinkUnit, LI.LinkUnitName)));
+                  NestedBuildNamespace(BuildNamespace(LI.LinkUnitName)));
 
   llvm::Timer TRead("read", "Read Summaries", TG);
   llvm::Timer TLink("link", "Link Summaries", TG);
diff --git a/clang/unittests/ScalableStaticAnalysis/Analyses/CallGraph/CallGraphExtractorTest.cpp b/clang/unittests/ScalableStaticAnalysis/Analyses/CallGraph/CallGraphExtractorTest.cpp
index f8769f3a9ce4d..8b14f5c05be45 100644
--- a/clang/unittests/ScalableStaticAnalysis/Analyses/CallGraph/CallGraphExtractorTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Analyses/CallGraph/CallGraphExtractorTest.cpp
@@ -125,9 +125,8 @@ static const SummaryName CallGraphName{CallGraphSummary::Name.str()};
 
 struct CallGraphExtractorTest : ssaf::TestFixture {
   SSAFOptions Opts;
-  TUSummary Summary{
-      llvm::Triple("arm64-apple-macosx"),
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "Mock.cpp")};
+  TUSummary Summary{llvm::Triple("arm64-apple-macosx"),
+                    BuildNamespace("Mock.cpp")};
   TUSummaryBuilder Builder = TUSummaryBuilder(Summary, Opts);
 
   /// Creates the AST and extractor, then extracts the summaries from the AST.
diff --git a/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowTest.cpp b/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowTest.cpp
index b6d2b8b1af3cf..89443cefc356e 100644
--- a/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowTest.cpp
@@ -154,8 +154,7 @@ class PointerFlowTest : public TestFixture {
   std::unique_ptr<ASTUnit> AST;
 
   PointerFlowTest()
-      : TUSum(llvm::Triple("arm64-apple-macosx"),
-              BuildNamespace(BuildNamespaceKind::CompilationUnit, "Mock.cpp")),
+      : TUSum(llvm::Triple("arm64-apple-macosx"), BuildNamespace("Mock.cpp")),
         Builder(TUSum, Opts), Extractor(nullptr) {}
 
   template <typename ContributorDecl = NamedDecl,
diff --git a/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp b/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp
index 8c43ead9750ca..ed8d9470a5d19 100644
--- a/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Analyses/PointerFlow/PointerFlowWPATest.cpp
@@ -37,15 +37,13 @@ class PointerFlowWPATest : public TestFixture {
       EntityLinkage(EntityLinkageType::External);
 
   std::unique_ptr<LUSummary> makeLUSummary() {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     return std::make_unique<LUSummary>(llvm::Triple("arm64-apple-macosx"),
                                        std::move(NS));
   }
 
   EntityId addEntity(LUSummary &LU, llvm::StringRef USR) {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     EntityName Name(USR.str(), "", NS);
     EntityId Id = getIdTable(LU).getId(Name);
     getLinkageTable(LU).insert({Id, ExternalLinkage});
diff --git a/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp b/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
index c2f4cb97c0fae..180c5e54f43a2 100644
--- a/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
@@ -43,8 +43,7 @@ class UnsafeBufferUsageTest : public TestFixture {
   std::unique_ptr<ASTUnit> AST;
 
   UnsafeBufferUsageTest()
-      : TUSum(llvm::Triple("arm64-apple-macosx"),
-              BuildNamespace(BuildNamespaceKind::CompilationUnit, "Mock.cpp")),
+      : TUSum(llvm::Triple("arm64-apple-macosx"), BuildNamespace("Mock.cpp")),
         Builder(TUSum, Opts) {}
 
   bool setUpTest(StringRef Code) {
diff --git a/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp b/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
index 448f838297e8f..201ddbde2571d 100644
--- a/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Analyses/UnsafeBufferUsage/UnsafeBufferUsageWPATest.cpp
@@ -38,15 +38,13 @@ class UnsafeBufferUsageWPATest : public TestFixture {
       EntityLinkage(EntityLinkageType::External);
 
   std::unique_ptr<LUSummary> makeLUSummary() {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     return std::make_unique<LUSummary>(llvm::Triple("arm64-apple-macosx"),
                                        std::move(NS));
   }
 
   EntityId addEntity(LUSummary &LU, llvm::StringRef USR) {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     EntityName Name(USR.str(), "", NS);
     EntityId Id = getIdTable(LU).getId(Name);
     getLinkageTable(LU).insert({Id, ExternalLinkage});
diff --git a/clang/unittests/ScalableStaticAnalysis/BuildNamespaceTest.cpp b/clang/unittests/ScalableStaticAnalysis/BuildNamespaceTest.cpp
index 5089796a2b0b8..c57c64c8cce30 100644
--- a/clang/unittests/ScalableStaticAnalysis/BuildNamespaceTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/BuildNamespaceTest.cpp
@@ -16,21 +16,14 @@ namespace clang::ssaf {
 namespace {
 
 TEST(BuildNamespaceTest, Equality) {
-  auto BN1 = BuildNamespace::makeCompilationUnit("test.cpp");
-  auto BN2 = BuildNamespace::makeCompilationUnit("test.cpp");
-  auto BN3 = BuildNamespace::makeCompilationUnit("other.cpp");
+  BuildNamespace BN1("test.cpp");
+  BuildNamespace BN2("test.cpp");
+  BuildNamespace BN3("other.cpp");
 
   EXPECT_EQ(BN1, BN2);
   EXPECT_NE(BN1, BN3);
 }
 
-TEST(BuildNamespaceTest, DifferentKinds) {
-  BuildNamespace CU(BuildNamespaceKind::CompilationUnit, "test");
-  BuildNamespace LU(BuildNamespaceKind::LinkUnit, "test");
-
-  EXPECT_NE(CU, LU);
-}
-
 // NestedBuildNamespace Tests
 
 TEST(NestedBuildNamespaceTest, DefaultConstruction) {
@@ -39,29 +32,24 @@ TEST(NestedBuildNamespaceTest, DefaultConstruction) {
 }
 
 TEST(NestedBuildNamespaceTest, SingleNamespaceConstruction) {
-  auto BN = BuildNamespace::makeCompilationUnit("test.cpp");
+  BuildNamespace BN("test.cpp");
   NestedBuildNamespace NBN(BN);
 
   EXPECT_FALSE(NBN.empty());
 }
 
-TEST(NestedBuildNamespaceTest, MakeTU) {
-  auto NBN = NestedBuildNamespace::makeCompilationUnit("test.cpp");
-  EXPECT_FALSE(NBN.empty());
-}
-
 TEST(NestedBuildNamespaceTest, Equality) {
-  auto NBN1 = NestedBuildNamespace::makeCompilationUnit("test.cpp");
-  auto NBN2 = NestedBuildNamespace::makeCompilationUnit("test.cpp");
-  auto NBN3 = NestedBuildNamespace::makeCompilationUnit("other.cpp");
+  NestedBuildNamespace NBN1(BuildNamespace("test.cpp"));
+  NestedBuildNamespace NBN2(BuildNamespace("test.cpp"));
+  NestedBuildNamespace NBN3(BuildNamespace("other.cpp"));
 
   EXPECT_EQ(NBN1, NBN2);
   EXPECT_NE(NBN1, NBN3);
 }
 
 TEST(NestedBuildNamespaceTest, MakeQualified) {
-  auto NBN1 = NestedBuildNamespace::makeCompilationUnit("test.cpp");
-  BuildNamespace LinkNS(BuildNamespaceKind::LinkUnit, "app");
+  NestedBuildNamespace NBN1(BuildNamespace("test.cpp"));
+  BuildNamespace LinkNS("app");
   NestedBuildNamespace NBN2(LinkNS);
 
   auto Qualified = NBN1.makeQualified(NBN2);
@@ -72,67 +60,28 @@ TEST(NestedBuildNamespaceTest, MakeQualified) {
 
 TEST(NestedBuildNamespaceTest, EmptyQualified) {
   NestedBuildNamespace Empty;
-  auto NBN = NestedBuildNamespace::makeCompilationUnit("test.cpp");
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
 
   auto Qualified = Empty.makeQualified(NBN);
   EXPECT_EQ(Qualified, NBN);
 }
 
-TEST(BuildNamespaceKindTest, FormatProvider) {
-  EXPECT_EQ(llvm::formatv("{0}", BuildNamespaceKind::CompilationUnit).str(),
-            "CompilationUnit");
-  EXPECT_EQ(llvm::formatv("{0}", BuildNamespaceKind::LinkUnit).str(),
-            "LinkUnit");
-  EXPECT_EQ(llvm::formatv("{0}", BuildNamespaceKind::StaticLibrary).str(),
-            "StaticLibrary");
-}
-
-TEST(BuildNamespaceKindTest, StreamOutputCompilationUnit) {
-  std::string S;
-  llvm::raw_string_ostream(S) << BuildNamespaceKind::CompilationUnit;
-  EXPECT_EQ(S, "CompilationUnit");
-}
-
-TEST(BuildNamespaceKindTest, StreamOutputLinkUnit) {
-  std::string S;
-  llvm::raw_string_ostream(S) << BuildNamespaceKind::LinkUnit;
-  EXPECT_EQ(S, "LinkUnit");
-}
-
-TEST(BuildNamespaceKindTest, StreamOutputStaticLibrary) {
-  std::string S;
-  llvm::raw_string_ostream(S) << BuildNamespaceKind::StaticLibrary;
-  EXPECT_EQ(S, "StaticLibrary");
-}
-
 TEST(BuildNamespaceTest, FormatProvider) {
-  EXPECT_EQ(
-      llvm::formatv("{0}", BuildNamespace(BuildNamespaceKind::CompilationUnit,
-                                          "test.cpp"))
-          .str(),
-      "BuildNamespace(CompilationUnit, test.cpp)");
+  EXPECT_EQ(llvm::formatv("{0}", BuildNamespace("test.cpp")).str(),
+            "BuildNamespace(test.cpp)");
 }
 
 TEST(NestedBuildNamespaceTest, FormatProvider) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
-  EXPECT_EQ(
-      llvm::formatv("{0}", NBN).str(),
-      "NestedBuildNamespace([BuildNamespace(CompilationUnit, test.cpp)])");
-}
-
-TEST(BuildNamespaceTest, StreamOutputCompilationUnit) {
-  BuildNamespace BN(BuildNamespaceKind::CompilationUnit, "test.cpp");
-  std::string S;
-  llvm::raw_string_ostream(S) << BN;
-  EXPECT_EQ(S, "BuildNamespace(CompilationUnit, test.cpp)");
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
+  EXPECT_EQ(llvm::formatv("{0}", NBN).str(),
+            "NestedBuildNamespace([BuildNamespace(test.cpp)])");
 }
 
-TEST(BuildNamespaceTest, StreamOutputLinkUnit) {
-  BuildNamespace BN(BuildNamespaceKind::LinkUnit, "app");
+TEST(BuildNamespaceTest, StreamOutput) {
+  BuildNamespace BN("test.cpp");
   std::string S;
   llvm::raw_string_ostream(S) << BN;
-  EXPECT_EQ(S, "BuildNamespace(LinkUnit, app)");
+  EXPECT_EQ(S, "BuildNamespace(test.cpp)");
 }
 
 TEST(NestedBuildNamespaceTest, StreamOutputEmpty) {
@@ -143,23 +92,19 @@ TEST(NestedBuildNamespaceTest, StreamOutputEmpty) {
 }
 
 TEST(NestedBuildNamespaceTest, StreamOutputSingle) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
   std::string S;
   llvm::raw_string_ostream(S) << NBN;
-  EXPECT_EQ(
-      S, "NestedBuildNamespace([BuildNamespace(CompilationUnit, test.cpp)])");
+  EXPECT_EQ(S, "NestedBuildNamespace([BuildNamespace(test.cpp)])");
 }
 
 TEST(NestedBuildNamespaceTest, StreamOutputMultiple) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
-  NBN = NBN.makeQualified(NestedBuildNamespace(
-      BuildNamespace(BuildNamespaceKind::LinkUnit, "app")));
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
+  NBN = NBN.makeQualified(NestedBuildNamespace(BuildNamespace("app")));
   std::string S;
   llvm::raw_string_ostream(S) << NBN;
-  EXPECT_EQ(S, "NestedBuildNamespace([BuildNamespace(CompilationUnit, "
-               "test.cpp), BuildNamespace(LinkUnit, app)])");
+  EXPECT_EQ(S, "NestedBuildNamespace([BuildNamespace(test.cpp), "
+               "BuildNamespace(app)])");
 }
 
 } // namespace
diff --git a/clang/unittests/ScalableStaticAnalysis/EntityIdTableTest.cpp b/clang/unittests/ScalableStaticAnalysis/EntityIdTableTest.cpp
index ead7e35f8421f..01f007bdaecd8 100644
--- a/clang/unittests/ScalableStaticAnalysis/EntityIdTableTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/EntityIdTableTest.cpp
@@ -84,11 +84,11 @@ TEST(EntityIdTableTest, MultipleEntities) {
 TEST(EntityIdTableTest, WithBuildNamespace) {
   EntityIdTable Table;
 
-  NestedBuildNamespace NS = NestedBuildNamespace::makeCompilationUnit("test.o");
+  NestedBuildNamespace NS(BuildNamespace("test.o"));
 
   EntityName Entity1("c:@F at foo", "", NS);
   EntityName Entity2("c:@F at foo", "",
-                     NestedBuildNamespace::makeCompilationUnit("other.o"));
+                     NestedBuildNamespace(BuildNamespace("other.o")));
 
   EntityId Id1 = Table.getId(Entity1);
   EntityId Id2 = Table.getId(Entity2);
diff --git a/clang/unittests/ScalableStaticAnalysis/EntityLinkerTest.cpp b/clang/unittests/ScalableStaticAnalysis/EntityLinkerTest.cpp
index cd579e16991ef..70c17d984ce47 100644
--- a/clang/unittests/ScalableStaticAnalysis/EntityLinkerTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/EntityLinkerTest.cpp
@@ -71,10 +71,10 @@ class EntityLinkerTest : public TestFixture {
   }
 
   std::unique_ptr<TUSummaryEncoding> createTUSummaryEncoding(
-      BuildNamespaceKind Kind, llvm::StringRef Name,
+      llvm::StringRef Name,
       llvm::Triple TargetTriple = llvm::Triple("arm64-apple-macosx")) {
     return std::make_unique<TUSummaryEncoding>(std::move(TargetTriple),
-                                               BuildNamespace(Kind, Name));
+                                               BuildNamespace(Name));
   }
 
   size_t addSummaryData(TUSummaryEncoding &TU, EntityId EId,
@@ -194,8 +194,7 @@ MATCHER_P(SummaryDataHasSize, ExpectedSize,
 // ============================================================================
 
 TEST_F(EntityLinkerTest, CreatesEmptyLinker) {
-  NestedBuildNamespace LUNamespace(
-      {BuildNamespace(BuildNamespaceKind::LinkUnit, "LU")});
+  NestedBuildNamespace LUNamespace({BuildNamespace("LU")});
 
   EntityLinker Linker(llvm::Triple("arm64-apple-macosx"), LUNamespace);
 
@@ -206,13 +205,11 @@ TEST_F(EntityLinkerTest, CreatesEmptyLinker) {
 }
 
 TEST_F(EntityLinkerTest, LinksEmptyTranslationUnit) {
-  NestedBuildNamespace LUNamespace(
-      {BuildNamespace(BuildNamespaceKind::LinkUnit, "LU")});
+  NestedBuildNamespace LUNamespace({BuildNamespace("LU")});
 
   EntityLinker Linker(llvm::Triple("arm64-apple-macosx"), LUNamespace);
 
-  auto TUEmpty =
-      createTUSummaryEncoding(BuildNamespaceKind::CompilationUnit, "TUEmpty");
+  auto TUEmpty = createTUSummaryEncoding("TUEmpty");
 
   EXPECT_THAT_ERROR(Linker.link(std::move(TUEmpty)), llvm::Succeeded());
 
@@ -223,12 +220,11 @@ TEST_F(EntityLinkerTest, LinksEmptyTranslationUnit) {
 }
 
 TEST_F(EntityLinkerTest, LinksOneTranslationUnit) {
-  NestedBuildNamespace LUNamespace(
-      {BuildNamespace(BuildNamespaceKind::LinkUnit, "LU")});
+  NestedBuildNamespace LUNamespace({BuildNamespace("LU")});
 
   EntityLinker Linker(llvm::Triple("arm64-apple-macosx"), LUNamespace);
 
-  auto TU = createTUSummaryEncoding(BuildNamespaceKind::CompilationUnit, "TU");
+  auto TU = createTUSummaryEncoding("TU");
 
   const auto TU_A_Id = addEntity(*TU, "A", NoneLinkage);
   const auto TU_A_S1_Data = addSummaryData(*TU, TU_A_Id, "S1");
@@ -323,13 +319,11 @@ TEST_F(EntityLinkerTest, LinksOneTranslationUnit) {
 }
 
 TEST_F(EntityLinkerTest, LinksTwoTranslationUnits) {
-  NestedBuildNamespace LUNamespace(
-      {BuildNamespace(BuildNamespaceKind::LinkUnit, "LU")});
+  NestedBuildNamespace LUNamespace({BuildNamespace("LU")});
 
   EntityLinker Linker(llvm::Triple("arm64-apple-macosx"), LUNamespace);
 
-  auto TU1 =
-      createTUSummaryEncoding(BuildNamespaceKind::CompilationUnit, "TU1");
+  auto TU1 = createTUSummaryEncoding("TU1");
 
   // None linkage entities in TU1
   const auto TU1_X_Id = addEntity(*TU1, "X", NoneLinkage);
@@ -368,8 +362,7 @@ TEST_F(EntityLinkerTest, LinksTwoTranslationUnits) {
 
   ASSERT_THAT_ERROR(Linker.link(std::move(TU1)), llvm::Succeeded());
 
-  auto TU2 =
-      createTUSummaryEncoding(BuildNamespaceKind::CompilationUnit, "TU2");
+  auto TU2 = createTUSummaryEncoding("TU2");
 
   // None linkage entities in TU2 - includes duplicates and uniques
   const auto TU2_X_Id = addEntity(*TU2, "X", NoneLinkage);
@@ -617,36 +610,33 @@ TEST_F(EntityLinkerTest, LinksTwoTranslationUnits) {
 }
 
 TEST_F(EntityLinkerTest, RejectsDuplicateTUSummary) {
-  NestedBuildNamespace LUNamespace(
-      {BuildNamespace(BuildNamespaceKind::LinkUnit, "LU")});
+  NestedBuildNamespace LUNamespace({BuildNamespace("LU")});
 
   EntityLinker Linker(llvm::Triple("arm64-apple-macosx"), LUNamespace);
 
-  auto TU1 = createTUSummaryEncoding(BuildNamespaceKind::CompilationUnit, "TU");
+  auto TU1 = createTUSummaryEncoding("TU");
 
   ASSERT_THAT_ERROR(Linker.link(std::move(TU1)), llvm::Succeeded());
 
-  auto TU2 = createTUSummaryEncoding(BuildNamespaceKind::CompilationUnit, "TU");
+  auto TU2 = createTUSummaryEncoding("TU");
 
-  ASSERT_THAT_ERROR(Linker.link(std::move(TU2)),
-                    llvm::FailedWithMessage(
-                        HasSubstr("failed to link TU summary: duplicate "
-                                  "BuildNamespace(CompilationUnit, TU)")));
+  ASSERT_THAT_ERROR(
+      Linker.link(std::move(TU2)),
+      llvm::FailedWithMessage(HasSubstr("failed to link TU summary: duplicate "
+                                        "BuildNamespace(TU)")));
 }
 
 // Reproduces a crash when linking internal-linkage entities
 // (e.g. "static inline" functions) that share the same USR across TUs.
 TEST_F(EntityLinkerTest, InternalLinkageWithEmptyNamespaceAcrossTUs) {
-  constexpr auto LinkUnit = BuildNamespaceKind::LinkUnit;
-  constexpr auto CompilationUnit = BuildNamespaceKind::CompilationUnit;
   EntityLinker Linker(llvm::Triple("arm64-apple-macosx"),
-                      NestedBuildNamespace{BuildNamespace(LinkUnit, "LU")});
+                      NestedBuildNamespace{BuildNamespace("LU")});
 
-  auto TU1 = createTUSummaryEncoding(CompilationUnit, "TU1");
+  auto TU1 = createTUSummaryEncoding("TU1");
   addEntity(*TU1, "some_static_inline", InternalLinkage);
   ASSERT_THAT_ERROR(Linker.link(std::move(TU1)), llvm::Succeeded());
 
-  auto TU2 = createTUSummaryEncoding(CompilationUnit, "TU2");
+  auto TU2 = createTUSummaryEncoding("TU2");
   addEntity(*TU2, "some_static_inline", InternalLinkage);
   ASSERT_THAT_ERROR(Linker.link(std::move(TU2)), llvm::Succeeded());
 
@@ -654,8 +644,8 @@ TEST_F(EntityLinkerTest, InternalLinkageWithEmptyNamespaceAcrossTUs) {
   const auto Output = std::move(Linker).takeOutput();
   const auto &IdTable = getIdTable(Output);
 
-  NestedBuildNamespace TU1NS{{{CompilationUnit, "TU1"}, {LinkUnit, "LU"}}};
-  NestedBuildNamespace TU2NS{{{CompilationUnit, "TU2"}, {LinkUnit, "LU"}}};
+  NestedBuildNamespace TU1NS{{BuildNamespace("TU1"), BuildNamespace("LU")}};
+  NestedBuildNamespace TU2NS{{BuildNamespace("TU2"), BuildNamespace("LU")}};
   EntityName ExpectedTU1Name("some_static_inline", "", TU1NS);
   EntityName ExpectedTU2Name("some_static_inline", "", TU2NS);
 
diff --git a/clang/unittests/ScalableStaticAnalysis/EntityNameTest.cpp b/clang/unittests/ScalableStaticAnalysis/EntityNameTest.cpp
index 698b17efb6384..791bf19f592fc 100644
--- a/clang/unittests/ScalableStaticAnalysis/EntityNameTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/EntityNameTest.cpp
@@ -17,8 +17,8 @@ namespace clang::ssaf {
 namespace {
 
 TEST(EntityNameTest, Equality) {
-  auto NBN1 = NestedBuildNamespace::makeCompilationUnit("test.cpp");
-  auto NBN2 = NestedBuildNamespace::makeCompilationUnit("test.cpp");
+  NestedBuildNamespace NBN1(BuildNamespace("test.cpp"));
+  NestedBuildNamespace NBN2(BuildNamespace("test.cpp"));
 
   EntityName EN1("c:@F at foo", "", NBN1);
   EntityName EN2("c:@F at foo", "", NBN2);
@@ -29,7 +29,7 @@ TEST(EntityNameTest, Equality) {
 }
 
 TEST(EntityNameTest, EqualityWithDifferentSuffix) {
-  auto NBN = NestedBuildNamespace::makeCompilationUnit("test.cpp");
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
 
   EntityName EN1("c:@F at foo", "1", NBN);
   EntityName EN2("c:@F at foo", "2", NBN);
@@ -38,8 +38,8 @@ TEST(EntityNameTest, EqualityWithDifferentSuffix) {
 }
 
 TEST(EntityNameTest, EqualityWithDifferentNamespace) {
-  auto NBN1 = NestedBuildNamespace::makeCompilationUnit("test1.cpp");
-  auto NBN2 = NestedBuildNamespace::makeCompilationUnit("test2.cpp");
+  NestedBuildNamespace NBN1(BuildNamespace("test1.cpp"));
+  NestedBuildNamespace NBN2(BuildNamespace("test2.cpp"));
 
   EntityName EN1("c:@F at foo", "", NBN1);
   EntityName EN2("c:@F at foo", "", NBN2);
@@ -48,11 +48,10 @@ TEST(EntityNameTest, EqualityWithDifferentNamespace) {
 }
 
 TEST(EntityNameTest, MakeQualified) {
-  auto NBN1 = NestedBuildNamespace::makeCompilationUnit("test.cpp");
+  NestedBuildNamespace NBN1(BuildNamespace("test.cpp"));
   EntityName EN("c:@F at foo", "", NBN1);
 
-  BuildNamespace LinkNS(BuildNamespaceKind::LinkUnit, "app");
-  NestedBuildNamespace NBN2(LinkNS);
+  NestedBuildNamespace NBN2(BuildNamespace("app"));
 
   auto Qualified = EN.makeQualified(NBN2);
 
@@ -60,35 +59,29 @@ TEST(EntityNameTest, MakeQualified) {
 }
 
 TEST(EntityNameTest, FormatProvider) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
   EntityName EN("c:@F at foo", "", NBN);
-  EXPECT_EQ(
-      llvm::formatv("{0}", EN).str(),
-      "EntityName(c:@F at foo, , "
-      "NestedBuildNamespace([BuildNamespace(CompilationUnit, test.cpp)]))");
+  EXPECT_EQ(llvm::formatv("{0}", EN).str(),
+            "EntityName(c:@F at foo, , "
+            "NestedBuildNamespace([BuildNamespace(test.cpp)]))");
 }
 
 TEST(EntityNameTest, StreamOutputNoSuffix) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
   EntityName EN("c:@F at foo", "", NBN);
   std::string S;
   llvm::raw_string_ostream(S) << EN;
-  EXPECT_EQ(
-      S, "EntityName(c:@F at foo, , "
-         "NestedBuildNamespace([BuildNamespace(CompilationUnit, test.cpp)]))");
+  EXPECT_EQ(S, "EntityName(c:@F at foo, , "
+               "NestedBuildNamespace([BuildNamespace(test.cpp)]))");
 }
 
 TEST(EntityNameTest, StreamOutputWithSuffix) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
+  NestedBuildNamespace NBN(BuildNamespace("test.cpp"));
   EntityName EN("c:@F at foo", "1", NBN);
   std::string S;
   llvm::raw_string_ostream(S) << EN;
-  EXPECT_EQ(
-      S, "EntityName(c:@F at foo, 1, "
-         "NestedBuildNamespace([BuildNamespace(CompilationUnit, test.cpp)]))");
+  EXPECT_EQ(S, "EntityName(c:@F at foo, 1, "
+               "NestedBuildNamespace([BuildNamespace(test.cpp)]))");
 }
 
 } // namespace
diff --git a/clang/unittests/ScalableStaticAnalysis/LUSummaryTest.cpp b/clang/unittests/ScalableStaticAnalysis/LUSummaryTest.cpp
index b67859e09c66d..4d9b684c66000 100644
--- a/clang/unittests/ScalableStaticAnalysis/LUSummaryTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/LUSummaryTest.cpp
@@ -14,7 +14,7 @@ namespace clang::ssaf {
 namespace {
 
 TEST(LUSummaryTest, GetNamespace) {
-  BuildNamespace LU(BuildNamespaceKind::LinkUnit, "app");
+  BuildNamespace LU("app");
   NestedBuildNamespace NS(LU);
   LUSummary Summary(llvm::Triple("arm64-apple-macosx"), NS);
 
diff --git a/clang/unittests/ScalableStaticAnalysis/ModelStringConversionsTest.cpp b/clang/unittests/ScalableStaticAnalysis/ModelStringConversionsTest.cpp
index b0c741d83feaf..3f45ef962e2f1 100644
--- a/clang/unittests/ScalableStaticAnalysis/ModelStringConversionsTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/ModelStringConversionsTest.cpp
@@ -13,60 +13,6 @@ using namespace clang::ssaf;
 
 namespace {
 
-//===----------------------------------------------------------------------===//
-// BuildNamespaceKind
-//===----------------------------------------------------------------------===//
-
-TEST(BuildNamespaceKindStringTest, ToStringCompilationUnit) {
-  EXPECT_EQ(buildNamespaceKindToString(BuildNamespaceKind::CompilationUnit),
-            "CompilationUnit");
-}
-
-TEST(BuildNamespaceKindStringTest, ToStringLinkUnit) {
-  EXPECT_EQ(buildNamespaceKindToString(BuildNamespaceKind::LinkUnit),
-            "LinkUnit");
-}
-
-TEST(BuildNamespaceKindStringTest, ToStringStaticLibrary) {
-  EXPECT_EQ(buildNamespaceKindToString(BuildNamespaceKind::StaticLibrary),
-            "StaticLibrary");
-}
-
-TEST(BuildNamespaceKindStringTest, FromStringCompilationUnit) {
-  EXPECT_EQ(buildNamespaceKindFromString("CompilationUnit"),
-            BuildNamespaceKind::CompilationUnit);
-}
-
-TEST(BuildNamespaceKindStringTest, FromStringLinkUnit) {
-  EXPECT_EQ(buildNamespaceKindFromString("LinkUnit"),
-            BuildNamespaceKind::LinkUnit);
-}
-
-TEST(BuildNamespaceKindStringTest, FromStringStaticLibrary) {
-  EXPECT_EQ(buildNamespaceKindFromString("StaticLibrary"),
-            BuildNamespaceKind::StaticLibrary);
-}
-
-TEST(BuildNamespaceKindStringTest, FromStringUnknown) {
-  EXPECT_EQ(buildNamespaceKindFromString("compilation_unit"), std::nullopt);
-  EXPECT_EQ(buildNamespaceKindFromString("link_unit"), std::nullopt);
-  EXPECT_EQ(buildNamespaceKindFromString("static_library"), std::nullopt);
-  EXPECT_EQ(buildNamespaceKindFromString(""), std::nullopt);
-  EXPECT_EQ(buildNamespaceKindFromString("unknown"), std::nullopt);
-}
-
-TEST(BuildNamespaceKindStringTest, RoundTrip) {
-  EXPECT_EQ(buildNamespaceKindFromString(buildNamespaceKindToString(
-                BuildNamespaceKind::CompilationUnit)),
-            BuildNamespaceKind::CompilationUnit);
-  EXPECT_EQ(buildNamespaceKindFromString(
-                buildNamespaceKindToString(BuildNamespaceKind::LinkUnit)),
-            BuildNamespaceKind::LinkUnit);
-  EXPECT_EQ(buildNamespaceKindFromString(
-                buildNamespaceKindToString(BuildNamespaceKind::StaticLibrary)),
-            BuildNamespaceKind::StaticLibrary);
-}
-
 //===----------------------------------------------------------------------===//
 // EntityLinkageType
 //===----------------------------------------------------------------------===//
diff --git a/clang/unittests/ScalableStaticAnalysis/Registries/MockSerializationFormat.cpp b/clang/unittests/ScalableStaticAnalysis/Registries/MockSerializationFormat.cpp
index 236e81a16b56e..83f5c22605317 100644
--- a/clang/unittests/ScalableStaticAnalysis/Registries/MockSerializationFormat.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Registries/MockSerializationFormat.cpp
@@ -55,7 +55,7 @@ void MockSerializationFormat::forEachRegisteredAnalysis(
 
 llvm::Expected<TUSummary>
 MockSerializationFormat::readTUSummary(llvm::StringRef Path) {
-  BuildNamespace NS(BuildNamespaceKind::CompilationUnit, "Mock.cpp");
+  BuildNamespace NS("Mock.cpp");
   TUSummary Summary(llvm::Triple("arm64-apple-macosx"), NS);
 
   auto ManifestFile = llvm::MemoryBuffer::getFile(Path + "/analyses.txt");
diff --git a/clang/unittests/ScalableStaticAnalysis/Registries/SummaryExtractorRegistryTest.cpp b/clang/unittests/ScalableStaticAnalysis/Registries/SummaryExtractorRegistryTest.cpp
index db7c7ad835bb6..5aabaf1d2a4d3 100644
--- a/clang/unittests/ScalableStaticAnalysis/Registries/SummaryExtractorRegistryTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Registries/SummaryExtractorRegistryTest.cpp
@@ -22,9 +22,8 @@ using namespace ssaf;
 
 [[nodiscard]]
 static TUSummary makeFakeSummary() {
-  return TUSummary(
-      llvm::Triple("arm64-apple-macosx"),
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "Mock.cpp"));
+  return TUSummary(llvm::Triple("arm64-apple-macosx"),
+                   BuildNamespace("Mock.cpp"));
 }
 
 namespace {
diff --git a/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/LUSummaryTest.cpp b/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/LUSummaryTest.cpp
index 3a9ed5aebfd7e..1e33b1098cc41 100644
--- a/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/LUSummaryTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/LUSummaryTest.cpp
@@ -40,7 +40,7 @@ SummaryOps LUSummaryOps{
       return Result ? llvm::Error::success() : Result.takeError();
     },
     [](llvm::StringRef FilePath) -> llvm::Error {
-      BuildNamespace BN(BuildNamespaceKind::CompilationUnit, "test.cpp");
+      BuildNamespace BN("test.cpp");
       NestedBuildNamespace NBN(std::move(BN));
       LUSummary S(llvm::Triple("arm64-apple-macosx"), std::move(NBN));
       return JSONFormat().writeLUSummary(S, FilePath);
@@ -61,7 +61,7 @@ SummaryOps LUSummaryEncodingOps{
       return Result ? llvm::Error::success() : Result.takeError();
     },
     [](llvm::StringRef FilePath) -> llvm::Error {
-      BuildNamespace BN(BuildNamespaceKind::CompilationUnit, "test.cpp");
+      BuildNamespace BN("test.cpp");
       NestedBuildNamespace NBN(std::move(BN));
       LUSummaryEncoding E(llvm::Triple("arm64-apple-macosx"), std::move(NBN));
       return JSONFormat().writeLUSummaryEncoding(E, FilePath);
@@ -302,12 +302,11 @@ TEST_F(JSONFormatLUSummaryTest, ReadEntitySummaryMismatchedSummaryName) {
 // ============================================================================
 
 TEST_F(JSONFormatLUSummaryTest, WriteEntitySummaryMissingData) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::LinkUnit, "test.exe"));
+  NestedBuildNamespace NBN(BuildNamespace("test.exe"));
   LUSummary Summary(llvm::Triple("arm64-apple-macosx"), std::move(NBN));
 
   NestedBuildNamespace Namespace =
-      NestedBuildNamespace::makeCompilationUnit("test.cpp");
+      NestedBuildNamespace(BuildNamespace("test.cpp"));
   EntityId EI = getIdTable(Summary).getId(
       EntityName{"c:@F at foo", "", std::move(Namespace)});
 
@@ -321,12 +320,11 @@ TEST_F(JSONFormatLUSummaryTest, WriteEntitySummaryMissingData) {
 }
 
 TEST_F(JSONFormatLUSummaryTest, WriteEntitySummaryMismatchedSummaryName) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::LinkUnit, "test.exe"));
+  NestedBuildNamespace NBN(BuildNamespace("test.exe"));
   LUSummary Summary(llvm::Triple("arm64-apple-macosx"), std::move(NBN));
 
   NestedBuildNamespace Namespace =
-      NestedBuildNamespace::makeCompilationUnit("test.cpp");
+      NestedBuildNamespace(BuildNamespace("test.cpp"));
   EntityId EI = getIdTable(Summary).getId(
       EntityName{"c:@F at foo", "", std::move(Namespace)});
 
@@ -419,12 +417,11 @@ TEST_P(LUSummaryTest, WriteStreamOpenFailure) {
 // ============================================================================
 
 TEST_F(JSONFormatLUSummaryTest, WriteEntitySummaryNoFormatInfo) {
-  NestedBuildNamespace NBN(
-      BuildNamespace(BuildNamespaceKind::LinkUnit, "test.exe"));
+  NestedBuildNamespace NBN(BuildNamespace("test.exe"));
   LUSummary Summary(llvm::Triple("arm64-apple-macosx"), std::move(NBN));
 
   NestedBuildNamespace Namespace =
-      NestedBuildNamespace::makeCompilationUnit("test.cpp");
+      NestedBuildNamespace(BuildNamespace("test.cpp"));
   EntityId EI = getIdTable(Summary).getId(
       EntityName{"c:@F at foo", "", std::move(Namespace)});
 
diff --git a/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/TUSummaryTest.cpp b/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/TUSummaryTest.cpp
index 1c2a890f2ddc9..0d4ad859899fd 100644
--- a/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/TUSummaryTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/Serialization/JSONFormatTest/TUSummaryTest.cpp
@@ -39,7 +39,7 @@ SummaryOps TUSummaryOps{
       return Result ? llvm::Error::success() : Result.takeError();
     },
     [](llvm::StringRef FilePath) -> llvm::Error {
-      BuildNamespace BN(BuildNamespaceKind::CompilationUnit, "test.cpp");
+      BuildNamespace BN("test.cpp");
       TUSummary S(llvm::Triple("arm64-apple-macosx"), std::move(BN));
       return JSONFormat().writeTUSummary(S, FilePath);
     },
@@ -59,7 +59,7 @@ SummaryOps TUSummaryEncodingOps{
       return Result ? llvm::Error::success() : Result.takeError();
     },
     [](llvm::StringRef FilePath) -> llvm::Error {
-      BuildNamespace BN(BuildNamespaceKind::CompilationUnit, "test.cpp");
+      BuildNamespace BN("test.cpp");
       TUSummaryEncoding E(llvm::Triple("arm64-apple-macosx"), std::move(BN));
       return JSONFormat().writeTUSummaryEncoding(E, FilePath);
     },
@@ -295,12 +295,11 @@ TEST_F(JSONFormatTUSummaryTest, ReadEntitySummaryMismatchedSummaryName) {
 // ============================================================================
 
 TEST_F(JSONFormatTUSummaryTest, WriteEntitySummaryMissingData) {
-  TUSummary Summary(
-      llvm::Triple("arm64-apple-macosx"),
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
+  TUSummary Summary(llvm::Triple("arm64-apple-macosx"),
+                    BuildNamespace("test.cpp"));
 
   NestedBuildNamespace Namespace =
-      NestedBuildNamespace::makeCompilationUnit("test.cpp");
+      NestedBuildNamespace(BuildNamespace("test.cpp"));
   EntityId EI = getIdTable(Summary).getId(
       EntityName{"c:@F at foo", "", std::move(Namespace)});
 
@@ -314,12 +313,11 @@ TEST_F(JSONFormatTUSummaryTest, WriteEntitySummaryMissingData) {
 }
 
 TEST_F(JSONFormatTUSummaryTest, WriteEntitySummaryMismatchedSummaryName) {
-  TUSummary Summary(
-      llvm::Triple("arm64-apple-macosx"),
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
+  TUSummary Summary(llvm::Triple("arm64-apple-macosx"),
+                    BuildNamespace("test.cpp"));
 
   NestedBuildNamespace Namespace =
-      NestedBuildNamespace::makeCompilationUnit("test.cpp");
+      NestedBuildNamespace(BuildNamespace("test.cpp"));
   EntityId EI = getIdTable(Summary).getId(
       EntityName{"c:@F at foo", "", std::move(Namespace)});
 
@@ -412,12 +410,11 @@ TEST_P(TUSummaryTest, WriteStreamOpenFailure) {
 // ============================================================================
 
 TEST_F(JSONFormatTUSummaryTest, WriteEntitySummaryNoFormatInfo) {
-  TUSummary Summary(
-      llvm::Triple("arm64-apple-macosx"),
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "test.cpp"));
+  TUSummary Summary(llvm::Triple("arm64-apple-macosx"),
+                    BuildNamespace("test.cpp"));
 
   NestedBuildNamespace Namespace =
-      NestedBuildNamespace::makeCompilationUnit("test.cpp");
+      NestedBuildNamespace(BuildNamespace("test.cpp"));
   EntityId EI = getIdTable(Summary).getId(
       EntityName{"c:@F at foo", "", std::move(Namespace)});
 
diff --git a/clang/unittests/ScalableStaticAnalysis/SummaryData/SummaryDataTest.cpp b/clang/unittests/ScalableStaticAnalysis/SummaryData/SummaryDataTest.cpp
index e8137f3bac308..9329d07d4e9ce 100644
--- a/clang/unittests/ScalableStaticAnalysis/SummaryData/SummaryDataTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/SummaryData/SummaryDataTest.cpp
@@ -182,15 +182,13 @@ class LUSummaryConsumerTest : public TestFixture {
   }
 
   std::unique_ptr<LUSummary> makeLUSummary() {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     return std::make_unique<LUSummary>(llvm::Triple("arm64-apple-macosx"),
                                        std::move(NS));
   }
 
   EntityId addEntity(LUSummary &LU, llvm::StringRef USR) {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     EntityName Name(USR.str(), "", NS);
     EntityId Id = getIdTable(LU).getId(Name);
     getLinkageTable(LU).insert({Id, ExternalLinkage});
diff --git a/clang/unittests/ScalableStaticAnalysis/TUSummaryBuilderTest.cpp b/clang/unittests/ScalableStaticAnalysis/TUSummaryBuilderTest.cpp
index c6a7a7b531be3..94665e3b74ee9 100644
--- a/clang/unittests/ScalableStaticAnalysis/TUSummaryBuilderTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/TUSummaryBuilderTest.cpp
@@ -91,9 +91,8 @@ void PrintTo(const MockSummaryData3 &S, std::ostream *OS) {
 
 struct TUSummaryBuilderTest : ssaf::TestFixture {
   SSAFOptions Opts;
-  TUSummary Summary{
-      llvm::Triple("arm64-apple-macosx"),
-      BuildNamespace(BuildNamespaceKind::CompilationUnit, "Mock.cpp")};
+  TUSummary Summary{llvm::Triple("arm64-apple-macosx"),
+                    BuildNamespace("Mock.cpp")};
   TUSummaryBuilder Builder{Summary, Opts};
   TUSummaryExtractor Extractor{Builder};
 
diff --git a/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/AnalysisDriverTest.cpp b/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/AnalysisDriverTest.cpp
index 95077675fb2ec..e84d6d6119505 100644
--- a/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/AnalysisDriverTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/AnalysisDriverTest.cpp
@@ -302,15 +302,13 @@ class AnalysisDriverTest : public TestFixture {
   }
 
   std::unique_ptr<LUSummary> makeLUSummary() {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     return std::make_unique<LUSummary>(llvm::Triple("arm64-apple-macosx"),
                                        std::move(NS));
   }
 
   EntityId addEntity(LUSummary &LU, llvm::StringRef USR) {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     EntityName Name(USR.str(), "", NS);
     EntityId Id = getIdTable(LU).getId(Name);
     getLinkageTable(LU).insert({Id, ExternalLinkage});
diff --git a/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp b/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
index cf5420b35e7dc..f6228dcb098de 100644
--- a/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
+++ b/clang/unittests/ScalableStaticAnalysis/WholeProgramAnalysis/UnsafeBufferReachableAnalysisTest.cpp
@@ -44,15 +44,13 @@ class UnsafeBufferReachableAnalysisTest : public TestFixture {
       EntityLinkage(EntityLinkageType::External);
 
   std::unique_ptr<LUSummary> makeLUSummary() {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     return std::make_unique<LUSummary>(llvm::Triple("arm64-apple-macosx"),
                                        std::move(NS));
   }
 
   EntityId addEntity(LUSummary &LU, llvm::StringRef USR) {
-    NestedBuildNamespace NS(
-        {BuildNamespace(BuildNamespaceKind::LinkUnit, "TestLU")});
+    NestedBuildNamespace NS({BuildNamespace("TestLU")});
     EntityName Name(USR.str(), "", NS);
     EntityId Id = getIdTable(LU).getId(Name);
     getLinkageTable(LU).insert({Id, ExternalLinkage});



More information about the cfe-commits mailing list