18#ifndef LLVM_CLANG_SCALABLESTATICANALYSIS_CORE_MODEL_BUILDNAMESPACE_H
19#define LLVM_CLANG_SCALABLESTATICANALYSIS_CORE_MODEL_BUILDNAMESPACE_H
21#include "llvm/ADT/STLExtras.h"
22#include "llvm/ADT/StringRef.h"
23#include "llvm/Support/raw_ostream.h"
51 auto asTuple()
const {
return std::tie(Kind, Name); }
55 : Kind(Kind), Name(Name.str()) {}
70 friend llvm::raw_ostream &
operator<<(llvm::raw_ostream &OS,
84 std::vector<BuildNamespace> Namespaces;
90 : Namespaces(Namespaces) {}
93 Namespaces.push_back(N);
109 Copy.Namespaces.reserve(
Copy.Namespaces.size() +
110 Namespace.Namespaces.size());
111 llvm::append_range(
Copy.Namespaces, Namespace.Namespaces);
123 friend llvm::raw_ostream &
operator<<(llvm::raw_ostream &OS,
129llvm::raw_ostream &
operator<<(llvm::raw_ostream &OS,
Represents a single namespace in the build process.
BuildNamespace(BuildNamespaceKind Kind, llvm::StringRef Name)
bool operator<(const BuildNamespace &Other) const
friend class EntityLinker
bool operator!=(const BuildNamespace &Other) const
static BuildNamespace makeCompilationUnit(llvm::StringRef CompilationId)
Creates a BuildNamespace representing a compilation unit.
bool operator==(const BuildNamespace &Other) const
friend class SerializationFormat
friend llvm::raw_ostream & operator<<(llvm::raw_ostream &OS, const BuildNamespace &BN)
Represents a multi-architecture static library.
Represents a hierarchical sequence of build namespaces.
NestedBuildNamespace(const std::vector< BuildNamespace > &Namespaces)
static NestedBuildNamespace makeCompilationUnit(llvm::StringRef CompilationId)
Creates a NestedBuildNamespace representing a compilation unit.
NestedBuildNamespace()=default
NestedBuildNamespace(const BuildNamespace &N)
bool operator<(const NestedBuildNamespace &Other) const
friend class SerializationFormat
NestedBuildNamespace makeQualified(NestedBuildNamespace Namespace) const
Creates a new NestedBuildNamespace by appending additional namespace.
bool operator!=(const NestedBuildNamespace &Other) const
friend llvm::raw_ostream & operator<<(llvm::raw_ostream &OS, const NestedBuildNamespace &NBN)
bool operator==(const NestedBuildNamespace &Other) const
Represents a static library of translation unit summary encodings.
llvm::raw_ostream & operator<<(llvm::raw_ostream &OS, BuildNamespaceKind BNK)
@ Other
Other implicit parameter.