From c78f98ea6e3e8f5fd300318309b29047dfff67b1 Mon Sep 17 00:00:00 2001 From: Igor Loginov Date: Fri, 15 Aug 2025 11:46:13 +0300 Subject: [PATCH] More inplace updates in memo-plugin --- .../src/transform/FunctionTransformer.ts | 28 +++++++++---------- .../src/transform/ReturnTranformer.ts | 3 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/ui2abc/memo-plugin/src/transform/FunctionTransformer.ts b/ui2abc/memo-plugin/src/transform/FunctionTransformer.ts index 648991f3be..759fd81079 100644 --- a/ui2abc/memo-plugin/src/transform/FunctionTransformer.ts +++ b/ui2abc/memo-plugin/src/transform/FunctionTransformer.ts @@ -116,21 +116,21 @@ function updateFunctionBody( const thisParamSubscription = (arkts.isTSThisType(returnTypeAnnotation) && !stableThis) ? [arkts.factory.createExpressionStatement(factory.createMemoParameterAccess("=t"))] : [] + node.setStatements( + [ + ...node.statements.slice(0, gensymParamsCount), + scopeDeclaration, + ...(memoParametersDeclaration ? [memoParametersDeclaration] : []), + ...(addLogging ? [factory.createMemoParameterModifiedLogging(parameterNames)] : []), + ...(addLogging ? [factory.createUnchangedLogging()] : []), + ...unchangedCheck, + ...thisParamSubscription, + ...node.statements.slice(gensymParamsCount), + ...(mayAddLastReturn(node) ? [arkts.factory.createReturnStatement(undefined)] : []), + ] + ) return [ - arkts.factory.updateBlockStatement( - node, - [ - ...node.statements.slice(0, gensymParamsCount), - scopeDeclaration, - ...(memoParametersDeclaration ? [memoParametersDeclaration] : []), - ...(addLogging ? [factory.createMemoParameterModifiedLogging(parameterNames)] : []), - ...(addLogging ? [factory.createUnchangedLogging()] : []), - ...unchangedCheck, - ...thisParamSubscription, - ...node.statements.slice(gensymParamsCount), - ...(mayAddLastReturn(node) ? [arkts.factory.createReturnStatement(undefined)] : []), - ] - ), + node, parameterIdentifiers, memoParametersDeclaration, syntheticReturnStatement, diff --git a/ui2abc/memo-plugin/src/transform/ReturnTranformer.ts b/ui2abc/memo-plugin/src/transform/ReturnTranformer.ts index 6c46a80d23..37e3e3694d 100644 --- a/ui2abc/memo-plugin/src/transform/ReturnTranformer.ts +++ b/ui2abc/memo-plugin/src/transform/ReturnTranformer.ts @@ -44,7 +44,8 @@ export class ReturnTransformer extends arkts.AbstractVisitor { node ]) } - return arkts.factory.updateReturnStatement(node, factory.createRecacheCall(node.argument)) + node.setArgument(factory.createRecacheCall(node.argument)) + return node } return node } -- Gitee