This commit is contained in:
Mirek Fidler 2023-03-27 10:18:33 +02:00
parent c0c3a0dcb5
commit 62e35407ae

View file

@ -8,15 +8,12 @@ struct VirtualMethod : AnnotationItem {
void GatherVirtuals(ArrayMap<String, VirtualMethod>& virtuals, const String& cls,
Index<String>& visited, bool first)
{
DDUMP(cls);
if(IsNull(cls) || visited.Find(cls) >= 0)
return;
visited.Add(cls);
DDUMP(visited);
for(const auto& f : ~CodeIndex()) // do base classes first
for(const AnnotationItem& m : f.value.items)
if(m.id == cls && IsStruct(m.kind)) {
DDUMP(m.bases);
// we cheat with With..<TopWindow> by splitting it to With... and TopWindow
for(String s : Split(m.bases, [](int c) { return iscid(c) || c == ':' ? 0 : 1; }))
GatherVirtuals(virtuals, s, visited, false);
@ -91,7 +88,6 @@ struct VirtualsDlg : public WithVirtualsLayout<TopWindow> {
typedef VirtualsDlg CLASSNAME;
VirtualsDlg(const String& nest) {
DLOG("====================");
Index<String> done;
GatherVirtuals(virtuals, nest, done, true);
CtrlLayoutOKCancel(*this, "Virtual methods");