aboutsummaryrefslogtreecommitdiffstats
path: root/abstractmetabuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'abstractmetabuilder.cpp')
-rw-r--r--abstractmetabuilder.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp
index 182f4456d..4d8a4f1d8 100644
--- a/abstractmetabuilder.cpp
+++ b/abstractmetabuilder.cpp
@@ -503,16 +503,27 @@ bool AbstractMetaBuilder::build(QIODevice* input)
m_currentClass = 0;
+ // Global functions
foreach (FunctionModelItem func, m_dom->functions()) {
if (func->accessPolicy() != CodeModel::Public || func->name().startsWith("operator"))
continue;
+ FunctionTypeEntry* funcEntry = types->findFunctionType(func->name());
+ if (!funcEntry)
+ continue;
+
AbstractMetaFunction* metaFunc = traverseFunction(func);
- if (metaFunc) {
- QFileInfo info(func->fileName());
- metaFunc->setIncludeFile(Include(Include::IncludePath, info.fileName()));
- m_globalFunctions << metaFunc;
+ if (!metaFunc)
+ continue;
+
+ if (!funcEntry->hasSignature(metaFunc->minimalSignature())) {
+ delete metaFunc;
+ continue;
}
+
+ QFileInfo info(func->fileName());
+ funcEntry->setInclude(Include(Include::IncludePath, info.fileName()));
+ m_globalFunctions << metaFunc;
}
// Functions added to the module on the type system.