From 2fb4cdb0385b5bdd565a6e1842779c7eff5e083a Mon Sep 17 00:00:00 2001 From: liqing-yang Date: Mon, 23 Jun 2025 11:46:20 +0800 Subject: [PATCH] dynamic-args-to-static: only in 1.1 files Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICH20K Signed-off-by: liqing-yang --- .../checker/migration/InteropAssignCheck.ts | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/ets2panda/linter/homecheck/src/checker/migration/InteropAssignCheck.ts b/ets2panda/linter/homecheck/src/checker/migration/InteropAssignCheck.ts index a17b9064ba..4a15f6af6a 100644 --- a/ets2panda/linter/homecheck/src/checker/migration/InteropAssignCheck.ts +++ b/ets2panda/linter/homecheck/src/checker/migration/InteropAssignCheck.ts @@ -95,33 +95,35 @@ export class InteropAssignCheck implements BaseChecker { private checkPassToFunction(target: ArkMethod, scene: Scene) { const callsites = this.cg.getInvokeStmtByMethod(target.getSignature()); - callsites.forEach(cs => { - let hasTargetArg = false; - const invoke = cs.getInvokeExpr()!; - const csMethod = cs.getCfg().getDeclaringMethod(); - invoke.getArgs().forEach(arg => { - const argTy = arg.getType(); - if (argTy instanceof PrimitiveType || this.isBoxedType(argTy)) { + callsites + .filter(cs => cs.getCfg().getDeclaringMethod().getLanguage() === Language.ARKTS1_1) + .forEach(cs => { + let hasTargetArg = false; + const invoke = cs.getInvokeExpr()!; + const csMethod = cs.getCfg().getDeclaringMethod(); + invoke.getArgs().forEach(arg => { + const argTy = arg.getType(); + if (argTy instanceof PrimitiveType || this.isBoxedType(argTy)) { + return; + } + const argTyLang = this.getTypeDefinedLang(argTy, scene) ?? csMethod?.getLanguage() ?? Language.UNKNOWN; + if (argTyLang === Language.ARKTS1_1) { + hasTargetArg = true; + } + }); + if (!hasTargetArg) { return; } - const argTyLang = this.getTypeDefinedLang(argTy, scene) ?? csMethod?.getLanguage() ?? Language.UNKNOWN; - if (argTyLang === Language.ARKTS1_1) { - hasTargetArg = true; - } + let line = cs.getOriginPositionInfo().getLineNo(); + let column = cs.getOriginPositionInfo().getColNo(); + const problem = 'Interop'; + const desc = `${this.metaData.description} (${RULE_ID})`; + const severity = this.metaData.severity; + const ruleId = this.rule.ruleId; + const filePath = csMethod?.getDeclaringArkFile()?.getFilePath() ?? ''; + const defeats = new Defects(line, column, column, problem, desc, severity, ruleId, filePath, '', true, false, false); + this.issues.push(new IssueReport(defeats, undefined)); }); - if (!hasTargetArg) { - return; - } - let line = cs.getOriginPositionInfo().getLineNo(); - let column = cs.getOriginPositionInfo().getColNo(); - const problem = 'Interop'; - const desc = `${this.metaData.description} (${RULE_ID})`; - const severity = this.metaData.severity; - const ruleId = this.rule.ruleId; - const filePath = csMethod?.getDeclaringArkFile()?.getFilePath() ?? ''; - const defeats = new Defects(line, column, column, problem, desc, severity, ruleId, filePath, '', true, false, false); - this.issues.push(new IssueReport(defeats, undefined)); - }); } private isBoxedType(checkType: Type): boolean { -- Gitee