+ if (overloads.GetCount()==0)
+ {
+ wxLogMessage("%s: real '%s' class and their parents have no method '%s'",
+ header, api->GetName(), m.GetAsString());
+ // we've found no overloads
+ }
+ else
+ {
+ // first, output a warning
+ wxString warning = header;
+ if (overloads.GetCount()>1)
+ warning += wxString::Format(": in the real headers there are %d overloads of '%s' for "
+ "'%s' all with different signatures:\n",
+ overloads.GetCount(), m.GetName(), api->GetName());
+ else {
+ warning += wxString::Format(": in the real headers there is a method '%s' for '%s'"
+ " but has different signature:\n",
+ m.GetName(), api->GetName());
+ }
+
+ // get a list of the prototypes with _all_ possible attributes:
+ warning += "\tdoxy header: " + m.GetAsString(true, true, true, true);
+ for (unsigned int j=0; j<overloads.GetCount(); j++)
+ warning += "\n\treal header: " + overloads[j]->GetAsString(true, true, true, true);
+
+ wxLogWarning("%s", warning);
+ count++;
+
+ if (overloads.GetCount()>1)
+ {
+ // TODO: decide which of these overloads is the most "similar" to m
+ // and eventually modify it
+ if (m_modify)
+ wxLogWarning("\tmanual fix is required");
+ }
+ else
+ {
+ wxASSERT(overloads.GetCount() == 1);
+
+ if (m_modify || m.IsCtor())
+ {
+ wxLogWarning("\tfixing it...");
+
+ // try to modify it!
+ FixMethod(iface->GetHeader(), &m, overloads[0]);
+ }
+ }
+ }
+
+ count++;
+ } // if (proceed)