aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
index 9006e2321..cf489eb2e 100644
--- a/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
+++ b/sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp
@@ -1235,13 +1235,25 @@ bool Builder::endToken(const CXCursor &cursor)
break;
case CXCursor_Constructor:
d->qualifyConstructor(cursor);
- d->m_currentFunction.clear();
+ if (!d->m_currentFunction.isNull()) {
+ d->m_currentFunction->_determineType();
+ d->m_currentFunction.clear();
+ }
break;
case CXCursor_Destructor:
case CXCursor_CXXMethod:
case CXCursor_FunctionDecl:
case CXCursor_FunctionTemplate:
- d->m_currentFunction.clear();
+ if (!d->m_currentFunction.isNull()) {
+ d->m_currentFunction->_determineType();
+ d->m_currentFunction.clear();
+ }
+ break;
+ case CXCursor_ConversionFunction:
+ if (!d->m_currentFunction.isNull()) {
+ d->m_currentFunction->setFunctionType(CodeModel::ConversionOperator);
+ d->m_currentFunction.clear();
+ }
break;
case CXCursor_Namespace:
d->popScope();