From 1d16c05f7111c78195e9973535dfb1512633c9c3 Mon Sep 17 00:00:00 2001 From: cihatfurkaneken Date: Wed, 6 Aug 2025 15:00:57 +0300 Subject: [PATCH] fix no-inferred-generic-params rule autofix Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICRL8A Signed-off-by: cihatfurkaneken --- .../linter/src/lib/autofixes/Autofixer.ts | 3 ++- .../test/main/func_inferred_type_args_2.ets | 4 ++++ .../func_inferred_type_args_2.ets.arkts2.json | 10 +++++++++ ...func_inferred_type_args_2.ets.autofix.json | 21 +++++++++++++++++++ .../func_inferred_type_args_2.ets.migrate.ets | 4 ++++ 5 files changed, 41 insertions(+), 1 deletion(-) diff --git a/ets2panda/linter/src/lib/autofixes/Autofixer.ts b/ets2panda/linter/src/lib/autofixes/Autofixer.ts index 3789d7c2b9..3ef2aba012 100644 --- a/ets2panda/linter/src/lib/autofixes/Autofixer.ts +++ b/ets2panda/linter/src/lib/autofixes/Autofixer.ts @@ -4971,6 +4971,7 @@ export class Autofixer { } return `<${typeArg. map((arg) => { + ts.setEmitFlags(arg, ts.EmitFlags.SingleLine); return this.nonCommentPrinter.printNode(ts.EmitHint.Unspecified, arg, sourceFile); }). join(', ')}>`; @@ -4978,7 +4979,7 @@ export class Autofixer { if (!typeArg || !this.isTypeArgumentAccessible(sourceFile, typeArg as ts.TypeNode)) { return undefined; } - + ts.setEmitFlags(typeArg as ts.TypeNode, ts.EmitFlags.SingleLine); return `<${this.nonCommentPrinter.printNode(ts.EmitHint.Unspecified, typeArg as ts.TypeNode, sourceFile)}>`; } diff --git a/ets2panda/linter/test/main/func_inferred_type_args_2.ets b/ets2panda/linter/test/main/func_inferred_type_args_2.ets index 80246fcd42..43830e5da0 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_2.ets +++ b/ets2panda/linter/test/main/func_inferred_type_args_2.ets @@ -118,3 +118,7 @@ class SubWeakMap extends WeakMap{} let subWeakMap = new SubWeakMap(); class SubWeakSet extends WeakSet{} let subWeakSet = new SubWeakSet(); + +class C {} +class D {} +let a: D<[C]> = new D(); \ No newline at end of file diff --git a/ets2panda/linter/test/main/func_inferred_type_args_2.ets.arkts2.json b/ets2panda/linter/test/main/func_inferred_type_args_2.ets.arkts2.json index 582bf2a455..788aaf8aaa 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_2.ets.arkts2.json +++ b/ets2panda/linter/test/main/func_inferred_type_args_2.ets.arkts2.json @@ -524,6 +524,16 @@ "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", "severity": "ERROR" }, + { + "line": 124, + "column": 17, + "endLine": 124, + "endColumn": 24, + "problem": "GenericCallNoTypeArgs", + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, { "line": 84, "column": 2, diff --git a/ets2panda/linter/test/main/func_inferred_type_args_2.ets.autofix.json b/ets2panda/linter/test/main/func_inferred_type_args_2.ets.autofix.json index 4b652fc080..6d8c8403ac 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_2.ets.autofix.json +++ b/ets2panda/linter/test/main/func_inferred_type_args_2.ets.autofix.json @@ -766,6 +766,27 @@ "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", "severity": "ERROR" }, + { + "line": 124, + "column": 17, + "endLine": 124, + "endColumn": 24, + "problem": "GenericCallNoTypeArgs", + "autofix": [ + { + "start": 3313, + "end": 3313, + "replacementText": "<[C]>", + "line": 124, + "column": 17, + "endLine": 124, + "endColumn": 24 + } + ], + "suggest": "", + "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", + "severity": "ERROR" + }, { "line": 84, "column": 2, diff --git a/ets2panda/linter/test/main/func_inferred_type_args_2.ets.migrate.ets b/ets2panda/linter/test/main/func_inferred_type_args_2.ets.migrate.ets index 541aea7351..3cfe89eaab 100644 --- a/ets2panda/linter/test/main/func_inferred_type_args_2.ets.migrate.ets +++ b/ets2panda/linter/test/main/func_inferred_type_args_2.ets.migrate.ets @@ -125,3 +125,7 @@ class SubWeakMap extends WeakMap{} let subWeakMap = new SubWeakMap(); class SubWeakSet extends WeakSet{} let subWeakSet = new SubWeakSet(); + +class C {} +class D {} +let a: D<[C]> = new D<[C]>(); \ No newline at end of file -- Gitee