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