diff options
author | Martin Smith <martin.smith@theqtcompany.com> | 2016-02-12 14:54:59 +0100 |
---|---|---|
committer | Martin Smith <martin.smith@theqtcompany.com> | 2016-02-26 12:05:56 +0000 |
commit | 8237d6d1171d7d7d677eada7d49ab7b5d85b09e7 (patch) | |
tree | b80e6b96b45bd1fe2e0bd90598aa5bf124891250 /src/qdoc/cppcodeparser.cpp | |
parent | 7b9f7620b6da02ae1809a5255979c79533ec8480 (diff) | |
download | qttools-8237d6d1171d7d7d677eada7d49ab7b5d85b09e7.tar.gz |
qdoc: Avoid unnecessary qdoc warnings
Generates default docs when special class member functions are declared
but not documented, thereby avoiding the "No documentation for..." error.
The member functions now handled are the destructor, the copy constructor,
the move-copy constructor, and the default constructor.
Change-Id: I9ddd7841b1dfec907ab3c2ccd7636dc898df1fce
Task-number: QTBUG-50630
Reviewed-by: Topi Reiniƶ <topi.reinio@theqtcompany.com>
Diffstat (limited to 'src/qdoc/cppcodeparser.cpp')
-rw-r--r-- | src/qdoc/cppcodeparser.cpp | 43 |
1 files changed, 26 insertions, 17 deletions
diff --git a/src/qdoc/cppcodeparser.cpp b/src/qdoc/cppcodeparser.cpp index 29f6a07d4..8e5d279e1 100644 --- a/src/qdoc/cppcodeparser.cpp +++ b/src/qdoc/cppcodeparser.cpp @@ -375,7 +375,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, func = 0; } else { - func->setMetaness(FunctionNode::MacroWithParams); + func->setMetaness(Node::MacroWithParams); QVector<Parameter> params = func->parameters(); for (int i = 0; i < params.size(); ++i) { Parameter ¶m = params[i]; @@ -391,7 +391,7 @@ Node* CppCodeParser::processTopicCommand(const Doc& doc, func = new FunctionNode(qdb_->primaryTreeRoot(), arg.first); func->setAccess(Node::Public); func->setLocation(doc.startLocation()); - func->setMetaness(FunctionNode::MacroWithoutParams); + func->setMetaness(Node::MacroWithoutParams); } else { doc.location().warning(tr("Invalid syntax in '\\%1'").arg(COMMAND_MACRO)); @@ -1050,7 +1050,7 @@ void CppCodeParser::reset() tokenizer = 0; tok = 0; access = Node::Public; - metaness_ = FunctionNode::Plain; + metaness_ = Node::Plain; lastPath_.clear(); physicalModuleName.clear(); } @@ -1647,12 +1647,24 @@ bool CppCodeParser::matchFunctionDecl(Aggregate *parent, if (matched_QT_DEPRECATED) func->setStatus(Node::Deprecated); if (matched_explicit) { /* What can be done? */ } + if (!pvect.isEmpty()) { + func->setParameters(pvect); + } func->setMetaness(metaness_); if (parent) { - if (name == parent->name()) - func->setMetaness(FunctionNode::Ctor); + if (name == parent->name()) { + Node::Metaness m = Node::Ctor; + if (!pvect.isEmpty()) { + for (int i=0; i<pvect.size(); i++) { + m = pvect.at(i).metaness(name); + if (m != Node::Ctor) + break; + } + } + func->setMetaness(m); + } else if (name.startsWith(QLatin1Char('~'))) - func->setMetaness(FunctionNode::Dtor); + func->setMetaness(Node::Dtor); } func->setStatic(matched_static); func->setConst(matchedConst); @@ -1662,9 +1674,6 @@ bool CppCodeParser::matchFunctionDecl(Aggregate *parent, func->setFinal(matchFinal); if (isQPrivateSignal) func->setPrivateSignal(); - if (!pvect.isEmpty()) { - func->setParameters(pvect); - } } if (parentPathPtr != 0) *parentPathPtr = parentPath; @@ -1774,8 +1783,8 @@ bool CppCodeParser::matchClassDecl(Aggregate *parent, Node::Access outerAccess = access; access = isClass ? Node::Private : Node::Public; - FunctionNode::Metaness outerMetaness = metaness_; - metaness_ = FunctionNode::Plain; + Node::Metaness outerMetaness = metaness_; + metaness_ = Node::Plain; bool matches = (matchDeclList(classe) && match(Tok_RightBrace) && match(Tok_Semicolon)); @@ -2156,28 +2165,28 @@ bool CppCodeParser::matchDeclList(Aggregate *parent) case Tok_private: readToken(); access = Node::Private; - metaness_ = FunctionNode::Plain; + metaness_ = Node::Plain; break; case Tok_protected: readToken(); access = Node::Protected; - metaness_ = FunctionNode::Plain; + metaness_ = Node::Plain; break; case Tok_public: readToken(); access = Node::Public; - metaness_ = FunctionNode::Plain; + metaness_ = Node::Plain; break; case Tok_signals: case Tok_Q_SIGNALS: readToken(); access = Node::Public; - metaness_ = FunctionNode::Signal; + metaness_ = Node::Signal; break; case Tok_slots: case Tok_Q_SLOTS: readToken(); - metaness_ = FunctionNode::Slot; + metaness_ = Node::Slot; break; case Tok_Q_OBJECT: readToken(); @@ -2411,7 +2420,7 @@ bool CppCodeParser::matchDocsAndStuff() generated by moc. */ node = qdb_->findFunctionNode(parentPath, clone); - if (node != 0 && node->metaness() != FunctionNode::Signal) + if (node != 0 && node->metaness() != Node::Signal) node->setLocation(clone->location()); delete clone; } |