diff options
Diffstat (limited to 'sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp')
| -rw-r--r-- | sources/shiboken6/ApiExtractor/clangparser/clangbuilder.cpp | 16 |
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(); |
