From d4787ecd1c7a49677edac2799f9e025e9eeec576 Mon Sep 17 00:00:00 2001 From: zhongning Date: Thu, 26 Jun 2025 15:16:01 +0800 Subject: [PATCH] fix issue for arkts-limited-void-type Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICHPTT Test scenarios: fix bug Signed-off-by: zhongning --- .../linter/src/lib/autofixes/Autofixer.ts | 3 +- .../linter/test/main/limit_void_type.ets | 4 +- .../test/main/limit_void_type.ets.arkts2.json | 30 ++ .../main/limit_void_type.ets.autofix.json | 118 ++++++-- .../test/main/limit_void_type.ets.migrate.ets | 70 ++--- .../main/limit_void_type.ets.migrate.json | 284 +++++++++++++++++- 6 files changed, 427 insertions(+), 82 deletions(-) diff --git a/ets2panda/linter/src/lib/autofixes/Autofixer.ts b/ets2panda/linter/src/lib/autofixes/Autofixer.ts index a29f4742e4..df320cd9de 100644 --- a/ets2panda/linter/src/lib/autofixes/Autofixer.ts +++ b/ets2panda/linter/src/lib/autofixes/Autofixer.ts @@ -4759,7 +4759,6 @@ export class Autofixer { if (!newDecl) { return undefined; } - const replacementText = this.printer.printNode(ts.EmitHint.Unspecified, newDecl, srcFile); return [{ start: node.getStart(), end: node.getEnd(), replacementText }]; } @@ -4803,7 +4802,7 @@ export class Autofixer { newInit: ts.Expression ): ts.Node | undefined { if (ts.isVariableDeclaration(node)) { - return ts.factory.createVariableDeclaration(node.name, node.exclamationToken, newType, newInit); + return ts.factory.createVariableDeclaration(node.name, node.exclamationToken, newType, node.initializer); } if (ts.isParameter(node)) { diff --git a/ets2panda/linter/test/main/limit_void_type.ets b/ets2panda/linter/test/main/limit_void_type.ets index 7cb24cf7cf..f8508e6147 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets +++ b/ets2panda/linter/test/main/limit_void_type.ets @@ -260,4 +260,6 @@ function tryThing(): string | void { } catch (e) { console.error(e); } -} \ No newline at end of file +} + +const aa: number | void = 1; \ No newline at end of file diff --git a/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json b/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json index 0ae2dd16e4..9b2cc96a7f 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.arkts2.json @@ -1423,6 +1423,36 @@ "suggest": "", "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" + }, + { + "line": 265, + "column": 11, + "endLine": 265, + "endColumn": 24, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 265, + "column": 20, + "endLine": 265, + "endColumn": 24, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 265, + "column": 27, + "endLine": 265, + "endColumn": 28, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/main/limit_void_type.ets.autofix.json b/ets2panda/linter/test/main/limit_void_type.ets.autofix.json index 34bbf47a13..239f148302 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.autofix.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.autofix.json @@ -24,7 +24,7 @@ { "start": 666, "end": 683, - "replacementText": "a: undefined = ((): undefined => { func1(); return undefined; })()", + "replacementText": "a: undefined = func1()", "line": 19, "column": 8, "endLine": 19, @@ -55,7 +55,7 @@ { "start": 749, "end": 766, - "replacementText": "b: undefined = ((): undefined => { func2(); return undefined; })()", + "replacementText": "b: undefined = func2()", "line": 22, "column": 8, "endLine": 22, @@ -86,7 +86,7 @@ { "start": 835, "end": 864, - "replacementText": "c: undefined = ((): undefined => { new Demo().method(); return undefined; })()", + "replacementText": "c: undefined = new Demo().method()", "line": 27, "column": 8, "endLine": 27, @@ -117,7 +117,7 @@ { "start": 931, "end": 966, - "replacementText": "d: undefined = ((): undefined => { (function (): void { })(); return undefined; })()", + "replacementText": "d: undefined = (function (): void { })()", "line": 29, "column": 8, "endLine": 29, @@ -169,7 +169,7 @@ { "start": 1054, "end": 1081, - "replacementText": "e: undefined = ((): undefined => { await asyncFunc(); return undefined; })()", + "replacementText": "e: undefined = await asyncFunc()", "line": 32, "column": 8, "endLine": 32, @@ -190,7 +190,7 @@ { "start": 1157, "end": 1171, - "replacementText": "f: undefined = ((): undefined => { fn(); return undefined; })()", + "replacementText": "f: undefined = fn()", "line": 35, "column": 10, "endLine": 35, @@ -221,7 +221,7 @@ { "start": 1235, "end": 1260, - "replacementText": "g: undefined = ((): undefined => { func3() as void; return undefined; })()", + "replacementText": "g: undefined = func3() as void", "line": 39, "column": 8, "endLine": 39, @@ -273,7 +273,7 @@ { "start": 1333, "end": 1370, - "replacementText": "h: undefined = ((): undefined => { setTimeout(() => { }, 1000); return undefined; })()", + "replacementText": "h: undefined = setTimeout(() => { }, 1000)", "line": 42, "column": 8, "endLine": 42, @@ -315,7 +315,7 @@ { "start": 1451, "end": 1473, - "replacementText": "i: undefined = ((): undefined => { funcArr[0](); return undefined; })()", + "replacementText": "i: undefined = funcArr[0]()", "line": 45, "column": 8, "endLine": 45, @@ -366,7 +366,7 @@ { "start": 1551, "end": 1573, - "replacementText": "j: undefined = ((): undefined => { obj.action(); return undefined; })()", + "replacementText": "j: undefined = obj.action()", "line": 50, "column": 8, "endLine": 50, @@ -397,7 +397,7 @@ { "start": 1647, "end": 1664, - "replacementText": "k: undefined = ((): undefined => { func4(); return undefined; })()", + "replacementText": "k: undefined = func4()", "line": 54, "column": 8, "endLine": 54, @@ -428,7 +428,7 @@ { "start": 1740, "end": 1764, - "replacementText": "l: undefined = ((): undefined => { exportedFunc(); return undefined; })()", + "replacementText": "l: undefined = exportedFunc()", "line": 57, "column": 8, "endLine": 57, @@ -459,7 +459,7 @@ { "start": 1838, "end": 1861, - "replacementText": "m: undefined = ((): undefined => { genericFunc(); return undefined; })()", + "replacementText": "m: undefined = genericFunc()", "line": 60, "column": 8, "endLine": 60, @@ -530,7 +530,7 @@ { "start": 2024, "end": 2048, - "replacementText": "n: undefined = ((): undefined => { overloadFunc(); return undefined; })()", + "replacementText": "n: undefined = overloadFunc()", "line": 65, "column": 8, "endLine": 65, @@ -561,7 +561,7 @@ { "start": 2147, "end": 2168, - "replacementText": "o: undefined = ((): undefined => { aliasFunc(); return undefined; })()", + "replacementText": "o: undefined = aliasFunc()", "line": 69, "column": 8, "endLine": 69, @@ -592,7 +592,7 @@ { "start": 2300, "end": 2329, - "replacementText": "p: undefined = ((): undefined => { new Printer().run(); return undefined; })()", + "replacementText": "p: undefined = new Printer().run()", "line": 77, "column": 8, "endLine": 77, @@ -623,7 +623,7 @@ { "start": 2414, "end": 2435, - "replacementText": "q: undefined = ((): undefined => { withParam(); return undefined; })()", + "replacementText": "q: undefined = withParam()", "line": 80, "column": 8, "endLine": 80, @@ -654,7 +654,7 @@ { "start": 2513, "end": 2535, - "replacementText": "r: undefined = ((): undefined => { sum(1, 2, 3); return undefined; })()", + "replacementText": "r: undefined = sum(1, 2, 3)", "line": 83, "column": 8, "endLine": 83, @@ -758,7 +758,7 @@ { "start": 2613, "end": 2644, - "replacementText": "s: undefined = ((): undefined => { withThis.call(window); return undefined; })()", + "replacementText": "s: undefined = withThis.call(window)", "line": 86, "column": 8, "endLine": 86, @@ -809,7 +809,7 @@ { "start": 2734, "end": 2766, - "replacementText": "u: undefined = ((): undefined => { genFunc().next().value; return undefined; })()", + "replacementText": "u: undefined = genFunc().next().value", "line": 91, "column": 8, "endLine": 91, @@ -840,7 +840,7 @@ { "start": 2842, "end": 2861, - "replacementText": "w: undefined = ((): undefined => { curry()(); return undefined; })()", + "replacementText": "w: undefined = curry()()", "line": 94, "column": 8, "endLine": 94, @@ -881,7 +881,7 @@ { "start": 2966, "end": 3002, - "replacementText": "x: undefined = ((): undefined => { new Chain().first().last(); return undefined; })()", + "replacementText": "x: undefined = new Chain().first().last()", "line": 100, "column": 8, "endLine": 100, @@ -942,7 +942,7 @@ { "start": 3082, "end": 3098, - "replacementText": "y: undefined = ((): undefined => { func(); return undefined; })()", + "replacementText": "y: undefined = func()", "line": 103, "column": 8, "endLine": 103, @@ -1004,7 +1004,7 @@ { "start": 3223, "end": 3248, - "replacementText": "z: undefined = ((): undefined => { wrapped.value(); return undefined; })()", + "replacementText": "z: undefined = wrapped.value()", "line": 107, "column": 8, "endLine": 107, @@ -1045,7 +1045,7 @@ { "start": 3398, "end": 3419, - "replacementText": "aa: undefined = ((): undefined => { condFunc(); return undefined; })()", + "replacementText": "aa: undefined = condFunc()", "line": 111, "column": 9, "endLine": 111, @@ -1106,7 +1106,7 @@ { "start": 3560, "end": 3578, - "replacementText": "ab: undefined = ((): undefined => { mixed(); return undefined; })()", + "replacementText": "ab: undefined = mixed()", "line": 118, "column": 9, "endLine": 118, @@ -1147,7 +1147,7 @@ { "start": 3667, "end": 3689, - "replacementText": "ac: undefined = ((): undefined => { recursive(); return undefined; })()", + "replacementText": "ac: undefined = recursive()", "line": 123, "column": 9, "endLine": 123, @@ -1219,7 +1219,7 @@ { "start": 3824, "end": 3857, - "replacementText": "ad: undefined = ((): undefined => { decorator()(Decorated); return undefined; })()", + "replacementText": "ad: undefined = decorator()(Decorated)", "line": 130, "column": 9, "endLine": 130, @@ -1280,7 +1280,7 @@ { "start": 3981, "end": 3989, - "replacementText": "a2: undefined = undefined", + "replacementText": "a2: undefined", "line": 138, "column": 9, "endLine": 138, @@ -1351,7 +1351,7 @@ { "start": 4199, "end": 4214, - "replacementText": "a4: undefined = ((): undefined => { f1(); return undefined; })()", + "replacementText": "a4: undefined = f1()", "line": 146, "column": 9, "endLine": 146, @@ -1779,7 +1779,7 @@ { "start": 5621, "end": 5637, - "replacementText": "ss: undefined = ((): undefined => { foo(); return undefined; })()", + "replacementText": "ss: undefined = foo()", "line": 224, "column": 9, "endLine": 224, @@ -1810,7 +1810,7 @@ { "start": 5642, "end": 5666, - "replacementText": "t: undefined | number = ((): undefined | number => { foo(); return undefined; })()", + "replacementText": "t: undefined | number = foo()", "line": 225, "column": 8, "endLine": 225, @@ -1851,7 +1851,7 @@ { "start": 5671, "end": 5692, - "replacementText": "t2: undefined | number = ((): undefined | number => { 1; return undefined; })()", + "replacementText": "t2: undefined | number = 1", "line": 226, "column": 9, "endLine": 226, @@ -2177,6 +2177,58 @@ "suggest": "", "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" + }, + { + "line": 265, + "column": 11, + "endLine": 265, + "endColumn": 24, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6313, + "end": 6334, + "replacementText": "aa: number | undefined = 1", + "line": 265, + "column": 11, + "endLine": 265, + "endColumn": 24 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 265, + "column": 20, + "endLine": 265, + "endColumn": 24, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 265, + "column": 27, + "endLine": 265, + "endColumn": 28, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 6333, + "end": 6334, + "replacementText": "1.0", + "line": 265, + "column": 27, + "endLine": 265, + "endColumn": 28 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" } ] } \ No newline at end of file diff --git a/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets b/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets index 8873cd3602..ce8f9f40ba 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets +++ b/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets @@ -16,57 +16,57 @@ // Example 1: Basic function function func1(): void { } -let a: undefined = ((): undefined => { func1(); return undefined; })(); +let a: undefined = func1(); // Example 2: Arrow function const func2 = (): void => { }; -let b: undefined = ((): undefined => { func2(); return undefined; })(); +let b: undefined = func2(); // Example 3: Class method class Demo { method(): void { } } -let c: undefined = ((): undefined => { new Demo().method(); return undefined; })(); +let c: undefined = new Demo().method(); // Example 4: Immediately Invoked Function Expression (IIFE) -let d: undefined = ((): undefined => { ((): void => { })(); return undefined; })(); +let d: undefined = ((): void => { })(); // Example 5: Asynchronous function async function asyncFunc(): Promise { } -let e: undefined = ((): undefined => { await asyncFunc(); return undefined; })(); +let e: undefined = await asyncFunc(); // Example 6: Function parameter function wrapper(fn: () => void) { - let f: undefined = ((): undefined => { fn(); return undefined; })(); + let f: undefined = fn(); } // Example 7: Type assertion function func3(): void { } -let g: undefined = ((): undefined => { func3() as void; return undefined; })(); +let g: undefined = func3() as void; // Example 8: Callback function setTimeout((): void => { }, 1000.0); -let h: undefined = ((): undefined => { setTimeout(() => { }, 1000.0); return undefined; })(); +let h: undefined = setTimeout(() => { }, 1000.0); // Example 9: Array operation const funcArr: (() => void)[] = [() => { }]; -let i: undefined = ((): undefined => { funcArr[0](); return undefined; })(); +let i: undefined = funcArr[0](); // Example 10: Object method const obj = { action: (): void => { } }; -let j: undefined = ((): undefined => { obj.action(); return undefined; })(); +let j: undefined = obj.action(); // Example 11: Strict mode // @ts-strict function func4(): void { } -let k: undefined = ((): undefined => { func4(); return undefined; })(); +let k: undefined = func4(); // Example 12: Module export export function exportedFunc(): void { } -let l: undefined = ((): undefined => { exportedFunc(); return undefined; })(); +let l: undefined = exportedFunc(); // Example 13: Generic function function genericFunc(): void { } -let m: undefined = ((): undefined => { genericFunc(); return undefined; })(); +let m: undefined = genericFunc(); // Example 14: Function overloading function overloadFunc(): void; function overloadFunc(n: number): number; function overloadFunc(n?: number) { return n; } -let n: undefined = ((): undefined => { overloadFunc(); return undefined; })(); +let n: undefined = overloadFunc(); // Example 15: Type alias type VoidFunc = () => void; const aliasFunc: VoidFunc = () => { }; -let o: undefined = ((): undefined => { aliasFunc(); return undefined; })(); +let o: undefined = aliasFunc(); // Example 16: Interface implementation interface Task { run(): void; @@ -74,64 +74,64 @@ interface Task { class Printer implements Task { run(): void { } } -let p: undefined = ((): undefined => { new Printer().run(); return undefined; })(); +let p: undefined = new Printer().run(); // Example 17: Optional parameter function withParam(param?: string): void { } -let q: undefined = ((): undefined => { withParam(); return undefined; })(); +let q: undefined = withParam(); // Example 18: Rest parameter function sum(...nums: number[]): void { } -let r: undefined = ((): undefined => { sum(1.0, 2.0, 3.0); return undefined; })(); +let r: undefined = sum(1.0, 2.0, 3.0); // Example 19: This parameter function withThis(this: Window): void { } -let s: undefined = ((): undefined => { withThis.call(window); return undefined; })(); +let s: undefined = withThis.call(window); // Example 20: Generator function function* genFunc(): Generator { yield; } -let u: undefined = ((): undefined => { genFunc().next().value; return undefined; })(); +let u: undefined = genFunc().next().value; // Example 21: Function currying const curry = () => (): void => { }; -let w: undefined = ((): undefined => { curry()(); return undefined; })(); +let w: undefined = curry()(); // Example 22: Method chaining class Chain { first(): this { return this; } last(): void { } } -let x: undefined = ((): undefined => { new Chain().first().last(); return undefined; })(); +let x: undefined = new Chain().first().last(); // Example 23: Destructuring assignment const GeneratedDestructArray_1 = [(): void => { }]; const func = GeneratedDestructArray_1[0]; -let y: undefined = ((): undefined => { func(); return undefined; })(); +let y: undefined = func(); // Example 24: Type mapping interface Wrapper { value: T; } const wrapped: Wrapper<() => void> = { value: () => { } }; -let z: undefined = ((): undefined => { wrapped.value(); return undefined; })(); +let z: undefined = wrapped.value(); // Example 25: Conditional type type Conditional = T extends boolean ? () => void : never; const condFunc: Conditional = () => { }; -let aa: undefined = ((): undefined => { condFunc(); return undefined; })(); +let aa: undefined = condFunc(); // Example 26: Mixed type interface Mixed { (): void; prop: string; } const mixed: Mixed = Object.assign(() => { }, { prop: "" }); -let ab: undefined = ((): undefined => { mixed(); return undefined; })(); +let ab: undefined = mixed(); // Example 27: Recursive call function recursive(): void { return recursive(); } -let ac: undefined = ((): undefined => { recursive(); return undefined; })(); +let ac: undefined = recursive(); // Example 28: Decorator function function decorator() { return (target: any) => { }; } @decorator() class Decorated { } -let ad: undefined = ((): undefined => { decorator()(Decorated); return undefined; })(); +let ad: undefined = decorator()(Decorated); function f1(): void { } @@ -139,7 +139,7 @@ let a1 = f1(); // type `void` is used as value a1 = f1(); // type `void` is used as value -let a2: undefined = undefined; // type `void` is used as type annotation +let a2: undefined; // type `void` is used as type annotation let a3: void[] = [f1()]; // type `void` is used as type annotation @@ -147,7 +147,7 @@ a3 = [f1()]; // type `void` is used as value a3[0] = f1(); // type `void` is used as value -let a4: undefined = ((): undefined => { f1(); return undefined; })(); // type `void` is used as type annotation +let a4: undefined = f1(); // type `void` is used as type annotation function f2(a: undefined) { } // type `void` is used as type annotation @@ -229,9 +229,9 @@ function foocfe2(a: number): string | undefined { return "a >= 0"; } function fooefc(): void { } -let ss: undefined = ((): undefined => { foo(); return undefined; })() -let t: undefined | number = ((): undefined | number => { foo(); return undefined; })() -let t2: undefined | number = ((): undefined | number => { 1.0; return undefined; })(); +let ss: undefined = foo() +let t: undefined | number = foo() +let t2: undefined | number = 1.0; function greet(hour: number): string | undefined { if (hour < 12.0) { @@ -270,4 +270,6 @@ function tryThing(): string | undefined { } catch (e) { console.error(e); } -} \ No newline at end of file +} + +const aa: number | undefined = 1.0; \ No newline at end of file diff --git a/ets2panda/linter/test/main/limit_void_type.ets.migrate.json b/ets2panda/linter/test/main/limit_void_type.ets.migrate.json index ca74c32559..5fdb952336 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.migrate.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.migrate.json @@ -14,11 +14,61 @@ "limitations under the License." ], "result": [ + { + "line": 19, + "column": 20, + "endLine": 19, + "endColumn": 27, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 22, + "column": 20, + "endLine": 22, + "endColumn": 27, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 20, + "endLine": 27, + "endColumn": 39, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 20, + "endLine": 29, + "endColumn": 39, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 35, + "column": 22, + "endLine": 35, + "endColumn": 26, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 39, - "column": 40, + "column": 20, "endLine": 39, - "endColumn": 47, + "endColumn": 27, "problem": "LimitedVoidType", "suggest": "", "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", @@ -26,9 +76,19 @@ }, { "line": 45, - "column": 40, + "column": 20, "endLine": 45, - "endColumn": 50, + "endColumn": 32, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 45, + "column": 20, + "endLine": 45, + "endColumn": 30, "problem": "RuntimeArrayCheck", "suggest": "", "rule": "Array bound not checked. (arkts-runtime-array-check)", @@ -44,16 +104,56 @@ "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", "severity": "ERROR" }, + { + "line": 50, + "column": 20, + "endLine": 50, + "endColumn": 32, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 54, + "column": 20, + "endLine": 54, + "endColumn": 27, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 57, + "column": 20, + "endLine": 57, + "endColumn": 34, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 60, - "column": 40, + "column": 20, "endLine": 60, - "endColumn": 53, + "endColumn": 33, "problem": "GenericCallNoTypeArgs", "suggest": "", "rule": "Type inference in case of generic function calls is limited (arkts-no-inferred-generic-params)", "severity": "ERROR" }, + { + "line": 60, + "column": 20, + "endLine": 60, + "endColumn": 33, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 62, "column": 1, @@ -84,6 +184,56 @@ "rule": "Class TS overloading is not supported(arkts-no-ts-overload)", "severity": "ERROR" }, + { + "line": 65, + "column": 20, + "endLine": 65, + "endColumn": 34, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 69, + "column": 20, + "endLine": 69, + "endColumn": 31, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 77, + "column": 20, + "endLine": 77, + "endColumn": 39, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 80, + "column": 20, + "endLine": 80, + "endColumn": 31, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 83, + "column": 20, + "endLine": 83, + "endColumn": 38, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 85, "column": 19, @@ -96,9 +246,9 @@ }, { "line": 86, - "column": 49, + "column": 29, "endLine": 86, - "endColumn": 53, + "endColumn": 33, "problem": "FunctionApplyCall", "suggest": "", "rule": "'Function.apply', 'Function.call' are not supported (arkts-no-func-apply-call)", @@ -126,14 +276,24 @@ }, { "line": 91, - "column": 40, + "column": 20, "endLine": 91, - "endColumn": 62, + "endColumn": 42, "problem": "AvoidUnionTypes", "suggest": "", "rule": "Avoid using union types (arkts-common-union-member-access)", "severity": "ERROR" }, + { + "line": 94, + "column": 20, + "endLine": 94, + "endColumn": 29, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 97, "column": 12, @@ -144,6 +304,16 @@ "rule": "Type notation using \"this\" is not supported (arkts-no-typing-with-this)", "severity": "ERROR" }, + { + "line": 100, + "column": 20, + "endLine": 100, + "endColumn": 46, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 103, "column": 14, @@ -154,6 +324,26 @@ "rule": "Array bound not checked. (arkts-runtime-array-check)", "severity": "ERROR" }, + { + "line": 105, + "column": 20, + "endLine": 105, + "endColumn": 26, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 111, + "column": 20, + "endLine": 111, + "endColumn": 35, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 113, "column": 23, @@ -164,6 +354,16 @@ "rule": "Conditional types are not supported (arkts-no-conditional-types)", "severity": "ERROR" }, + { + "line": 115, + "column": 21, + "endLine": 115, + "endColumn": 31, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 118, "column": 3, @@ -194,6 +394,16 @@ "rule": "Object literal must correspond to some explicitly declared class or interface (arkts-no-untyped-obj-literals)", "severity": "ERROR" }, + { + "line": 122, + "column": 21, + "endLine": 122, + "endColumn": 28, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 125, "column": 10, @@ -204,6 +414,16 @@ "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" }, + { + "line": 127, + "column": 21, + "endLine": 127, + "endColumn": 32, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 130, "column": 19, @@ -226,9 +446,19 @@ }, { "line": 134, - "column": 53, + "column": 21, "endLine": 134, - "endColumn": 62, + "endColumn": 43, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 134, + "column": 33, + "endLine": 134, + "endColumn": 42, "problem": "ClassAsObjectError", "suggest": "", "rule": "Classes cannot be used as objects (arkts-no-classes-as-obj)", @@ -304,6 +534,16 @@ "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" }, + { + "line": 150, + "column": 21, + "endLine": 150, + "endColumn": 25, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 154, "column": 4, @@ -424,6 +664,26 @@ "rule": "Use unique names for types and namespaces. (arkts-unique-names)", "severity": "ERROR" }, + { + "line": 232, + "column": 21, + "endLine": 232, + "endColumn": 26, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 233, + "column": 29, + "endLine": 233, + "endColumn": 34, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, { "line": 261, "column": 11, -- Gitee