From 4194623c7bc91d3681146957582df6cf91c328db Mon Sep 17 00:00:00 2001 From: Klimentieva Date: Thu, 26 Jun 2025 19:59:30 +0300 Subject: [PATCH] fix double promise in then Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICIYRF Change-Id: I2486342fb4d428f3c4faa0b5236d3319c250aecf Signed-off-by: Klimentieva --- ets2panda/checker/ETSAnalyzer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ets2panda/checker/ETSAnalyzer.cpp b/ets2panda/checker/ETSAnalyzer.cpp index 47e0797c65d..1f2d54eb0e5 100644 --- a/ets2panda/checker/ETSAnalyzer.cpp +++ b/ets2panda/checker/ETSAnalyzer.cpp @@ -1411,6 +1411,12 @@ Type *ETSAnalyzer::GetReturnType(ir::CallExpression *expr, Type *calleeType) con checker->ValidateSignatureAccessibility(calleeObj, signature, expr->Start()); } + if (IsPromiseType(signature->ReturnType(), checker) && signature->HasFunction() && + signature->Function()->Id()->Name().Is("then")) { + auto *newtype = UnwrapPromiseType(signature->ReturnType()); + signature->SetReturnType(checker->CreatePromiseOf(newtype)); + } + expr->SetSignature(signature); // #22951: this type should not be encoded as a signature flag -- Gitee