diff --git a/ets2panda/linter/src/lib/TypeScriptLinter.ts b/ets2panda/linter/src/lib/TypeScriptLinter.ts index 70ab7059c246a0cac14219687a5714b5ac12ab36..e22041d28e77c8344f1c75eea061449a2fe4934e 100644 --- a/ets2panda/linter/src/lib/TypeScriptLinter.ts +++ b/ets2panda/linter/src/lib/TypeScriptLinter.ts @@ -10167,6 +10167,10 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { if (!this.options.arkts2 || !ts.isNumericLiteral(node)) { return; } + if (TypeScriptLinter.isInEnumOrSwitchCase(node)) { + this.incrementCounters(node, FaultID.NumericSemantics); + return; + } const isInElementAccessExpression = (node: ts.NumericLiteral): boolean => { for (let parent = node.parent; parent; parent = parent.parent) { if (ts.isElementAccessExpression(parent)) { @@ -10186,6 +10190,7 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { if (isNoNeedFix) { return; } + const value = parseFloat(node.text); const nodeText = node.getText(); const hasScientificOrRadixNotation = (/[a-zA-Z]/).test(nodeText); @@ -10196,6 +10201,37 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } } + private static isInEnumOrSwitchCase(node: ts.NumericLiteral): boolean { + const text = node.getText(); + const isStrictInteger = !text.includes('.'); + + if (TypeScriptLinter.isInSwitchCase(node) && isStrictInteger) { + return true; + } + if (TypeScriptLinter.isInEnumMember(node)) { + return isStrictInteger; + } + return false; + } + + private static isInSwitchCase(node: ts.NumericLiteral): boolean { + for (let parent = node.parent; parent; parent = parent.parent) { + if (ts.isCaseClause(parent) && ts.isSwitchStatement(parent.parent.parent)) { + return true; + } + } + return false; + } + + private static isInEnumMember(node: ts.NumericLiteral): boolean { + for (let parent = node.parent; parent; parent = parent.parent) { + if (ts.isEnumMember(parent)) { + return true; + } + } + return false; + } + private checkArrayUsageWithoutBound(accessExpr: ts.ElementAccessExpression): void { if (this.shouldSkipArrayBoundCheck(accessExpr)) { return; diff --git a/ets2panda/linter/src/lib/autofixes/Autofixer.ts b/ets2panda/linter/src/lib/autofixes/Autofixer.ts index 7e3a1fc6b5b44cb157d60a1276083a149483cf3b..210b4b8d697c40b22bdffd59a99734ad246b739f 100644 --- a/ets2panda/linter/src/lib/autofixes/Autofixer.ts +++ b/ets2panda/linter/src/lib/autofixes/Autofixer.ts @@ -5128,7 +5128,7 @@ export class Autofixer { fixNumericPublicStatic(node: ts.PropertyDeclaration): Autofix[] | undefined { if (!node?.name || node.type) { - return undefined + return undefined; }; const typeNode = ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword); const modifiers = ts.getModifiers(node) || []; diff --git a/ets2panda/linter/test/main/array_index_expr_type.ets.autofix.json b/ets2panda/linter/test/main/array_index_expr_type.ets.autofix.json index a65d5f7162d0ccc39f79bdecb6b1cea66dc75252..dddcce328d32089c6804393e1ec58ac70d6e55c1 100644 --- a/ets2panda/linter/test/main/array_index_expr_type.ets.autofix.json +++ b/ets2panda/linter/test/main/array_index_expr_type.ets.autofix.json @@ -1320,17 +1320,6 @@ "endLine": 65, "endColumn": 9, "problem": "NumericSemantics", - "autofix": [ - { - "start": 1669, - "end": 1670, - "replacementText": "0.0", - "line": 65, - "column": 8, - "endLine": 65, - "endColumn": 9 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" diff --git a/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.ets b/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.ets index eb9ab9c696b2c5a13984cc2a5e64d83fb6de1b13..c9ae018af148a72ee02fb0e397158726dc9f83df 100644 --- a/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.ets +++ b/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.ets @@ -62,7 +62,7 @@ for (let i: int = 0.0; i < array2.length; i++) { let arr1:number[] = [1.0, 2.0, 3.0] enum TE{ AA = 1.12 - BB = 0.0 + BB = 0 } arr1[TE.AA as int]; arr1[TE.BB]; diff --git a/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.json b/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.json index 457bd6501c90d0816d5491b4ff4f56711124a894..c3ff6667e7acf472a5b0ee93b4bdf1c55e75d4cc 100644 --- a/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.json +++ b/ets2panda/linter/test/main/array_index_expr_type.ets.migrate.json @@ -124,6 +124,16 @@ "rule": "Enumeration members can be initialized only with compile time expressions of the same type (arkts-no-enum-mixed-types)", "severity": "ERROR" }, + { + "line": 65, + "column": 8, + "endLine": 65, + "endColumn": 9, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 68, "column": 1, diff --git a/ets2panda/linter/test/main/enum_not_support_float.ets.arkts2.json b/ets2panda/linter/test/main/enum_not_support_float.ets.arkts2.json index 95b3bdaefb784e4a83ae9e14da95ab0063b71d7a..5ccffdf509fb04e51248ea8557f3de84ab1a10e8 100644 --- a/ets2panda/linter/test/main/enum_not_support_float.ets.arkts2.json +++ b/ets2panda/linter/test/main/enum_not_support_float.ets.arkts2.json @@ -34,6 +34,16 @@ "rule": "Enumeration members can be initialized only with compile time expressions of the same type (arkts-no-enum-mixed-types)", "severity": "ERROR" }, + { + "line": 25, + "column": 7, + "endLine": 25, + "endColumn": 13, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 26, "column": 3, diff --git a/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json b/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json index 9512b29aac946435a720b46d28464e7f675028ab..4bd52bc8c856aab1c2a3fd666c6f00acd329eb59 100644 --- a/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json +++ b/ets2panda/linter/test/main/explicit_function_type.ets.autofix.json @@ -351,17 +351,6 @@ "endLine": 133, "endColumn": 11, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2849, - "end": 2850, - "replacementText": "1.0", - "line": 133, - "column": 10, - "endLine": 133, - "endColumn": 11 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" diff --git a/ets2panda/linter/test/main/explicit_function_type.ets.migrate.ets b/ets2panda/linter/test/main/explicit_function_type.ets.migrate.ets index c5ecffb429d302f3dbed81aa57b822a0e37cfc5c..d1ea1770591fbd0b1ed384dc57e2ce7c5ac89a1f 100644 --- a/ets2panda/linter/test/main/explicit_function_type.ets.migrate.ets +++ b/ets2panda/linter/test/main/explicit_function_type.ets.migrate.ets @@ -130,7 +130,7 @@ let tup38:[['arkts'|Function, 1.0|true, false], string[], Function] = [['arkts', //枚举 enum E39 { Function, - BLUE = 1.0, + BLUE = 1, YELLOW } diff --git a/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json b/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json index b4e8db486eeaedea242edff205286dd79e155a9f..c021d9b678f47fc57c5a4646887127317a25d063 100644 --- a/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json +++ b/ets2panda/linter/test/main/explicit_function_type.ets.migrate.json @@ -114,6 +114,16 @@ "rule": "This keyword cannot be used as identifiers (arkts-invalid-identifier)", "severity": "ERROR" }, + { + "line": 133, + "column": 10, + "endLine": 133, + "endColumn": 11, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 150, "column": 16, 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 c8bcf12082781c3bbe1fd5d85908724b1ec36219..019abd231eb4e6304dd3c8c7b9aa67ce06fdc523 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.autofix.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.autofix.json @@ -1731,17 +1731,6 @@ "endLine": 252, "endColumn": 11, "problem": "NumericSemantics", - "autofix": [ - { - "start": 6142, - "end": 6143, - "replacementText": "1.0", - "line": 252, - "column": 10, - "endLine": 252, - "endColumn": 11 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -1752,17 +1741,6 @@ "endLine": 253, "endColumn": 11, "problem": "NumericSemantics", - "autofix": [ - { - "start": 6167, - "end": 6168, - "replacementText": "2.0", - "line": 253, - "column": 10, - "endLine": 253, - "endColumn": 11 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" 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 62243efb6d249edbb2f93496093630c17acb1888..11ff28e13df1ddcea77150a0070ab0280e64a22f 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets +++ b/ets2panda/linter/test/main/limit_void_type.ets.migrate.ets @@ -263,8 +263,8 @@ return undefined; function getStatus(code: number): string | undefined { switch (code) { - case 1.0: return "OK"; - case 2.0: return "Warning"; + case 1: return "OK"; + case 2: return "Warning"; } return undefined; 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 cef5d595cb318cefba01dc8098f4154b713ee62b..b9ce1e55684d514c842897f4fa8f0c4af21d9f6c 100644 --- a/ets2panda/linter/test/main/limit_void_type.ets.migrate.json +++ b/ets2panda/linter/test/main/limit_void_type.ets.migrate.json @@ -1084,6 +1084,26 @@ "rule": "The switch expression type must be of type char, byte, short, int, long, string or enum (arkts-switch-expr)", "severity": "ERROR" }, + { + "line": 266, + "column": 10, + "endLine": 266, + "endColumn": 11, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 267, + "column": 10, + "endLine": 267, + "endColumn": 11, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 285, "column": 8, diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json b/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json index f3414d739de19184996435dcab30d7a8d61c643f..e9fe9943456e2a42eda2ec92015a6a1a54d647c2 100644 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets.autofix.json @@ -734,17 +734,6 @@ "endLine": 92, "endColumn": 10, "problem": "NumericSemantics", - "autofix": [ - { - "start": 1996, - "end": 1997, - "replacementText": "1.0", - "line": 92, - "column": 9, - "endLine": 92, - "endColumn": 10 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -776,17 +765,6 @@ "endLine": 97, "endColumn": 11, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2040, - "end": 2041, - "replacementText": "1.0", - "line": 97, - "column": 10, - "endLine": 97, - "endColumn": 11 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -818,17 +796,6 @@ "endLine": 98, "endColumn": 14, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2055, - "end": 2056, - "replacementText": "1.0", - "line": 98, - "column": 13, - "endLine": 98, - "endColumn": 14 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -869,17 +836,6 @@ "endLine": 102, "endColumn": 11, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2095, - "end": 2096, - "replacementText": "1.0", - "line": 102, - "column": 10, - "endLine": 102, - "endColumn": 11 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -920,17 +876,6 @@ "endLine": 103, "endColumn": 14, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2110, - "end": 2111, - "replacementText": "1.0", - "line": 103, - "column": 13, - "endLine": 103, - "endColumn": 14 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -1033,17 +978,6 @@ "endLine": 109, "endColumn": 9, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2214, - "end": 2215, - "replacementText": "1.0", - "line": 109, - "column": 8, - "endLine": 109, - "endColumn": 9 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -1075,17 +1009,6 @@ "endLine": 112, "endColumn": 10, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2252, - "end": 2253, - "replacementText": "1.0", - "line": 112, - "column": 9, - "endLine": 112, - "endColumn": 10 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets index 6fb5cb3e0f5cb74294ebcbd803bacdd0840a12a4..87b32a38ae5e7a7edb9d07da8f288a46cb4085fd 100644 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.ets @@ -98,27 +98,27 @@ LiteralAsPropertyNameEnum.PrivateTwo; { const enum Direction { - __empty = 1.0, + __empty = 1, } } const enum Direction16 { - ___x5c = 1.0, - __x5c = 1.0, + ___x5c = 1, + __x5c = 1, } const enum Direction17 { - ___x5c = 1.0, - __x5c = 1.0, + ___x5c = 1, + __x5c = 1, } let case17: number = Direction17.___x5c let case172: number = Direction17.__x5c const enum Direction11 { -__x21x21 = 1.0, +__x21x21 = 1, } const enum Direction23 { -aaa = 1.0, +aaa = 1, } // ArkUI @Component diff --git a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json index a180c185731eed0d9719daee26a9ec1c64f65992..47f600fb5ea232db66d7ee8796f6890c49e66ae0 100644 --- a/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json +++ b/ets2panda/linter/test/main/literals_as_prop_names.ets.migrate.json @@ -94,6 +94,76 @@ "rule": "Enum cannot get member name by member value (arkts-enum-no-props-by-index)", "severity": "ERROR" }, + { + "line": 101, + "column": 14, + "endLine": 101, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 106, + "column": 12, + "endLine": 106, + "endColumn": 13, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 107, + "column": 11, + "endLine": 107, + "endColumn": 12, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 111, + "column": 12, + "endLine": 111, + "endColumn": 13, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 112, + "column": 11, + "endLine": 112, + "endColumn": 12, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 118, + "column": 12, + "endLine": 118, + "endColumn": 13, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 121, + "column": 7, + "endLine": 121, + "endColumn": 8, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 144, "column": 37, diff --git a/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json b/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json index 7c1870a30d5b0c3597686fc55bf7a7486ddd5ff9..72ddcbaa863effb8817cf4602190402e159164a8 100644 --- a/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json +++ b/ets2panda/linter/test/main/numeric_semantics.ets.autofix.json @@ -1069,17 +1069,6 @@ "endLine": 112, "endColumn": 8, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2446, - "end": 2447, - "replacementText": "1.0", - "line": 112, - "column": 7, - "endLine": 112, - "endColumn": 8 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -1090,17 +1079,6 @@ "endLine": 113, "endColumn": 8, "problem": "NumericSemantics", - "autofix": [ - { - "start": 2468, - "end": 2469, - "replacementText": "2.0", - "line": 113, - "column": 7, - "endLine": 113, - "endColumn": 8 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2208,17 +2186,6 @@ "endLine": 212, "endColumn": 14, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5206, - "end": 5207, - "replacementText": "0.0", - "line": 212, - "column": 13, - "endLine": 212, - "endColumn": 14 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2229,17 +2196,6 @@ "endLine": 213, "endColumn": 18, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5225, - "end": 5227, - "replacementText": "-1.0", - "line": 213, - "column": 17, - "endLine": 213, - "endColumn": 18 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2250,17 +2206,6 @@ "endLine": 214, "endColumn": 18, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5246, - "end": 5247, - "replacementText": "1.0", - "line": 214, - "column": 17, - "endLine": 214, - "endColumn": 18 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2271,17 +2216,6 @@ "endLine": 215, "endColumn": 18, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5266, - "end": 5267, - "replacementText": "2.0", - "line": 215, - "column": 17, - "endLine": 215, - "endColumn": 18 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2292,17 +2226,6 @@ "endLine": 216, "endColumn": 20, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5288, - "end": 5289, - "replacementText": "3.0", - "line": 216, - "column": 19, - "endLine": 216, - "endColumn": 20 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2313,17 +2236,6 @@ "endLine": 217, "endColumn": 19, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5309, - "end": 5310, - "replacementText": "4.0", - "line": 217, - "column": 18, - "endLine": 217, - "endColumn": 19 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2334,17 +2246,6 @@ "endLine": 218, "endColumn": 21, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5332, - "end": 5333, - "replacementText": "5.0", - "line": 218, - "column": 20, - "endLine": 218, - "endColumn": 21 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2355,17 +2256,6 @@ "endLine": 222, "endColumn": 11, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5380, - "end": 5381, - "replacementText": "0.0", - "line": 222, - "column": 10, - "endLine": 222, - "endColumn": 11 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2376,17 +2266,6 @@ "endLine": 223, "endColumn": 12, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5394, - "end": 5395, - "replacementText": "1.0", - "line": 223, - "column": 11, - "endLine": 223, - "endColumn": 12 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2397,17 +2276,6 @@ "endLine": 224, "endColumn": 15, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5411, - "end": 5412, - "replacementText": "2.0", - "line": 224, - "column": 14, - "endLine": 224, - "endColumn": 15 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2418,17 +2286,6 @@ "endLine": 225, "endColumn": 17, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5430, - "end": 5431, - "replacementText": "3.0", - "line": 225, - "column": 16, - "endLine": 225, - "endColumn": 17 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -2439,17 +2296,6 @@ "endLine": 226, "endColumn": 15, "problem": "NumericSemantics", - "autofix": [ - { - "start": 5447, - "end": 5448, - "replacementText": "4.0", - "line": 226, - "column": 14, - "endLine": 226, - "endColumn": 15 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" diff --git a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets index 80c650b284f56fa61f6c586fad2815b5579f019a..43753aa4987f263c914c9445d1ddf7660eb70fb6 100644 --- a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets +++ b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.ets @@ -119,8 +119,8 @@ let g: number = an_array[] const a: number = 1.0 enum Test { - A = 1.0, // 显式赋值为 1 - B = 2.0 // 显式赋值为 2 + A = 1, // 显式赋值为 1 + B = 2 // 显式赋值为 2 } const test: number = Test.A; @@ -222,21 +222,21 @@ let a:number = 0.000; const b:number = 0.000; export enum WalletStageValue { - DEFAULT = 0.0, - SWIPE_INIT = -1.0, - SELECT_CARD = 1.0, - SWIPE_DOING = 2.0, - SWIPE_SUCCEED = 3.0, - SWIPE_FAILED = 4.0, - SWIPE_FINISHED = 5.0, + DEFAULT = 0, + SWIPE_INIT = -1, + SELECT_CARD = 1, + SWIPE_DOING = 2, + SWIPE_SUCCEED = 3, + SWIPE_FAILED = 4, + SWIPE_FINISHED = 5, } export enum AnimationStage { - INIT = 0.0, - ENTER = 1.0, - ROTATING = 2.0, - EXIT_START = 3.0, - EXIT_END = 4.0, + INIT = 0, + ENTER = 1, + ROTATING = 2, + EXIT_START = 3, + EXIT_END = 4, } class C { diff --git a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json index 29adb27a5c73651c3f5daef9d86c8c2395f63f14..09385a376c0a71f5f8ab507066c36cbb0f10a3f5 100644 --- a/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json +++ b/ets2panda/linter/test/main/numeric_semantics.ets.migrate.json @@ -34,6 +34,26 @@ "rule": "The index expression must be of a numeric type (arkts-array-index-expr-type)", "severity": "ERROR" }, + { + "line": 122, + "column": 7, + "endLine": 122, + "endColumn": 8, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 123, + "column": 7, + "endLine": 123, + "endColumn": 8, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 156, "column": 6, @@ -123,6 +143,126 @@ "suggest": "", "rule": "\"new\" expression with dynamic constructor type is not supported (arkts-no-dynamic-ctor-call)", "severity": "ERROR" + }, + { + "line": 225, + "column": 13, + "endLine": 225, + "endColumn": 14, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 226, + "column": 17, + "endLine": 226, + "endColumn": 18, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 227, + "column": 17, + "endLine": 227, + "endColumn": 18, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 228, + "column": 17, + "endLine": 228, + "endColumn": 18, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 229, + "column": 19, + "endLine": 229, + "endColumn": 20, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 230, + "column": 18, + "endLine": 230, + "endColumn": 19, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 231, + "column": 20, + "endLine": 231, + "endColumn": 21, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 235, + "column": 10, + "endLine": 235, + "endColumn": 11, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 236, + "column": 11, + "endLine": 236, + "endColumn": 12, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 237, + "column": 14, + "endLine": 237, + "endColumn": 15, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 238, + "column": 16, + "endLine": 238, + "endColumn": 17, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 239, + "column": 14, + "endLine": 239, + "endColumn": 15, + "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/numeric_semantics2.ets.autofix.json b/ets2panda/linter/test/main/numeric_semantics2.ets.autofix.json index 0cee44032a3206ca97c463973bf98fd30e6624fe..0ad922ea3ca235bf3ba6d0aa33731c4311cbf8cd 100644 --- a/ets2panda/linter/test/main/numeric_semantics2.ets.autofix.json +++ b/ets2panda/linter/test/main/numeric_semantics2.ets.autofix.json @@ -445,17 +445,6 @@ "endLine": 62, "endColumn": 14, "problem": "NumericSemantics", - "autofix": [ - { - "start": 1792, - "end": 1793, - "replacementText": "1.0", - "line": 62, - "column": 13, - "endLine": 62, - "endColumn": 14 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" @@ -466,17 +455,6 @@ "endLine": 63, "endColumn": 14, "problem": "NumericSemantics", - "autofix": [ - { - "start": 1808, - "end": 1809, - "replacementText": "2.0", - "line": 63, - "column": 13, - "endLine": 63, - "endColumn": 14 - } - ], "suggest": "", "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", "severity": "ERROR" diff --git a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets index 06a1c158599f2e576c0ba151127a01324bb1f7ce..a687cd7007513949ded25c8f0a3c23b3c6cab2f5 100644 --- a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets +++ b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.ets @@ -59,8 +59,8 @@ namespace NoNumericSemantics { let h: number = arr[12. as int] enum E { - A = 1.0, - B = 2.0 + A = 1, + B = 2 } } diff --git a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json index 57a7300d81f95c785f998fb774898c73ede2b227..56d45c6a7fb79231a46976772bcbfcd1ec89e1f0 100644 --- a/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json +++ b/ets2panda/linter/test/main/numeric_semantics2.ets.migrate.json @@ -94,6 +94,26 @@ "rule": "Array bound not checked. (arkts-runtime-array-check)", "severity": "ERROR" }, + { + "line": 62, + "column": 13, + "endLine": 62, + "endColumn": 14, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, + { + "line": 63, + "column": 13, + "endLine": 63, + "endColumn": 14, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 72, "column": 5, diff --git a/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.ets b/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.ets index 62220b36c26b28d3a4ff0ffd93a86181e94d951e..21a7b9b5043447f2f21313ab1789c6a71b2ee400 100644 --- a/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.ets +++ b/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.ets @@ -161,7 +161,7 @@ function foo(i:number):number{ arr1[(24)] = 23.0; arr1[+24] = 23.0; enum TE{ - AA = 12.0 + AA = 12 } arr1[TE.AA] = 12.0; diff --git a/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.json b/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.json index 7862ff0a076ea35016ba1529bd90eccef008a044..2d7c3772e3d915defae8eceda788bd4ce483a8b9 100644 --- a/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.json +++ b/ets2panda/linter/test/main/runtime_array_bound.ets.migrate.json @@ -164,6 +164,16 @@ "rule": "Array bound not checked. (arkts-runtime-array-check)", "severity": "ERROR" }, + { + "line": 164, + "column": 8, + "endLine": 164, + "endColumn": 10, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" + }, { "line": 166, "column": 1,