template <class ValueType>
struct WriteDispatcher;
template <>
struct WriteDispatcher<llvm::APInt> { … };
template <>
struct WriteDispatcher<llvm::APSInt> { … };
template <>
struct WriteDispatcher<APValue> { … };
template <>
struct WriteDispatcher<APValue::ValueKind> { … };
template <>
struct WriteDispatcher<ArraySizeModifier> { … };
template <>
struct WriteDispatcher<attr::Kind> { … };
template <>
struct WriteDispatcher<AutoTypeKeyword> { … };
template <>
struct WriteDispatcher<const BTFTypeTagAttr *> { … };
template <>
struct WriteDispatcher<bool> { … };
template <>
struct WriteDispatcher<BuiltinType::Kind> { … };
template <>
struct WriteDispatcher<CXXRecordDecl*> { … };
template <>
struct WriteDispatcher<const CXXRecordDecl*> { … };
template <>
struct WriteDispatcher<CallingConv> { … };
template <>
struct WriteDispatcher<ConceptDecl*> { … };
template <>
struct WriteDispatcher<const ConceptDecl*> { … };
template <>
struct WriteDispatcher<Decl*> { … };
template <>
struct WriteDispatcher<const Decl*> { … };
template <>
struct WriteDispatcher<DeclarationName> { … };
template <>
struct WriteDispatcher<DeclarationName::NameKind> { … };
template <>
struct WriteDispatcher<EffectConditionExpr> { … };
template <>
struct WriteDispatcher<ElaboratedTypeKeyword> { … };
template <>
struct WriteDispatcher<FunctionProtoType::ExceptionSpecInfo> { … };
template <>
struct WriteDispatcher<Expr*> { … };
template <>
struct WriteDispatcher<const Expr*> { … };
template <>
struct WriteDispatcher<FunctionProtoType::ExtParameterInfo> { … };
template <>
struct WriteDispatcher<llvm::FixedPointSemantics> { … };
template <>
struct WriteDispatcher<FunctionDecl*> { … };
template <>
struct WriteDispatcher<const FunctionDecl*> { … };
template <>
struct WriteDispatcher<FunctionEffect> { … };
template <>
struct WriteDispatcher<IdentifierInfo*> { … };
template <>
struct WriteDispatcher<const IdentifierInfo*> { … };
template <>
struct WriteDispatcher<APValue::LValuePathEntry> { … };
template <>
struct WriteDispatcher<APValue::LValuePathSerializationHelper> { … };
template <>
struct WriteDispatcher<NamedDecl*> { … };
template <>
struct WriteDispatcher<const NamedDecl*> { … };
template <>
struct WriteDispatcher<NamespaceAliasDecl*> { … };
template <>
struct WriteDispatcher<const NamespaceAliasDecl*> { … };
template <>
struct WriteDispatcher<NamespaceDecl*> { … };
template <>
struct WriteDispatcher<const NamespaceDecl*> { … };
template <>
struct WriteDispatcher<NestedNameSpecifier *> { … };
template <>
struct WriteDispatcher<NestedNameSpecifier::SpecifierKind> { … };
template <>
struct WriteDispatcher<ObjCProtocolDecl*> { … };
template <>
struct WriteDispatcher<const ObjCProtocolDecl*> { … };
template <>
struct WriteDispatcher<ObjCTypeParamDecl*> { … };
template <>
struct WriteDispatcher<const ObjCTypeParamDecl*> { … };
template <>
struct WriteDispatcher<OverloadedOperatorKind> { … };
template <>
struct WriteDispatcher<QualType> { … };
template <>
struct WriteDispatcher<Qualifiers> { … };
template <>
struct WriteDispatcher<RefQualifierKind> { … };
template <>
struct WriteDispatcher<Selector> { … };
template <>
struct WriteDispatcher<SourceLocation> { … };
template <>
struct WriteDispatcher<Stmt*> { … };
template <>
struct WriteDispatcher<const Stmt*> { … };
template <>
struct WriteDispatcher<TagDecl*> { … };
template <>
struct WriteDispatcher<const TagDecl*> { … };
template <>
struct WriteDispatcher<TemplateArgument> { … };
template <>
struct WriteDispatcher<TemplateArgument::ArgKind> { … };
template <>
struct WriteDispatcher<TemplateDecl*> { … };
template <>
struct WriteDispatcher<const TemplateDecl*> { … };
template <>
struct WriteDispatcher<TemplateName> { … };
template <>
struct WriteDispatcher<TemplateName::NameKind> { … };
template <>
struct WriteDispatcher<TemplateTemplateParmDecl*> { … };
template <>
struct WriteDispatcher<const TemplateTemplateParmDecl*> { … };
template <>
struct WriteDispatcher<TemplateTypeParmDecl*> { … };
template <>
struct WriteDispatcher<const TemplateTypeParmDecl*> { … };
template <>
struct WriteDispatcher<TypeCoupledDeclRefInfo> { … };
template <>
struct WriteDispatcher<TypeOfKind> { … };
template <>
struct WriteDispatcher<uint32_t> { … };
template <>
struct WriteDispatcher<uint64_t> { … };
template <>
struct WriteDispatcher<UnaryTransformType::UTTKind> { … };
template <>
struct WriteDispatcher<UsingShadowDecl*> { … };
template <>
struct WriteDispatcher<const UsingShadowDecl*> { … };
template <>
struct WriteDispatcher<ValueDecl*> { … };
template <>
struct WriteDispatcher<const ValueDecl*> { … };
template <>
struct WriteDispatcher<VectorKind> { … };
WriteDispatcher<llvm::ArrayRef<T>>;
WriteDispatcher<std::optional<T>>;
template <class ValueType>
struct PackOptionalValue;
template <>
struct PackOptionalValue<CXXRecordDecl*> { … };
template <>
struct PackOptionalValue<const CXXRecordDecl*> { … };
template <>
struct PackOptionalValue<ConceptDecl*> { … };
template <>
struct PackOptionalValue<const ConceptDecl*> { … };
template <>
struct PackOptionalValue<Decl*> { … };
template <>
struct PackOptionalValue<const Decl*> { … };
template <>
struct PackOptionalValue<Expr*> { … };
template <>
struct PackOptionalValue<const Expr*> { … };
template <>
struct PackOptionalValue<FunctionDecl*> { … };
template <>
struct PackOptionalValue<const FunctionDecl*> { … };
template <>
struct PackOptionalValue<IdentifierInfo*> { … };
template <>
struct PackOptionalValue<const IdentifierInfo*> { … };
template <>
struct PackOptionalValue<NamedDecl*> { … };
template <>
struct PackOptionalValue<const NamedDecl*> { … };
template <>
struct PackOptionalValue<NamespaceAliasDecl*> { … };
template <>
struct PackOptionalValue<const NamespaceAliasDecl*> { … };
template <>
struct PackOptionalValue<NamespaceDecl*> { … };
template <>
struct PackOptionalValue<const NamespaceDecl*> { … };
template <>
struct PackOptionalValue<ObjCProtocolDecl*> { … };
template <>
struct PackOptionalValue<const ObjCProtocolDecl*> { … };
template <>
struct PackOptionalValue<ObjCTypeParamDecl*> { … };
template <>
struct PackOptionalValue<const ObjCTypeParamDecl*> { … };
template <>
struct PackOptionalValue<QualType> { … };
template <>
struct PackOptionalValue<Stmt*> { … };
template <>
struct PackOptionalValue<const Stmt*> { … };
template <>
struct PackOptionalValue<TagDecl*> { … };
template <>
struct PackOptionalValue<const TagDecl*> { … };
template <>
struct PackOptionalValue<TemplateDecl*> { … };
template <>
struct PackOptionalValue<const TemplateDecl*> { … };
template <>
struct PackOptionalValue<TemplateName> { … };
template <>
struct PackOptionalValue<TemplateTemplateParmDecl*> { … };
template <>
struct PackOptionalValue<const TemplateTemplateParmDecl*> { … };
template <>
struct PackOptionalValue<TemplateTypeParmDecl*> { … };
template <>
struct PackOptionalValue<const TemplateTypeParmDecl*> { … };
template <>
struct PackOptionalValue<uint32_t> { … };
template <>
struct PackOptionalValue<uint64_t> { … };
template <>
struct PackOptionalValue<UsingShadowDecl*> { … };
template <>
struct PackOptionalValue<const UsingShadowDecl*> { … };
template <>
struct PackOptionalValue<ValueDecl*> { … };
template <>
struct PackOptionalValue<const ValueDecl*> { … };
template <class Impl>
class BasicWriterBase { … };