From 7221f383a4635584b921335e03245a1ddb9291f4 Mon Sep 17 00:00:00 2001 From: Zelentsov Dmitry Date: Fri, 5 Sep 2025 15:10:22 +0300 Subject: [PATCH] Fix generation of declarations for overloads Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICWNTK Tests: use Test-U-Runner and CI Signed-off-by: Zelentsov Dmitry --- ets2panda/ir/base/methodDefinition.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ets2panda/ir/base/methodDefinition.cpp b/ets2panda/ir/base/methodDefinition.cpp index 4cfd0e4284..3822119c32 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; } -- Gitee