#pragma once #include "serializer.h" #include // TODO Rename query.h:SymbolKind to another name // clang/Index/IndexSymbol.h clang::index::SymbolKind enum class ClangSymbolKind : uint8_t { Unknown, Module = 1, Namespace, NamespaceAlias, Macro, Enum = 5, Struct, Class, Protocol, Extension, Union, TypeAlias, Function = 12, Variable, Field, EnumConstant, InstanceMethod = 16, ClassMethod, StaticMethod, InstanceProperty, ClassProperty, StaticProperty, Constructor = 22, Destructor, ConversionFunction, Parameter = 25, Using, }; MAKE_REFLECT_TYPE_PROXY(ClangSymbolKind, std::underlying_type::type); // clang/Basic/Specifiers.h clang::StorageClass enum class StorageClass : uint8_t { // In |CX_StorageClass| but not in |clang::StorageClass| // e.g. non-type template parameters Invalid, // These are legal on both functions and variables. // e.g. global functions/variables, local variables None, Extern, Static, // e.g. |__private_extern__ int a;| PrivateExtern, // These are only legal on variables. // e.g. explicit |auto int a;| Auto, Register }; MAKE_REFLECT_TYPE_PROXY(StorageClass, std::underlying_type::type);