aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--abstractmetabuilder.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp
index 2d43cc2bd..086c0c7f3 100644
--- a/abstractmetabuilder.cpp
+++ b/abstractmetabuilder.cpp
@@ -1248,10 +1248,13 @@ void AbstractMetaBuilder::traverseFunctions(ScopeModelItem scopeItem, AbstractMe
// Add the functions added by the typesystem
foreach (AddedFunction addedFunc, metaClass->typeEntry()->addedFunctions()) {
AbstractMetaFunction* func = traverseFunction(addedFunc);
- if (func->name() == metaClass->name())
+ if (func->name() == metaClass->name()) {
func->setFunctionType(AbstractMetaFunction::ConstructorFunction);
- else
+ if (func->arguments().size() == 1 && func->arguments().first()->type()->typeEntry()->isCustom())
+ func->setExplicit(true);
+ } else {
func->setFunctionType(AbstractMetaFunction::NormalFunction);
+ }
func->setDeclaringClass(metaClass);
func->setImplementingClass(metaClass);
metaClass->addFunction(func);