summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/arguments.cpp3
-rw-r--r--src/arguments.h6
-rw-r--r--src/memberdef.cpp9
-rw-r--r--src/memberdef.h1
-rw-r--r--src/scanner.l1
5 files changed, 16 insertions, 4 deletions
diff --git a/src/arguments.cpp b/src/arguments.cpp
index 87d0438..095aa96 100644
--- a/src/arguments.cpp
+++ b/src/arguments.cpp
@@ -32,6 +32,7 @@ ArgumentList *ArgumentList::deepCopy() const
argList->volatileSpecifier = volatileSpecifier;
argList->pureSpecifier = pureSpecifier;
argList->trailingReturnType = trailingReturnType;
+ argList->isDeleted = isDeleted;
return argList;
}
@@ -61,6 +62,7 @@ ArgumentList *ArgumentList::unmarshal(StorageIntf *s)
result->volatileSpecifier = unmarshalBool(s);
result->pureSpecifier = unmarshalBool(s);
result->trailingReturnType = unmarshalQCString(s);
+ result->isDeleted = unmarshalBool(s);
return result;
}
@@ -93,6 +95,7 @@ void ArgumentList::marshal(StorageIntf *s,ArgumentList *argList)
marshalBool(s,argList->volatileSpecifier);
marshalBool(s,argList->pureSpecifier);
marshalQCString(s,argList->trailingReturnType);
+ marshalBool(s,argList->isDeleted);
}
}
diff --git a/src/arguments.h b/src/arguments.h
index 8b3d211..555b573 100644
--- a/src/arguments.h
+++ b/src/arguments.h
@@ -86,7 +86,8 @@ class ArgumentList : public QList<Argument>
ArgumentList() : QList<Argument>(),
constSpecifier(FALSE),
volatileSpecifier(FALSE),
- pureSpecifier(FALSE)
+ pureSpecifier(FALSE),
+ isDeleted(FALSE)
{ setAutoDelete(TRUE); }
/*! Destroys the argument list */
~ArgumentList() {}
@@ -102,7 +103,8 @@ class ArgumentList : public QList<Argument>
bool pureSpecifier;
/*! C++11 style Trailing return type? */
QCString trailingReturnType;
- /*! C++11 defaulted method */
+ /*! method with =delete */
+ bool isDeleted;
static ArgumentList *unmarshal(StorageIntf *s);
static void marshal(StorageIntf *s,ArgumentList *argList);
diff --git a/src/memberdef.cpp b/src/memberdef.cpp
index 23c171a..7f93b51 100644
--- a/src/memberdef.cpp
+++ b/src/memberdef.cpp
@@ -3231,7 +3231,7 @@ void MemberDef::warnIfUndocumented()
!isFriendClass() &&
name().find('@')==-1 && d && d->name().find('@')==-1 &&
protectionLevelVisible(m_impl->prot) &&
- !isReference()
+ !isReference() && !isDeleted()
)
{
warn_undoc(d->getDefFileName(),d->getDefLine(),"Member %s%s (%s) of %s %s is not documented.",
@@ -3258,11 +3258,16 @@ bool MemberDef::isDocumentedFriendClass() const
(fcd=getClass(baseName)) && fcd->isLinkable());
}
+bool MemberDef::isDeleted() const
+{
+ return m_impl->defArgList && m_impl->defArgList->isDeleted;
+}
+
bool MemberDef::hasDocumentation() const
{
return Definition::hasDocumentation() ||
(m_impl->mtype==MemberType_Enumeration && m_impl->docEnumValues) || // has enum values
- (m_impl->defArgList!=0 && m_impl->defArgList->hasDocumentation()); // has doc arguments
+ (m_impl->defArgList!=0 && m_impl->defArgList->hasDocumentation()); // has doc arguments
}
#if 0
diff --git a/src/memberdef.h b/src/memberdef.h
index 93cd72d..f60fb54 100644
--- a/src/memberdef.h
+++ b/src/memberdef.h
@@ -188,6 +188,7 @@ class MemberDef : public Definition
bool isLinkable() const;
bool hasDocumentation() const; // overrides hasDocumentation in definition.h
//bool hasUserDocumentation() const; // overrides hasUserDocumentation
+ bool isDeleted() const;
bool isBriefSectionVisible() const;
bool isDetailedSectionVisible(bool inGroup,bool inFile) const;
bool isDetailedSectionLinkable() const;
diff --git a/src/scanner.l b/src/scanner.l
index b3ae01a..4f8cdd8 100644
--- a/src/scanner.l
+++ b/src/scanner.l
@@ -4663,6 +4663,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP})
lineCount();
current->args += " = delete";
current->spec |= Entry::Delete;
+ current->argList->isDeleted=TRUE;
BEGIN(FuncQual);
}
<FuncQual,TrailingReturn>{BN}*"="{BN}*"default"{BN}* { // C++11 explicitly defaulted constructor/assignment operator