From 9b855254a120e42c0e366f89a8e6857bc3efa9ce Mon Sep 17 00:00:00 2001 From: Jiakai Shi Date: Sat, 21 Jun 2025 18:03:29 +0800 Subject: [PATCH] fix find memo annotation from type annotations Signed-off-by: Jiakai Shi Change-Id: I8a5c4ce9e67d974258c9b211f7b8d4a432c8cbd0 --- arkui-plugins/memo-plugins/utils.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arkui-plugins/memo-plugins/utils.ts b/arkui-plugins/memo-plugins/utils.ts index 31cb1ff54..68fc086bd 100644 --- a/arkui-plugins/memo-plugins/utils.ts +++ b/arkui-plugins/memo-plugins/utils.ts @@ -450,9 +450,14 @@ export function findMemoFromTypeAnnotation(typeAnnotation: arkts.AstNode | undef } if (arkts.isETSTypeReference(typeAnnotation) && !!typeAnnotation.part && !!typeAnnotation.part.name) { let decl: arkts.AstNode | undefined = arkts.getDecl(typeAnnotation.part.name); - if (!!decl && arkts.isTSTypeAliasDeclaration(decl)) { - return hasMemoAnnotation(decl) || hasMemoIntrinsicAnnotation(decl) || decl.typeAnnotation ? findMemoFromTypeAnnotation(decl.typeAnnotation) : false; + if (!decl || !arkts.isTSTypeAliasDeclaration(decl)) { + return false; + } + let isMemo: boolean = hasMemoAnnotation(decl) || hasMemoIntrinsicAnnotation(decl); + if (!isMemo && !!decl.typeAnnotation) { + isMemo = findMemoFromTypeAnnotation(decl.typeAnnotation); } + return isMemo; } else if (arkts.isETSFunctionType(typeAnnotation)) { return hasMemoAnnotation(typeAnnotation) || hasMemoIntrinsicAnnotation(typeAnnotation); } else if (arkts.isETSUnionType(typeAnnotation)) { -- Gitee