aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-10-30 19:49:29 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-10-30 19:58:33 -0300
commit4545d7fc24b016d6456da40298a2cf4581e38ec1 (patch)
treeec0a8f8a18572be82d814fda55716d11478c2b19
parent2419238d2c1fe4b80e5b5e5767f70bc275aa08a0 (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.cpp16
-rw-r--r--generator.h12
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;