diff options
-rw-r--r-- | generator.cpp | 16 | ||||
-rw-r--r-- | generator.h | 12 |
2 files changed, 28 insertions, 0 deletions
diff --git a/generator.cpp b/generator.cpp index d2773bbab..4366788ae 100644 --- a/generator.cpp +++ b/generator.cpp @@ -389,6 +389,22 @@ CodeSnipList Generator::getCodeSnips(const AbstractMetaFunction *func) return result; } +AbstractMetaFunctionList Generator::implicitConversions(const TypeEntry* type) const +{ + AbstractMetaFunctionList implicits; + if (type->isValue()) { + const AbstractMetaClass* metaClass = classes().findClass(type->name()); + if (metaClass) + implicits = metaClass->implicitConversions(); + } + return implicits; +} + +AbstractMetaFunctionList Generator::implicitConversions(const AbstractMetaType* metaType) const +{ + return implicitConversions(metaType->typeEntry()); +} + QString Generator::translateType(const AbstractMetaType *cType, const AbstractMetaClass *context, Options options) const diff --git a/generator.h b/generator.h index d8f600cbf..7423b25b5 100644 --- a/generator.h +++ b/generator.h @@ -223,6 +223,18 @@ public: /// returns the code snips of a function CodeSnipList getCodeSnips(const AbstractMetaFunction *func); + /** + * Retrieves a list of constructors used in implicit conversions + * available on the given type. The TypeEntry must be a value-type + * or else it will return an empty list. + * \param type a TypeEntry that is expected to be a value-type + * \return a list of constructors that could be used as implicit converters + */ + AbstractMetaFunctionList implicitConversions(const TypeEntry* type) const; + + /// Convenience function for implicitConversions(const TypeEntry* type). + AbstractMetaFunctionList implicitConversions(const AbstractMetaType* metaType) const; + protected: QString m_packageName; |