#include <mutex>
#include "ObjCLanguage.h"
#include "Plugins/ExpressionParser/Clang/ClangUtil.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/Core/Debugger.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/ValueObject.h"
#include "lldb/DataFormatters/DataVisualization.h"
#include "lldb/DataFormatters/FormattersHelpers.h"
#include "lldb/Symbol/CompilerType.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/ConstString.h"
#include "lldb/Utility/StreamString.h"
#include "llvm/Support/Threading.h"
#include "Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h"
#include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"
#include "CF.h"
#include "Cocoa.h"
#include "CoreMedia.h"
#include "NSDictionary.h"
#include "NSSet.h"
#include "NSString.h"
usingnamespacelldb;
usingnamespacelldb_private;
usingnamespacelldb_private::formatters;
LLDB_PLUGIN_DEFINE(…)
void ObjCLanguage::Initialize() { … }
void ObjCLanguage::Terminate() { … }
Language *ObjCLanguage::CreateInstance(lldb::LanguageType language) { … }
std::optional<const ObjCLanguage::MethodName>
ObjCLanguage::MethodName::Create(llvm::StringRef name, bool strict) { … }
llvm::StringRef ObjCLanguage::MethodName::GetClassName() const { … }
llvm::StringRef ObjCLanguage::MethodName::GetClassNameWithCategory() const { … }
llvm::StringRef ObjCLanguage::MethodName::GetSelector() const { … }
llvm::StringRef ObjCLanguage::MethodName::GetCategory() const { … }
std::string ObjCLanguage::MethodName::GetFullNameWithoutCategory() const { … }
std::vector<Language::MethodNameVariant>
ObjCLanguage::GetMethodNameVariants(ConstString method_name) const { … }
bool ObjCLanguage::SymbolNameFitsToLanguage(Mangled mangled) const { … }
static void LoadObjCFormatters(TypeCategoryImplSP objc_category_sp) { … }
static void LoadCoreMediaFormatters(TypeCategoryImplSP objc_category_sp) { … }
lldb::TypeCategoryImplSP ObjCLanguage::GetFormatters() { … }
std::vector<FormattersMatchCandidate>
ObjCLanguage::GetPossibleFormattersMatches(ValueObject &valobj,
lldb::DynamicValueType use_dynamic) { … }
std::unique_ptr<Language::TypeScavenger> ObjCLanguage::GetTypeScavenger() { … }
std::pair<llvm::StringRef, llvm::StringRef>
ObjCLanguage::GetFormatterPrefixSuffix(llvm::StringRef type_hint) { … }
bool ObjCLanguage::IsNilReference(ValueObject &valobj) { … }
bool ObjCLanguage::IsSourceFile(llvm::StringRef file_path) const { … }