From b4e9d5b7f5b513f8b27c44aa8a243ecad0fc6c7e Mon Sep 17 00:00:00 2001 From: ZhongNing Date: Sat, 28 Jun 2025 12:03:00 +0800 Subject: [PATCH] Fix for LimitedVoidType Issue:https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICI6XK Test scenarios: fix bug Signed-off-by: ZhongNing --- .../linter/src/lib/autofixes/Autofixer.ts | 68 +++- .../linter/test/main/limit_void_type.ets | 39 +- .../test/main/limit_void_type.ets.arkts2.json | 200 +++++++++ .../main/limit_void_type.ets.autofix.json | 378 +++++++++++++++++- .../test/main/limit_void_type.ets.migrate.ets | 54 ++- .../main/limit_void_type.ets.migrate.json | 60 +-- 6 files changed, 743 insertions(+), 56 deletions(-) diff --git a/ets2panda/linter/src/lib/autofixes/Autofixer.ts b/ets2panda/linter/src/lib/autofixes/Autofixer.ts index a29f4742e4..d88403c195 100644 --- a/ets2panda/linter/src/lib/autofixes/Autofixer.ts +++ b/ets2panda/linter/src/lib/autofixes/Autofixer.ts @@ -4760,10 +4760,37 @@ export class Autofixer { return undefined; } - const replacementText = this.printer.printNode(ts.EmitHint.Unspecified, newDecl, srcFile); + let replacementText = this.printer.printNode(ts.EmitHint.Unspecified, newDecl, srcFile); + replacementText = Autofixer.getReplacementTextForLimitedVoidType(node.getFullText(), node.getText(), replacementText); return [{ start: node.getStart(), end: node.getEnd(), replacementText }]; } + private static getReplacementTextForLimitedVoidType( + fullText: string, + text: string, + replacementText: string, + isReturnStatement?: boolean + ): string { + const leadingTrivia = fullText.substring(0, fullText.length - text.length); + const cleanedComments = leadingTrivia. + split(LINE_FEED). + filter((line) => { + return line.trim().startsWith('//') || line.trim().startsWith('/*'); + }). + join(LINE_FEED); + if (cleanedComments.length !== 0) { + if (replacementText.startsWith(cleanedComments)) { + replacementText = replacementText.substring(cleanedComments.length); + } else if (replacementText.trimStart().startsWith(cleanedComments.trimStart())) { + const skipLength = replacementText.indexOf(cleanedComments.trimStart()); + replacementText = replacementText.substring(skipLength + cleanedComments.length); + } + } else if (isReturnStatement) { + replacementText = LINE_FEED + replacementText; + } + return replacementText; + } + private static createNewTypeFromVoid(type: ts.TypeNode | undefined): ts.TypeNode { const identUndefined = ts.factory.createIdentifier(UNDEFINED_NAME); if (type && ts.isUnionTypeNode(type)) { @@ -4837,27 +4864,26 @@ export class Autofixer { if (!returnType || !ts.isUnionTypeNode(returnType) || !TsUtils.typeContainsVoid(returnType)) { return undefined; } - const updatedTypes = returnType.types.map((t) => { return t.kind === ts.SyntaxKind.VoidKeyword ? ts.factory.createTypeReferenceNode(UNDEFINED_NAME) : t; }); - const newType = ts.factory.createUnionTypeNode(updatedTypes); fixes.push({ start: returnType.getStart(), end: returnType.getEnd(), replacementText: this.printer.printNode(ts.EmitHint.Unspecified, newType, fn.getSourceFile()) }); - let hasReturn = false; + const printer = this.printer; function visit(node: ts.Node): void { if (ts.isReturnStatement(node)) { hasReturn = true; if (!node.expression) { + const newReturn = ts.factory.createReturnStatement(ts.factory.createIdentifier(UNDEFINED_NAME)); fixes.push({ start: node.getStart(), end: node.getEnd(), - replacementText: 'return undefined;' + replacementText: printer.printNode(ts.EmitHint.Unspecified, newReturn, fn.getSourceFile()) }); } } @@ -4865,22 +4891,42 @@ export class Autofixer { } if (fn.body) { visit(fn.body); - if (!hasReturn) { if (ts.isBlock(fn.body)) { - const lastBrace = fn.body.getEnd() - 1; + const res = this.fixLimitedVoidTypeFunctionForReturnStatement(fn.body); fixes.push({ - start: lastBrace, - end: lastBrace, - replacementText: '\nreturn undefined;\n' + start: res[1], + end: res[1], + replacementText: res[0] }); } } } - return fixes; } + private fixLimitedVoidTypeFunctionForReturnStatement(node: ts.Block): [string, number] { + const sourceFile = node.getSourceFile(); + const lastStatement = node.statements[node.statements.length - 1]; + let lastBrace = node.getEnd() - 1; + let indent = ''; + if (lastStatement) { + const openBracePos = node.getStart(); + const braceLineChar = ts.getLineAndCharacterOfPosition(sourceFile, openBracePos); + const firstLinePos = ts.getPositionOfLineAndCharacter(sourceFile, braceLineChar.line + 1, 0); + const firstStatement = node.statements[0]; + indent = firstStatement ? sourceFile.text.substring(firstLinePos, firstStatement.getStart()) : ''; + lastBrace = lastStatement.getEnd(); + } + const newReturn = ts.factory.createReturnStatement(ts.factory.createIdentifier(UNDEFINED_NAME)); + const returnText = this.printer.printNode(ts.EmitHint.Unspecified, newReturn, sourceFile); + let newReturnText = `${indent}${returnText}`; + if (lastStatement) { + newReturnText = Autofixer.getReplacementTextForLimitedVoidType(newReturnText, returnText, newReturnText, true); + } + return [newReturnText, lastBrace]; + } + private fixGenericCallNoTypeArgsWithContextualType(node: ts.NewExpression): Autofix[] | undefined { const contextualType = this.typeChecker.getContextualType(node); if (!contextualType) { diff --git a/ets2panda/linter/test/main/limit_void_type.ets b/ets2panda/linter/test/main/limit_void_type.ets index 7cb24cf7cf..85c0b10e42 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets +++ b/ets2panda/linter/test/main/limit_void_type.ets @@ -260,4 +260,41 @@ function tryThing(): string | void { } catch (e) { console.error(e); } -} \ No newline at end of file +} + +class A2 { + // test + aa?: boolean | void +} + + +function tt(): Boolean | void { + const a = 1; +} +class A { + test(): boolean | void { + tt(); + } +} + +//aaa +function tt1(): Boolean | void { + //aaa + const a = 1; +} + +class A1 { + //aaa + test(): boolean | void { + //aaa + tt(); + } +} + +class A3 { + aa?: boolean | void +} + +let bb: boolean | void ; +// test +let cc: boolean | void ; \ 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..dac44eb043 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,206 @@ "suggest": "", "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" + }, + { + "line": 267, + "column": 8, + "endLine": 267, + "endColumn": 22, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 267, + "column": 18, + "endLine": 267, + "endColumn": 22, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 271, + "column": 16, + "endLine": 271, + "endColumn": 30, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 271, + "column": 26, + "endLine": 271, + "endColumn": 30, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 272, + "column": 9, + "endLine": 272, + "endColumn": 14, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 272, + "column": 13, + "endLine": 272, + "endColumn": 14, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 275, + "column": 11, + "endLine": 275, + "endColumn": 25, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 275, + "column": 21, + "endLine": 275, + "endColumn": 25, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 281, + "column": 17, + "endLine": 281, + "endColumn": 31, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 281, + "column": 27, + "endLine": 281, + "endColumn": 31, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 283, + "column": 9, + "endLine": 283, + "endColumn": 14, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 283, + "column": 13, + "endLine": 283, + "endColumn": 14, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 288, + "column": 11, + "endLine": 288, + "endColumn": 25, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 288, + "column": 21, + "endLine": 288, + "endColumn": 25, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 295, + "column": 8, + "endLine": 295, + "endColumn": 22, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 295, + "column": 18, + "endLine": 295, + "endColumn": 22, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 298, + "column": 9, + "endLine": 298, + "endColumn": 23, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 298, + "column": 19, + "endLine": 298, + "endColumn": 23, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 300, + "column": 9, + "endLine": 300, + "endColumn": 23, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 300, + "column": 19, + "endLine": 300, + "endColumn": 23, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "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..28c6c00506 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.autofix.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.autofix.json @@ -1485,7 +1485,7 @@ { "start": 4622, "end": 4622, - "replacementText": "\nreturn undefined;\n", + "replacementText": "return undefined;", "line": 162, "column": 16, "endLine": 162, @@ -1525,7 +1525,7 @@ { "start": 4702, "end": 4702, - "replacementText": "\nreturn undefined;\n", + "replacementText": "return undefined;", "line": 165, "column": 8, "endLine": 165, @@ -2041,9 +2041,9 @@ "endColumn": 35 }, { - "start": 6062, - "end": 6062, - "replacementText": "\nreturn undefined;\n", + "start": 6061, + "end": 6061, + "replacementText": "\n return undefined;", "line": 246, "column": 22, "endLine": 246, @@ -2177,6 +2177,374 @@ "suggest": "", "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", "severity": "ERROR" + }, + { + "line": 267, + "column": 8, + "endLine": 267, + "endColumn": 22, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6330, + "end": 6349, + "replacementText": "a?: boolean | undefined = undefined;", + "line": 267, + "column": 8, + "endLine": 267, + "endColumn": 22 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 267, + "column": 18, + "endLine": 267, + "endColumn": 22, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 271, + "column": 16, + "endLine": 271, + "endColumn": 30, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6369, + "end": 6383, + "replacementText": "Boolean | undefined", + "line": 271, + "column": 16, + "endLine": 271, + "endColumn": 30 + }, + { + "start": 6400, + "end": 6400, + "replacementText": "\n return undefined;", + "line": 271, + "column": 16, + "endLine": 271, + "endColumn": 30 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 271, + "column": 26, + "endLine": 271, + "endColumn": 30, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 272, + "column": 9, + "endLine": 272, + "endColumn": 14, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 6394, + "end": 6399, + "replacementText": "a: number = 1", + "line": 272, + "column": 9, + "endLine": 272, + "endColumn": 14 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 272, + "column": 13, + "endLine": 272, + "endColumn": 14, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 6398, + "end": 6399, + "replacementText": "1.0", + "line": 272, + "column": 13, + "endLine": 272, + "endColumn": 14 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 275, + "column": 11, + "endLine": 275, + "endColumn": 25, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6423, + "end": 6437, + "replacementText": "boolean | undefined", + "line": 275, + "column": 11, + "endLine": 275, + "endColumn": 25 + }, + { + "start": 6449, + "end": 6449, + "replacementText": "\n return undefined;", + "line": 275, + "column": 11, + "endLine": 275, + "endColumn": 25 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 275, + "column": 21, + "endLine": 275, + "endColumn": 25, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 281, + "column": 17, + "endLine": 281, + "endColumn": 31, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6479, + "end": 6493, + "replacementText": "Boolean | undefined", + "line": 281, + "column": 17, + "endLine": 281, + "endColumn": 31 + }, + { + "start": 6518, + "end": 6518, + "replacementText": "\n return undefined;", + "line": 281, + "column": 17, + "endLine": 281, + "endColumn": 31 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 281, + "column": 27, + "endLine": 281, + "endColumn": 31, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 283, + "column": 9, + "endLine": 283, + "endColumn": 14, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 6512, + "end": 6517, + "replacementText": "a: number = 1", + "line": 283, + "column": 9, + "endLine": 283, + "endColumn": 14 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 283, + "column": 13, + "endLine": 283, + "endColumn": 14, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 6516, + "end": 6517, + "replacementText": "1.0", + "line": 283, + "column": 13, + "endLine": 283, + "endColumn": 14 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 288, + "column": 11, + "endLine": 288, + "endColumn": 25, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6551, + "end": 6565, + "replacementText": "boolean | undefined", + "line": 288, + "column": 11, + "endLine": 288, + "endColumn": 25 + }, + { + "start": 6587, + "end": 6587, + "replacementText": "\n return undefined;", + "line": 288, + "column": 11, + "endLine": 288, + "endColumn": 25 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 288, + "column": 21, + "endLine": 288, + "endColumn": 25, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 295, + "column": 8, + "endLine": 295, + "endColumn": 22, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6608, + "end": 6627, + "replacementText": "aa?: boolean | undefined = undefined;", + "line": 295, + "column": 8, + "endLine": 295, + "endColumn": 22 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 295, + "column": 18, + "endLine": 295, + "endColumn": 22, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 298, + "column": 9, + "endLine": 298, + "endColumn": 23, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6635, + "end": 6653, + "replacementText": "bb: boolean | undefined = undefined", + "line": 298, + "column": 9, + "endLine": 298, + "endColumn": 23 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 298, + "column": 19, + "endLine": 298, + "endColumn": 23, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 300, + "column": 9, + "endLine": 300, + "endColumn": 23, + "problem": "LimitedVoidType", + "autofix": [ + { + "start": 6668, + "end": 6686, + "replacementText": "cc: boolean | undefined = undefined", + "line": 300, + "column": 9, + "endLine": 300, + "endColumn": 23 + } + ], + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "severity": "ERROR" + }, + { + "line": 300, + "column": 19, + "endLine": 300, + "endColumn": 23, + "problem": "LimitedVoidType", + "suggest": "", + "rule": "Type \"void\" has no instances.(arkts-limited-void-type)", + "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..326ea381ef 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets +++ b/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets @@ -163,14 +163,10 @@ class A { } } -function f3(): undefined | Promise { -return undefined; -} // type `void` is not allowed in union type +function f3(): undefined | Promise { return undefined;} // type `void` is not allowed in union type class B { - m(): undefined | number { -return undefined; -} // type `void` is not allowed in union type + m(): undefined | number { return undefined;} // type `void` is not allowed in union type } type ss = void; @@ -253,8 +249,7 @@ function logOrReturn(flag: boolean): string | undefined { function justLogs(): string | undefined { console.log("Hello!"); - -return undefined; + return undefined; } function getStatus(code: number): string | undefined { @@ -270,4 +265,45 @@ function tryThing(): string | undefined { } catch (e) { console.error(e); } -} \ No newline at end of file +} + +class A2 { + // test + a?: boolean | undefined = undefined; +} + + +function tt(): Boolean | undefined { + const a: number = 1.0; + return undefined; +} +class A { + test(): boolean | undefined { + tt(); + return undefined; + } +} + +//aaa +function tt1(): Boolean | undefined { + //aaa + const a: number = 1.0; + return undefined; +} + +class A1 { + //aaa + test(): boolean | undefined { + //aaa + tt(); + return undefined; + } +} + +class A3 { + aa?: boolean | undefined = undefined; +} + +let bb: boolean | undefined = undefined ; +// test +let cc: boolean | undefined = undefined ; \ 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..2d29c4f4a2 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.migrate.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.migrate.json @@ -315,9 +315,9 @@ "severity": "ERROR" }, { - "line": 176, + "line": 172, "column": 6, - "endLine": 176, + "endLine": 172, "endColumn": 8, "problem": "DeclWithDuplicateName", "suggest": "", @@ -325,9 +325,9 @@ "severity": "ERROR" }, { - "line": 176, + "line": 172, "column": 11, - "endLine": 176, + "endLine": 172, "endColumn": 15, "problem": "LimitedVoidType", "suggest": "", @@ -335,9 +335,9 @@ "severity": "ERROR" }, { - "line": 177, + "line": 173, "column": 12, - "endLine": 177, + "endLine": 173, "endColumn": 14, "problem": "LimitedVoidType", "suggest": "", @@ -345,9 +345,9 @@ "severity": "ERROR" }, { - "line": 182, + "line": 178, "column": 22, - "endLine": 182, + "endLine": 178, "endColumn": 26, "problem": "LimitedVoidType", "suggest": "", @@ -355,9 +355,9 @@ "severity": "ERROR" }, { - "line": 205, + "line": 201, "column": 23, - "endLine": 205, + "endLine": 201, "endColumn": 28, "problem": "LimitedVoidType", "suggest": "", @@ -365,9 +365,9 @@ "severity": "ERROR" }, { - "line": 205, + "line": 201, "column": 31, - "endLine": 205, + "endLine": 201, "endColumn": 36, "problem": "LimitedVoidType", "suggest": "", @@ -375,9 +375,9 @@ "severity": "ERROR" }, { - "line": 208, + "line": 204, "column": 5, - "endLine": 208, + "endLine": 204, "endColumn": 7, "problem": "AnyType", "suggest": "", @@ -385,9 +385,9 @@ "severity": "ERROR" }, { - "line": 209, + "line": 205, "column": 19, - "endLine": 209, + "endLine": 205, "endColumn": 24, "problem": "LimitedVoidType", "suggest": "", @@ -395,9 +395,9 @@ "severity": "ERROR" }, { - "line": 209, + "line": 205, "column": 27, - "endLine": 209, + "endLine": 205, "endColumn": 32, "problem": "LimitedVoidType", "suggest": "", @@ -405,9 +405,9 @@ "severity": "ERROR" }, { - "line": 211, + "line": 207, "column": 6, - "endLine": 211, + "endLine": 207, "endColumn": 10, "problem": "LimitedVoidType", "suggest": "", @@ -415,9 +415,9 @@ "severity": "ERROR" }, { - "line": 232, + "line": 228, "column": 5, - "endLine": 232, + "endLine": 228, "endColumn": 7, "problem": "DeclWithDuplicateName", "suggest": "", @@ -425,9 +425,9 @@ "severity": "ERROR" }, { - "line": 261, + "line": 256, "column": 11, - "endLine": 261, + "endLine": 256, "endColumn": 15, "problem": "SwitchExpression", "suggest": "", @@ -435,9 +435,9 @@ "severity": "ERROR" }, { - "line": 219, + "line": 215, "column": 29, - "endLine": 219, + "endLine": 215, "endColumn": 47, "problem": "StrictDiagnostic", "suggest": "Not all code paths return a value.", @@ -445,9 +445,9 @@ "severity": "ERROR" }, { - "line": 260, + "line": 255, "column": 35, - "endLine": 260, + "endLine": 255, "endColumn": 53, "problem": "StrictDiagnostic", "suggest": "Not all code paths return a value.", @@ -455,9 +455,9 @@ "severity": "ERROR" }, { - "line": 267, + "line": 262, "column": 22, - "endLine": 267, + "endLine": 262, "endColumn": 40, "problem": "StrictDiagnostic", "suggest": "Not all code paths return a value.", -- Gitee