Commit 6f0269ef authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Bug 734077 - no uniquely matching class member found for inline function...

Bug 734077 - no uniquely matching class member found for inline function definition where parameter argument names don't match
parent e913d55b
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -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;
+3 −0
Original line number Original line Diff line number Diff line
@@ -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;


+5 −4
Original line number Original line Diff line number Diff line
@@ -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);
+1 −0
Original line number Original line Diff line number Diff line
@@ -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
+1 −0
Original line number Original line Diff line number Diff line
@@ -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;
                                          }
                                          }