diff --git a/ui2abc/memo-plugin/src/transform/FunctionTransformer.ts b/ui2abc/memo-plugin/src/transform/FunctionTransformer.ts index 648991f3be188dfb9f04d7cd35e184d9dca66832..759fd8107902e6c50956f7b475e03afe925966f3 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 6c46a80d238bab98d9493309dac4831c2132c6bd..37e3e3694db73e67060f8216467ecb79c0d9b79c 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 }