diff options
Diffstat (limited to 'src/tools/moc/moc.h')
-rw-r--r-- | src/tools/moc/moc.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/tools/moc/moc.h b/src/tools/moc/moc.h index 5df15409a7..c1759fb0a3 100644 --- a/src/tools/moc/moc.h +++ b/src/tools/moc/moc.h @@ -7,11 +7,10 @@ #include "parser.h" #include <qstringlist.h> #include <qmap.h> -#include <qpair.h> #include <qjsondocument.h> #include <qjsonarray.h> #include <qjsonobject.h> -#include <qversionnumber.h> +#include <qtyperevision.h> #include <stdio.h> #include <private/qtools_p.h> @@ -48,6 +47,7 @@ struct EnumDef bool isEnumClass; // c++11 enum class EnumDef() : isEnumClass(false) {} QJsonObject toJson(const ClassDef &cdef) const; + QByteArray qualifiedType(const ClassDef *cdef) const; }; Q_DECLARE_TYPEINFO(EnumDef, Q_RELOCATABLE_TYPE); @@ -121,7 +121,7 @@ struct PropertyDef bool required = false; int relativeIndex = -1; // property index in current metaobject - int location = -1; // token index, used for error reporting + qsizetype location = -1; // token index, used for error reporting QJsonObject toJson() const; }; @@ -151,12 +151,19 @@ struct BaseDef { QMap<QByteArray, bool> enumDeclarations; QList<EnumDef> enumList; QMap<QByteArray, QByteArray> flagAliases; - int begin = 0; - int end = 0; + qsizetype begin = 0; + qsizetype end = 0; }; +struct SuperClass { + QByteArray classname; + QByteArray qualified; + FunctionDef::Access access; +}; +Q_DECLARE_TYPEINFO(SuperClass, Q_RELOCATABLE_TYPE); + struct ClassDef : BaseDef { - QList<QPair<QByteArray, FunctionDef::Access>> superclassList; + QList<SuperClass> superclassList; struct Interface { @@ -234,6 +241,10 @@ public: return index > def->begin && index < def->end - 1; } + const QByteArray &toFullyQualified(const QByteArray &name) const noexcept; + + void prependNamespaces(BaseDef &def, const QList<NamespaceDef> &namespaceList) const; + Type parseType(); bool parseEnum(EnumDef *def); @@ -278,6 +289,9 @@ public: void checkSuperClasses(ClassDef *def); void checkProperties(ClassDef* cdef); + bool testForFunctionModifiers(FunctionDef *def); + + void checkListSizes(const ClassDef &def); }; inline QByteArray noRef(const QByteArray &type) |