From cbcc1f2aa3bfa510ff091f48963996fc77e5a1c6 Mon Sep 17 00:00:00 2001 From: sniperc96 Date: Tue, 12 Aug 2025 21:52:38 +0800 Subject: [PATCH] add import Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICSR2Q Signed-off-by: sniperc96 --- ets2panda/linter/src/lib/TypeScriptLinter.ts | 7 +--- .../src/lib/utils/consts/ArkuiImportList.ts | 1 + .../test/main/builder_node.ets.arkts2.json | 20 ++++++++++ .../wrapped_builder_generic_1.ets.arkts2.json | 20 ++++++++++ .../wrapped_builder_generic_2.ets.arkts2.json | 40 +++++++++++++++++++ 5 files changed, 83 insertions(+), 5 deletions(-) diff --git a/ets2panda/linter/src/lib/TypeScriptLinter.ts b/ets2panda/linter/src/lib/TypeScriptLinter.ts index 3b7a5a6a4e..604a3bdff3 100644 --- a/ets2panda/linter/src/lib/TypeScriptLinter.ts +++ b/ets2panda/linter/src/lib/TypeScriptLinter.ts @@ -11744,11 +11744,8 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { private isTargetStorageType(storage: ts.Identifier, targetTypes: string[]): boolean { const decl = this.tsUtils.getDeclarationNode(storage); - if (!decl) { - if (targetTypes.includes(storage.getText())) { - return true; - } - return false; + if (!decl || decl.getSourceFile() !== storage.getSourceFile()) { + return targetTypes.includes(storage.getText()); } if (!ts.isVariableDeclaration(decl)) { diff --git a/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts b/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts index f95f5d338f..d4b3959341 100644 --- a/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts +++ b/ets2panda/linter/src/lib/utils/consts/ArkuiImportList.ts @@ -1596,6 +1596,7 @@ export const arkuiImportList: Set = new Set([ 'WithThemeOptions', 'WordBreak', 'WorkStateStyle', + 'wrapBuilder', 'WrappedBuilder', 'XComponent', 'XComponentAttribute', diff --git a/ets2panda/linter/test/main/builder_node.ets.arkts2.json b/ets2panda/linter/test/main/builder_node.ets.arkts2.json index e6bce3c58b..fa11de342c 100644 --- a/ets2panda/linter/test/main/builder_node.ets.arkts2.json +++ b/ets2panda/linter/test/main/builder_node.ets.arkts2.json @@ -294,6 +294,26 @@ "rule": "The ArkUI interface \"UIContext\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, + { + "line": 75, + "column": 31, + "endLine": 75, + "endColumn": 42, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 77, + "column": 31, + "endLine": 77, + "endColumn": 42, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, { "line": 111, "column": 2, diff --git a/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json b/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json index 211ffc2630..e81fd481df 100644 --- a/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json +++ b/ets2panda/linter/test/main/wrapped_builder_generic_1.ets.arkts2.json @@ -134,6 +134,16 @@ "rule": "The ArkUI interface \"WrappedBuilder\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, + { + "line": 22, + "column": 59, + "endLine": 22, + "endColumn": 70, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, { "line": 23, "column": 24, @@ -144,6 +154,16 @@ "rule": "The ArkUI interface \"WrappedBuilder\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, + { + "line": 23, + "column": 59, + "endLine": 23, + "endColumn": 70, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, { "line": 24, "column": 24, diff --git a/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json b/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json index 2b9f863f55..a9ac9aae35 100644 --- a/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json +++ b/ets2panda/linter/test/main/wrapped_builder_generic_2.ets.arkts2.json @@ -254,6 +254,26 @@ "rule": "The ArkUI interface \"WrappedBuilder\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, + { + "line": 29, + "column": 58, + "endLine": 29, + "endColumn": 69, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 82, + "endLine": 29, + "endColumn": 93, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, { "line": 30, "column": 20, @@ -264,6 +284,26 @@ "rule": "The ArkUI interface \"WrappedBuilder\" should be imported before it is used (arkui-modular-interface)", "severity": "ERROR" }, + { + "line": 30, + "column": 58, + "endLine": 30, + "endColumn": 69, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 100, + "endLine": 30, + "endColumn": 111, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"wrapBuilder\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" + }, { "line": 31, "column": 20, -- Gitee