diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-10-30 19:49:29 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-10-30 19:58:33 -0300 |
commit | 4545d7fc24b016d6456da40298a2cf4581e38ec1 (patch) | |
tree | ec0a8f8a18572be82d814fda55716d11478c2b19 | |
parent | 2419238d2c1fe4b80e5b5e5767f70bc275aa08a0 (diff) |
added Generator::implicitConversions(type) method that returns the constructors
for implicit conversions for the given type, which should be a value-type
Reviewed by Hugo Parente <hugo.lima@openbossa.org>
-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; |