Commit 34a5a051 authored by Adrian Negreanu's avatar Adrian Negreanu

cache anonymous into ClassDefImpl::isAnonymous

parent d4601735
...@@ -187,6 +187,8 @@ class ClassDefImpl ...@@ -187,6 +187,8 @@ class ClassDefImpl
bool isGeneric; bool isGeneric;
bool isAnonymous;
uint64 spec; uint64 spec;
}; };
...@@ -248,6 +250,7 @@ void ClassDefImpl::init(const char *defFileName, const char *name, ...@@ -248,6 +250,7 @@ void ClassDefImpl::init(const char *defFileName, const char *name,
isLocal=FALSE; isLocal=FALSE;
} }
isGeneric = lang==SrcLangExt_CSharp && QCString(name).find('<')!=-1; isGeneric = lang==SrcLangExt_CSharp && QCString(name).find('<')!=-1;
isAnonymous = QCString(name).find('@')!=-1;
} }
ClassDefImpl::ClassDefImpl() : vhdlSummaryTitles(17) ClassDefImpl::ClassDefImpl() : vhdlSummaryTitles(17)
...@@ -1772,7 +1775,7 @@ bool ClassDef::visibleInParentsDeclList() const ...@@ -1772,7 +1775,7 @@ bool ClassDef::visibleInParentsDeclList() const
static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES"); static bool hideUndocClasses = Config_getBool("HIDE_UNDOC_CLASSES");
static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES"); static bool extractLocalClasses = Config_getBool("EXTRACT_LOCAL_CLASSES");
bool linkable = isLinkable(); bool linkable = isLinkable();
return (name().find('@')==-1 && !isExtension() && return (!isAnonymous() && !isExtension() &&
(protection()!=::Private || extractPrivate) && (protection()!=::Private || extractPrivate) &&
(linkable || (!hideUndocClasses && (!isLocal() || extractLocalClasses))) (linkable || (!hideUndocClasses && (!isLocal() || extractLocalClasses)))
); );
...@@ -2597,7 +2600,7 @@ bool ClassDef::isLinkableInProject() const ...@@ -2597,7 +2600,7 @@ bool ClassDef::isLinkableInProject() const
{ {
return !name().isEmpty() && /* has a name */ return !name().isEmpty() && /* has a name */
!isArtificial() && !isHidden() && /* not hidden */ !isArtificial() && !isHidden() && /* not hidden */
name().find('@')==-1 && /* not anonymous */ !isAnonymous() && /* not anonymous */
protectionLevelVisible(m_impl->prot) && /* private/internal */ protectionLevelVisible(m_impl->prot) && /* private/internal */
(!m_impl->isLocal || extractLocal) && /* local */ (!m_impl->isLocal || extractLocal) && /* local */
(hasDocumentation() || !hideUndoc) && /* documented */ (hasDocumentation() || !hideUndoc) && /* documented */
...@@ -2629,7 +2632,7 @@ bool ClassDef::isVisibleInHierarchy() ...@@ -2629,7 +2632,7 @@ bool ClassDef::isVisibleInHierarchy()
return // show all classes or a subclass is visible return // show all classes or a subclass is visible
(allExternals || hasNonReferenceSuperClass()) && (allExternals || hasNonReferenceSuperClass()) &&
// and not an anonymous compound // and not an anonymous compound
name().find('@')==-1 && !isAnonymous() &&
// not an artificially introduced class // not an artificially introduced class
/*!isArtificial() &&*/ // 1.8.2: allowed these to appear /*!isArtificial() &&*/ // 1.8.2: allowed these to appear
// and not privately inherited // and not privately inherited
...@@ -4603,3 +4606,13 @@ bool ClassDef::subGrouping() const ...@@ -4603,3 +4606,13 @@ bool ClassDef::subGrouping() const
return m_impl->subGrouping; return m_impl->subGrouping;
} }
void ClassDef::setName(const char *name)
{
m_impl->isAnonymous = QCString(name).find('@')!=-1;
Definition::setName(name);
}
bool ClassDef::isAnonymous() const
{
return m_impl->isAnonymous;
}
...@@ -307,6 +307,7 @@ class ClassDef : public Definition ...@@ -307,6 +307,7 @@ class ClassDef : public Definition
bool isJavaEnum() const; bool isJavaEnum() const;
bool isGeneric() const; bool isGeneric() const;
bool isAnonymous() const;
const ClassSDict *innerClasses() const; const ClassSDict *innerClasses() const;
QCString title() const; QCString title() const;
...@@ -357,6 +358,7 @@ class ClassDef : public Definition ...@@ -357,6 +358,7 @@ class ClassDef : public Definition
void addTaggedInnerClass(ClassDef *cd); void addTaggedInnerClass(ClassDef *cd);
void setTagLessReference(ClassDef *cd); void setTagLessReference(ClassDef *cd);
void setName(const char *name);
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
// --- actions ---- // --- actions ----
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment