qdoc: Restricted qdoc errors for \reimp command
qdoc no longer considers the \reimp command when the parent C++ class has been marked \internal, because the reimplimented functions aren't supposed to be in the documentation at all, when the parent class is internal. Change-Id: I3d811ca737934f95e9078ce7b1e957890f6aaf38 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
This commit is contained in:
parent
e8e8d0e9f2
commit
fb7b18c703
@ -1029,34 +1029,36 @@ void CppCodeParser::processOtherMetaCommand(const Doc& doc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (command == COMMAND_REIMP) {
|
else if (command == COMMAND_REIMP) {
|
||||||
if (node != 0 && node->type() == Node::Function) {
|
if (node->parent() && !node->parent()->isInternal()) {
|
||||||
FunctionNode *func = (FunctionNode *) node;
|
if (node != 0 && node->type() == Node::Function) {
|
||||||
const FunctionNode *from = func->reimplementedFrom();
|
FunctionNode *func = (FunctionNode *) node;
|
||||||
if (from == 0) {
|
const FunctionNode *from = func->reimplementedFrom();
|
||||||
doc.location().warning(
|
if (from == 0) {
|
||||||
tr("Cannot find base function for '\\%1' in %2()")
|
doc.location().warning(tr("Cannot find base function for '\\%1' in %2()")
|
||||||
.arg(COMMAND_REIMP).arg(node->name()),
|
.arg(COMMAND_REIMP).arg(node->name()),
|
||||||
tr("The function either doesn't exist in any base class "
|
tr("The function either doesn't exist in any "
|
||||||
"with the same signature or it exists but isn't virtual."));
|
"base class with the same signature or it "
|
||||||
|
"exists but isn't virtual."));
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
Ideally, we would enable this check to warn whenever
|
||||||
|
\reimp is used incorrectly, and only make the node
|
||||||
|
internal if the function is a reimplementation of
|
||||||
|
another function in a base class.
|
||||||
|
*/
|
||||||
|
else if (from->access() == Node::Private
|
||||||
|
|| from->parent()->access() == Node::Private) {
|
||||||
|
doc.location().warning(tr("'\\%1' in %2() should be '\\internal' "
|
||||||
|
"because its base function is private "
|
||||||
|
"or internal").arg(COMMAND_REIMP).arg(node->name()));
|
||||||
|
}
|
||||||
|
func->setReimp(true);
|
||||||
}
|
}
|
||||||
/*
|
else {
|
||||||
Ideally, we would enable this check to warn whenever
|
doc.location().warning(tr("Ignored '\\%1' in %2")
|
||||||
\reimp is used incorrectly, and only make the node
|
.arg(COMMAND_REIMP)
|
||||||
internal if the function is a reimplementation of
|
.arg(node->name()));
|
||||||
another function in a base class.
|
|
||||||
*/
|
|
||||||
else if (from->access() == Node::Private
|
|
||||||
|| from->parent()->access() == Node::Private) {
|
|
||||||
doc.location().warning(tr("'\\%1' in %2() should be '\\internal' because its base function is private or internal")
|
|
||||||
.arg(COMMAND_REIMP).arg(node->name()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func->setReimp(true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
doc.location().warning(tr("Ignored '\\%1' in %2")
|
|
||||||
.arg(COMMAND_REIMP)
|
|
||||||
.arg(node->name()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (command == COMMAND_RELATES) {
|
else if (command == COMMAND_RELATES) {
|
||||||
|
Loading…
Reference in New Issue
Block a user