summaryrefslogtreecommitdiff
path: root/src/qdoc/cppcodeparser.cpp
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@theqtcompany.com>2016-02-12 14:54:59 +0100
committerMartin Smith <martin.smith@theqtcompany.com>2016-02-26 12:05:56 +0000
commit8237d6d1171d7d7d677eada7d49ab7b5d85b09e7 (patch)
treeb80e6b96b45bd1fe2e0bd90598aa5bf124891250 /src/qdoc/cppcodeparser.cpp
parent7b9f7620b6da02ae1809a5255979c79533ec8480 (diff)
downloadqttools-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.cpp43
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 &param = 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;
}