diff --git a/ets2panda/ir/base/methodDefinition.cpp b/ets2panda/ir/base/methodDefinition.cpp index 4cfd0e42840ba1fd8b77db4e83be1aff58cf333a..3822119c326ad3e535e5de4e137d7de87807843e 100644 --- a/ets2panda/ir/base/methodDefinition.cpp +++ b/ets2panda/ir/base/methodDefinition.cpp @@ -234,7 +234,13 @@ void MethodDefinition::DumpPrefix(ir::SrcDumper *dumper) const return; } - if (Parent() != nullptr && Parent()->IsClassDefinition() && !Parent()->AsClassDefinition()->IsLocal()) { + // special processing for overloads + auto const *parent = Parent(); + if (parent != nullptr && parent->IsMethodDefinition()) { + parent = parent->Parent(); + } + + if (parent != nullptr && parent->IsClassDefinition() && !parent->AsClassDefinition()->IsLocal()) { if (IsPrivate()) { dumper->Add("private "); } else if (IsProtected()) { @@ -287,6 +293,9 @@ bool MethodDefinition::FilterForDeclGen() const void MethodDefinition::Dump(ir::SrcDumper *dumper) const { if (dumper->IsDeclgen() && FilterForDeclGen()) { + for (auto method : Overloads()) { + method->Dump(dumper); + } return; }