Loading src/classdef.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -4364,6 +4364,11 @@ bool ClassDef::isPublished() const return m_impl->spec&Entry::Published; return m_impl->spec&Entry::Published; } } bool ClassDef::isForwardDeclared() const { return m_impl->spec&Entry::ForwardDecl; } bool ClassDef::isObjectiveC() const bool ClassDef::isObjectiveC() const { { return getLanguage()==SrcLangExt_ObjC; return getLanguage()==SrcLangExt_ObjC; Loading src/classdef.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -271,6 +271,9 @@ class ClassDef : public Definition /** Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category) */ /** Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category) */ bool isExtension() const; bool isExtension() const; /** Returns TRUE if this class represents a forward declaration of a template class */ bool isForwardDeclared() const; /** Returns the class of which this is a category (Objective-C only) */ /** Returns the class of which this is a category (Objective-C only) */ ClassDef *categoryOf() const; ClassDef *categoryOf() const; Loading src/doxygen.cpp +5 −4 Original line number Original line Diff line number Diff line Loading @@ -1276,10 +1276,11 @@ static void addClassToContext(EntryNav *rootNav) } } //cd->setName(fullName); // change name to match docs //cd->setName(fullName); // change name to match docs if (cd->templateArguments()==0) if (cd->templateArguments()==0 || (cd->isForwardDeclared() && (root->spec&Entry::ForwardDecl)==0)) { { // this happens if a template class declared with @class is found // this happens if a template class declared with @class is found // before the actual definition. // before the actual definition or if a forward declaration has different template // parameter names. ArgumentList *tArgList = ArgumentList *tArgList = getTemplateArgumentsFromName(cd->name(),root->tArgLists); getTemplateArgumentsFromName(cd->name(),root->tArgLists); cd->setTemplateArguments(tArgList); cd->setTemplateArguments(tArgList); Loading src/entry.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -133,6 +133,7 @@ class Entry static const uint64 Enum = (1ULL<<12); // for Java-style enums static const uint64 Enum = (1ULL<<12); // for Java-style enums static const uint64 Service = (1ULL<<13); // UNO IDL static const uint64 Service = (1ULL<<13); // UNO IDL static const uint64 Singleton = (1ULL<<14); // UNO IDL static const uint64 Singleton = (1ULL<<14); // UNO IDL static const uint64 ForwardDecl = (1ULL<<14); // forward declarad template classes // member specifiers (add new items to the beginning) // member specifiers (add new items to the beginning) static const uint64 PrivateGettable = (1ULL<<20); // C# private getter static const uint64 PrivateGettable = (1ULL<<20); // C# private getter Loading src/scanner.l +1 −0 Original line number Original line Diff line number Diff line Loading @@ -5300,6 +5300,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) { { prependScope(); prependScope(); } } current->spec|=Entry::ForwardDecl; current_root->addSubEntry(current); current_root->addSubEntry(current); current = new Entry; current = new Entry; } } Loading Loading
src/classdef.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -4364,6 +4364,11 @@ bool ClassDef::isPublished() const return m_impl->spec&Entry::Published; return m_impl->spec&Entry::Published; } } bool ClassDef::isForwardDeclared() const { return m_impl->spec&Entry::ForwardDecl; } bool ClassDef::isObjectiveC() const bool ClassDef::isObjectiveC() const { { return getLanguage()==SrcLangExt_ObjC; return getLanguage()==SrcLangExt_ObjC; Loading
src/classdef.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -271,6 +271,9 @@ class ClassDef : public Definition /** Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category) */ /** Returns TRUE if this class represents an Objective-C 2.0 extension (nameless category) */ bool isExtension() const; bool isExtension() const; /** Returns TRUE if this class represents a forward declaration of a template class */ bool isForwardDeclared() const; /** Returns the class of which this is a category (Objective-C only) */ /** Returns the class of which this is a category (Objective-C only) */ ClassDef *categoryOf() const; ClassDef *categoryOf() const; Loading
src/doxygen.cpp +5 −4 Original line number Original line Diff line number Diff line Loading @@ -1276,10 +1276,11 @@ static void addClassToContext(EntryNav *rootNav) } } //cd->setName(fullName); // change name to match docs //cd->setName(fullName); // change name to match docs if (cd->templateArguments()==0) if (cd->templateArguments()==0 || (cd->isForwardDeclared() && (root->spec&Entry::ForwardDecl)==0)) { { // this happens if a template class declared with @class is found // this happens if a template class declared with @class is found // before the actual definition. // before the actual definition or if a forward declaration has different template // parameter names. ArgumentList *tArgList = ArgumentList *tArgList = getTemplateArgumentsFromName(cd->name(),root->tArgLists); getTemplateArgumentsFromName(cd->name(),root->tArgLists); cd->setTemplateArguments(tArgList); cd->setTemplateArguments(tArgList); Loading
src/entry.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -133,6 +133,7 @@ class Entry static const uint64 Enum = (1ULL<<12); // for Java-style enums static const uint64 Enum = (1ULL<<12); // for Java-style enums static const uint64 Service = (1ULL<<13); // UNO IDL static const uint64 Service = (1ULL<<13); // UNO IDL static const uint64 Singleton = (1ULL<<14); // UNO IDL static const uint64 Singleton = (1ULL<<14); // UNO IDL static const uint64 ForwardDecl = (1ULL<<14); // forward declarad template classes // member specifiers (add new items to the beginning) // member specifiers (add new items to the beginning) static const uint64 PrivateGettable = (1ULL<<20); // C# private getter static const uint64 PrivateGettable = (1ULL<<20); // C# private getter Loading
src/scanner.l +1 −0 Original line number Original line Diff line number Diff line Loading @@ -5300,6 +5300,7 @@ OPERATOR "operator"{B}*({ARITHOP}|{ASSIGNOP}|{LOGICOP}|{BITOP}) { { prependScope(); prependScope(); } } current->spec|=Entry::ForwardDecl; current_root->addSubEntry(current); current_root->addSubEntry(current); current = new Entry; current = new Entry; } } Loading