From 604760ccfc9801d3acf245aa47ddf852eadf0e7a Mon Sep 17 00:00:00 2001 From: ZhongNing Date: Thu, 29 May 2025 15:22:13 +0800 Subject: [PATCH] fix issue for arkts-condition-judgment Issue: https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/ICB9DD Test scenarios: arkts-condition-judgment Signed-off-by: ZhongNing --- ets2panda/linter/src/lib/CookBookMsg.ts | 10 +- ets2panda/linter/src/lib/utils/TsUtils.ts | 7 + .../test/interop/interop_import_js_rules.ets | 7 +- .../interop_import_js_rules.ets.arkts2.json | 62 ++++- .../interop_import_js_rules.ets.autofix.json | 242 +++++++++++++----- .../interop/interop_import_js_rules.ets.json | 174 +++++++------ .../interop/interop_import_js_rules_js.js | 6 + ...arkts-array-type-immutable.ets.arkts2.json | 10 +- ...imitive-type-normalization.ets.arkts2.json | 16 +- .../main/no_enum_prop_as_type.ets.arkts2.json | 4 +- .../test/main/no_sparse_array.ets.arkts2.json | 4 +- .../main/no_tuples_arrays.ets.arkts2.json | 18 +- .../property_access_by_index.ets.arkts2.json | 2 +- .../test/main/swicth_expr.ets.arkts2.json | 2 +- 14 files changed, 388 insertions(+), 176 deletions(-) diff --git a/ets2panda/linter/src/lib/CookBookMsg.ts b/ets2panda/linter/src/lib/CookBookMsg.ts index d44eca5932..5d2bf1d742 100644 --- a/ets2panda/linter/src/lib/CookBookMsg.ts +++ b/ets2panda/linter/src/lib/CookBookMsg.ts @@ -277,7 +277,7 @@ cookBookTag[267] = 'Direct usage of interop JS functions is not supported (arkts cookBookTag[268] = 'Direct usage of interop JS objects is not supported (arkts-interop-js2s-condition-judgment)'; cookBookTag[269] = 'Direct usage of interop JS functions is not supported (arkts-interop-js2s-js-expand-static-instance)'; -cookBookTag[270] = 'Trying to catch JS errors is not permitted (arkts-interop-js2s-js-exception)'; +cookBookTag[270] = 'AekTS1.2 cannot catch a nonError instance thrown from JS code (arkts-interop-js2s-js-exception)'; cookBookTag[271] = 'No support for static dynamic import (arkts-interop-d2s-dynamic-import)'; cookBookTag[272] = 'No support for static dynamic import (arkts-interop-ts2s-dynamic-import-ts)'; cookBookTag[273] = 'No support for static dynamic import (arkts-interop-js2s-dynamic-import-js)'; @@ -360,11 +360,11 @@ cookBookTag[357] = 'Worker are not supported(arkts-no-need-stdlib-worker)'; cookBookTag[358] = 'Using "Object.getOwnPropertyNames" is not allowed in this API (arkts-builtin-object-getOwnPropertyNames))'; cookBookTag[359] = '"@LocalBuilder" Decorator is not supported (arkui-no-localbuilder-decorator)'; -cookBookTag[370] = 'Sparse array are not supported (arkts-no-sparse-array)'; -cookBookTag[371] = 'Enum prop as type are not supported (arkts-no-enum-prop-as-type)'; +cookBookTag[370] = 'Sparse array is not supported in ArkTS1.2 (arkts-no-sparse-array)'; +cookBookTag[371] = 'Enum elements cannot be types in ArkTS1.2 (arkts-no-enum-prop-as-type)'; cookBookTag[372] = 'Smart type differences (arkts-no-ts-like-smart-type)'; -cookBookTag[373] = 'Array types follow the principle of invariance (arkts-array-type-immutable)'; -cookBookTag[374] = 'ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)'; +cookBookTag[373] = 'Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)'; +cookBookTag[374] = 'Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)'; cookBookTag[375] = 'TS catch type are not supported (arkts-no-ts-like-catch-type)'; cookBookTag[376] = 'Not supporting comparison between number type and bigint type (arkts-numeric-bigint-compare)'; cookBookTag[377] = diff --git a/ets2panda/linter/src/lib/utils/TsUtils.ts b/ets2panda/linter/src/lib/utils/TsUtils.ts index d7e87a00e2..44296b49a4 100644 --- a/ets2panda/linter/src/lib/utils/TsUtils.ts +++ b/ets2panda/linter/src/lib/utils/TsUtils.ts @@ -3644,6 +3644,13 @@ export class TsUtils { let current: ts.Node | undefined = node; while (current) { if (ts.isIfStatement(current)) { + if ( + ts.isBinaryExpression(node.parent) && + node.parent.operatorToken.kind === ts.SyntaxKind.EqualsEqualsEqualsToken + ) { + return false; + } + return true; } current = current.parent; diff --git a/ets2panda/linter/test/interop/interop_import_js_rules.ets b/ets2panda/linter/test/interop/interop_import_js_rules.ets index 3b88109fc2..2fd4513f6e 100644 --- a/ets2panda/linter/test/interop/interop_import_js_rules.ets +++ b/ets2panda/linter/test/interop/interop_import_js_rules.ets @@ -27,7 +27,7 @@ import { ff4 } from "./interop_import_js_rules_js" import { handle } from "./interop_import_js_rules_js" import { expand } from "./interop_import_js_rules_js" - +import { orange } from "./interop_import_js_rules_js" if (foo.isGood) {} if (ff1.f1 > 18) { @@ -65,3 +65,8 @@ handle(lambda) class X{a = 1; b= 2; c= 3} expand(new X()) // ERROR expand-static + +let flag = false; +if (orange.isVegetable1 === 123) { +flag = true +} diff --git a/ets2panda/linter/test/interop/interop_import_js_rules.ets.arkts2.json b/ets2panda/linter/test/interop/interop_import_js_rules.ets.arkts2.json index eb568c3a7c..473623dc44 100644 --- a/ets2panda/linter/test/interop/interop_import_js_rules.ets.arkts2.json +++ b/ets2panda/linter/test/interop/interop_import_js_rules.ets.arkts2.json @@ -174,6 +174,26 @@ "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, + { + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 54, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 54, + "problem": "InterOpImportJs", + "suggest": "", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", + "severity": "ERROR" + }, { "line": 31, "column": 5, @@ -261,7 +281,7 @@ "endColumn": 8, "problem": "InteropJSFunctionInvoke", "suggest": "", - "rule": "Trying to catch JS errors is not permitted (arkts-interop-js2s-js-exception)", + "rule": "AekTS1.2 cannot catch a nonError instance thrown from JS code (arkts-interop-js2s-js-exception)", "severity": "ERROR" }, { @@ -533,6 +553,46 @@ "suggest": "", "rule": "ArkTS directly call JS functions or parameters is not supported (arkts-interop-js2s-call-js-func)", "severity": "ERROR" + }, + { + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 32, + "problem": "InteropEqualityJudgment", + "suggest": "", + "rule": "\"JS\" objects can't be used directly as operands of the equality operators (arkts-interop-js2s-equality-judgment)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 24, + "problem": "InteropObjectProperty", + "suggest": "", + "rule": "Properties of interop objects can't be accessed directly (arkts-interop-js2s-access-js-prop)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 24, + "problem": "InteropJsObjectUsage", + "suggest": "", + "rule": "Direct usage of interop JS objects is not supported (arkts-interop-js-object-usage)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 29, + "endLine": 70, + "endColumn": 32, + "problem": "NumericSemantics", + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" } ] } diff --git a/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json b/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json index 5c76ef828f..d87f8051ed 100644 --- a/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json +++ b/ets2panda/linter/test/interop/interop_import_js_rules.ets.autofix.json @@ -41,8 +41,8 @@ "endColumn": 51 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_1 = ESValue.load('./interop_import_js_rules_js');\nlet foo = GeneratedImportVar_1.getPropertyByName('foo');\n", "line": 17, "column": 1, @@ -81,8 +81,8 @@ "endColumn": 56 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_2 = ESValue.load('./interop_import_js_rules_js');\nlet ff1 = GeneratedImportVar_2.getPropertyByName('ff1');\nlet ff2 = GeneratedImportVar_2.getPropertyByName('ff2');\n", "line": 18, "column": 1, @@ -121,8 +121,8 @@ "endColumn": 49 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_3 = ESValue.load('./interop_import_js_rules_js');\nlet A = GeneratedImportVar_3.getPropertyByName('A');\n", "line": 20, "column": 1, @@ -161,8 +161,8 @@ "endColumn": 49 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_4 = ESValue.load('./interop_import_js_rules_js');\nlet C = GeneratedImportVar_4.getPropertyByName('C');\n", "line": 21, "column": 1, @@ -201,8 +201,8 @@ "endColumn": 51 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_5 = ESValue.load('./interop_import_js_rules_js');\nlet ff3 = GeneratedImportVar_5.getPropertyByName('ff3');\n", "line": 23, "column": 1, @@ -241,8 +241,8 @@ "endColumn": 51 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_6 = ESValue.load('./interop_import_js_rules_js');\nlet ff4 = GeneratedImportVar_6.getPropertyByName('ff4');\n", "line": 25, "column": 1, @@ -281,8 +281,8 @@ "endColumn": 54 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_7 = ESValue.load('./interop_import_js_rules_js');\nlet handle = GeneratedImportVar_7.getPropertyByName('handle');\n", "line": 27, "column": 1, @@ -321,8 +321,8 @@ "endColumn": 54 }, { - "start": 1038, - "end": 1038, + "start": 1092, + "end": 1092, "replacementText": "let GeneratedImportVar_8 = ESValue.load('./interop_import_js_rules_js');\nlet expand = GeneratedImportVar_8.getPropertyByName('expand');\n", "line": 29, "column": 1, @@ -334,6 +334,46 @@ "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", "severity": "ERROR" }, + { + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 54, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 54, + "problem": "InterOpImportJs", + "autofix": [ + { + "start": 1039, + "end": 1092, + "replacementText": "", + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 54 + }, + { + "start": 1092, + "end": 1092, + "replacementText": "let GeneratedImportVar_9 = ESValue.load('./interop_import_js_rules_js');\nlet orange = GeneratedImportVar_9.getPropertyByName('orange');\n", + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 54 + } + ], + "suggest": "", + "rule": "Importing directly from \"JS\" module is not supported (arkts-interop-js2s-import-js)", + "severity": "ERROR" + }, { "line": 31, "column": 5, @@ -342,8 +382,8 @@ "problem": "InteropObjectProperty", "autofix": [ { - "start": 1044, - "end": 1054, + "start": 1097, + "end": 1107, "replacementText": "foo.getPropertyByName(\"isGood\")", "line": 31, "column": 5, @@ -364,8 +404,8 @@ "autofix": [ { "replacementText": "foo.getPropertyByName('isGood').toBoolean()", - "start": 1044, - "end": 1054, + "start": 1097, + "end": 1107, "line": 31, "column": 5, "endLine": 31, @@ -394,8 +434,8 @@ "problem": "InteropObjectProperty", "autofix": [ { - "start": 1064, - "end": 1070, + "start": 1117, + "end": 1123, "replacementText": "ff1.getPropertyByName(\"f1\")", "line": 33, "column": 5, @@ -416,8 +456,8 @@ "autofix": [ { "replacementText": "ff1.getPropertyByName('f1').toNumber()", - "start": 1064, - "end": 1070, + "start": 1117, + "end": 1123, "line": 33, "column": 5, "endLine": 33, @@ -436,8 +476,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1073, - "end": 1075, + "start": 1126, + "end": 1128, "replacementText": "18.0", "line": 33, "column": 14, @@ -476,7 +516,7 @@ "endColumn": 8, "problem": "InteropJSFunctionInvoke", "suggest": "", - "rule": "Trying to catch JS errors is not permitted (arkts-interop-js2s-js-exception)", + "rule": "AekTS1.2 cannot catch a nonError instance thrown from JS code (arkts-interop-js2s-js-exception)", "severity": "ERROR" }, { @@ -517,8 +557,8 @@ "problem": "InteropObjectProperty", "autofix": [ { - "start": 1290, - "end": 1297, + "start": 1343, + "end": 1350, "replacementText": "ff3.getPropertyByName(\"arr\")", "line": 49, "column": 11, @@ -539,8 +579,8 @@ "autofix": [ { "replacementText": "ff3.getPropertyByName('arr')", - "start": 1290, - "end": 1297, + "start": 1343, + "end": 1350, "line": 49, "column": 11, "endLine": 49, @@ -560,8 +600,8 @@ "autofix": [ { "replacementText": "arr.getPropertyByName('length').toNumber()", - "start": 1308, - "end": 1328, + "start": 1361, + "end": 1381, "line": 50, "column": 11, "endLine": 50, @@ -590,8 +630,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1338, - "end": 1343, + "start": 1391, + "end": 1396, "replacementText": "i: number = 0", "line": 51, "column": 10, @@ -611,8 +651,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1342, - "end": 1343, + "start": 1395, + "end": 1396, "replacementText": "0.0", "line": 51, "column": 14, @@ -643,8 +683,8 @@ "autofix": [ { "replacementText": "arr.getPropertyByIndex(i).toNumber()", - "start": 1371, - "end": 1377, + "start": 1424, + "end": 1430, "line": 52, "column": 11, "endLine": 52, @@ -663,8 +703,8 @@ "problem": "InterOpImportJsIndex", "autofix": [ { - "start": 1371, - "end": 1377, + "start": 1424, + "end": 1430, "replacementText": "arr.getPropertyByIndex(i)", "line": 52, "column": 11, @@ -685,8 +725,8 @@ "autofix": [ { "replacementText": "arr.setPropertyByIndex(i, ESValue.wrap(0))", - "start": 1380, - "end": 1390, + "start": 1433, + "end": 1443, "line": 53, "column": 3, "endLine": 53, @@ -705,8 +745,8 @@ "problem": "InterOpImportJsIndex", "autofix": [ { - "start": 1380, - "end": 1390, + "start": 1433, + "end": 1443, "replacementText": "arr.setPropertyByIndex(i, ESValue.wrap(0))", "line": 53, "column": 3, @@ -726,8 +766,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1389, - "end": 1390, + "start": 1442, + "end": 1443, "replacementText": "0.0", "line": 53, "column": 12, @@ -787,8 +827,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1528, - "end": 1534, + "start": 1581, + "end": 1587, "replacementText": "a: number = 1;", "line": 66, "column": 9, @@ -808,8 +848,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1532, - "end": 1533, + "start": 1585, + "end": 1586, "replacementText": "1.0", "line": 66, "column": 13, @@ -829,8 +869,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1535, - "end": 1540, + "start": 1588, + "end": 1593, "replacementText": "b: number = 2;", "line": 66, "column": 16, @@ -850,8 +890,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1538, - "end": 1539, + "start": 1591, + "end": 1592, "replacementText": "2.0", "line": 66, "column": 19, @@ -871,8 +911,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1541, - "end": 1545, + "start": 1594, + "end": 1598, "replacementText": "c: number = 3;", "line": 66, "column": 22, @@ -892,8 +932,8 @@ "problem": "NumericSemantics", "autofix": [ { - "start": 1544, - "end": 1545, + "start": 1597, + "end": 1598, "replacementText": "3.0", "line": 66, "column": 25, @@ -924,6 +964,90 @@ "suggest": "", "rule": "ArkTS directly call JS functions or parameters is not supported (arkts-interop-js2s-call-js-func)", "severity": "ERROR" + }, + { + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 32, + "problem": "InteropEqualityJudgment", + "autofix": [ + { + "start": 1662, + "end": 1689, + "replacementText": "orange.isVegetable1.areStrictlyEqual(123)", + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 32 + } + ], + "suggest": "", + "rule": "\"JS\" objects can't be used directly as operands of the equality operators (arkts-interop-js2s-equality-judgment)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 24, + "problem": "InteropObjectProperty", + "autofix": [ + { + "start": 1662, + "end": 1681, + "replacementText": "orange.getPropertyByName(\"isVegetable1\")", + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 24 + } + ], + "suggest": "", + "rule": "Properties of interop objects can't be accessed directly (arkts-interop-js2s-access-js-prop)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 24, + "problem": "InteropJsObjectUsage", + "autofix": [ + { + "replacementText": "orange.getPropertyByName('isVegetable1').toNumber()", + "start": 1662, + "end": 1681, + "line": 70, + "column": 5, + "endLine": 70, + "endColumn": 24 + } + ], + "suggest": "", + "rule": "Direct usage of interop JS objects is not supported (arkts-interop-js-object-usage)", + "severity": "ERROR" + }, + { + "line": 70, + "column": 29, + "endLine": 70, + "endColumn": 32, + "problem": "NumericSemantics", + "autofix": [ + { + "start": 1686, + "end": 1689, + "replacementText": "123.0", + "line": 70, + "column": 29, + "endLine": 70, + "endColumn": 32 + } + ], + "suggest": "", + "rule": "Numeric semantics is different for integer values (arkts-numeric-semantic)", + "severity": "ERROR" } ] } diff --git a/ets2panda/linter/test/interop/interop_import_js_rules.ets.json b/ets2panda/linter/test/interop/interop_import_js_rules.ets.json index a3db4edec8..097539546e 100644 --- a/ets2panda/linter/test/interop/interop_import_js_rules.ets.json +++ b/ets2panda/linter/test/interop/interop_import_js_rules.ets.json @@ -13,86 +13,96 @@ "See the License for the specific language governing permissions and", "limitations under the License." ], - "result": [ - { - "line": 17, - "column": 1, - "endLine": 17, - "endColumn": 51, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - }, - { - "line": 18, - "column": 1, - "endLine": 18, - "endColumn": 56, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - }, - { - "line": 20, - "column": 1, - "endLine": 20, - "endColumn": 49, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - }, - { - "line": 21, - "column": 1, - "endLine": 21, - "endColumn": 49, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - }, - { - "line": 23, - "column": 1, - "endLine": 23, - "endColumn": 51, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - }, - { - "line": 25, - "column": 1, - "endLine": 25, - "endColumn": 51, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - }, - { - "line": 27, - "column": 1, - "endLine": 27, - "endColumn": 54, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - }, - { - "line": 29, - "column": 1, - "endLine": 29, - "endColumn": 54, - "problem": "ImportAfterStatement", - "suggest": "", - "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", - "severity": "ERROR" - } - ] + "result": [ + { + "line": 17, + "column": 1, + "endLine": 17, + "endColumn": 51, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 18, + "column": 1, + "endLine": 18, + "endColumn": 56, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 20, + "column": 1, + "endLine": 20, + "endColumn": 49, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 21, + "column": 1, + "endLine": 21, + "endColumn": 49, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 23, + "column": 1, + "endLine": 23, + "endColumn": 51, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 25, + "column": 1, + "endLine": 25, + "endColumn": 51, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 27, + "column": 1, + "endLine": 27, + "endColumn": 54, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 29, + "column": 1, + "endLine": 29, + "endColumn": 54, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + }, + { + "line": 30, + "column": 1, + "endLine": 30, + "endColumn": 54, + "problem": "ImportAfterStatement", + "suggest": "", + "rule": "\"import\" statements after other statements are not allowed (arkts-no-misplaced-imports)", + "severity": "ERROR" + } + ] } diff --git a/ets2panda/linter/test/interop/interop_import_js_rules_js.js b/ets2panda/linter/test/interop/interop_import_js_rules_js.js index b22008ced0..cef219665e 100644 --- a/ets2panda/linter/test/interop/interop_import_js_rules_js.js +++ b/ets2panda/linter/test/interop/interop_import_js_rules_js.js @@ -35,3 +35,9 @@ export function expand(obj) { let x = obj; let {a, b, c} = obj; } + +export let orange = { + isFruit: true, + isVegetable: false, + isVegetable1: 123 +} diff --git a/ets2panda/linter/test/main/arkts-array-type-immutable.ets.arkts2.json b/ets2panda/linter/test/main/arkts-array-type-immutable.ets.arkts2.json index 15d79307bb..50fb25efbd 100644 --- a/ets2panda/linter/test/main/arkts-array-type-immutable.ets.arkts2.json +++ b/ets2panda/linter/test/main/arkts-array-type-immutable.ets.arkts2.json @@ -31,7 +31,7 @@ "endColumn": 31, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -51,7 +51,7 @@ "endColumn": 7, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -71,7 +71,7 @@ "endColumn": 9, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -81,7 +81,7 @@ "endColumn": 54, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -121,7 +121,7 @@ "endColumn": 8, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/main/arkts-primitive-type-normalization.ets.arkts2.json b/ets2panda/linter/test/main/arkts-primitive-type-normalization.ets.arkts2.json index 72037700d5..fc8bfe9fd8 100644 --- a/ets2panda/linter/test/main/arkts-primitive-type-normalization.ets.arkts2.json +++ b/ets2panda/linter/test/main/arkts-primitive-type-normalization.ets.arkts2.json @@ -21,7 +21,7 @@ "endColumn": 21, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { @@ -41,7 +41,7 @@ "endColumn": 14, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { @@ -61,7 +61,7 @@ "endColumn": 31, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { @@ -81,7 +81,7 @@ "endColumn": 23, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { @@ -91,7 +91,7 @@ "endColumn": 26, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { @@ -101,7 +101,7 @@ "endColumn": 12, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { @@ -111,7 +111,7 @@ "endColumn": 11, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { @@ -121,7 +121,7 @@ "endColumn": 11, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/main/no_enum_prop_as_type.ets.arkts2.json b/ets2panda/linter/test/main/no_enum_prop_as_type.ets.arkts2.json index 5974b15145..be0d1b9493 100644 --- a/ets2panda/linter/test/main/no_enum_prop_as_type.ets.arkts2.json +++ b/ets2panda/linter/test/main/no_enum_prop_as_type.ets.arkts2.json @@ -21,7 +21,7 @@ "endColumn": 20, "problem": "NoEnumPropAsType", "suggest": "", - "rule": "Enum prop as type are not supported (arkts-no-enum-prop-as-type)", + "rule": "Enum elements cannot be types in ArkTS1.2 (arkts-no-enum-prop-as-type)", "severity": "ERROR" }, { @@ -31,7 +31,7 @@ "endColumn": 11, "problem": "NoEnumPropAsType", "suggest": "", - "rule": "Enum prop as type are not supported (arkts-no-enum-prop-as-type)", + "rule": "Enum elements cannot be types in ArkTS1.2 (arkts-no-enum-prop-as-type)", "severity": "ERROR" } ] diff --git a/ets2panda/linter/test/main/no_sparse_array.ets.arkts2.json b/ets2panda/linter/test/main/no_sparse_array.ets.arkts2.json index f34010f03c..2a8c937e9f 100644 --- a/ets2panda/linter/test/main/no_sparse_array.ets.arkts2.json +++ b/ets2panda/linter/test/main/no_sparse_array.ets.arkts2.json @@ -21,7 +21,7 @@ "endColumn": 12, "problem": "NosparseArray", "suggest": "", - "rule": "Sparse array are not supported (arkts-no-sparse-array)", + "rule": "Sparse array is not supported in ArkTS1.2 (arkts-no-sparse-array)", "severity": "ERROR" }, { @@ -31,7 +31,7 @@ "endColumn": 14, "problem": "NosparseArray", "suggest": "", - "rule": "Sparse array are not supported (arkts-no-sparse-array)", + "rule": "Sparse array is not supported in ArkTS1.2 (arkts-no-sparse-array)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/main/no_tuples_arrays.ets.arkts2.json b/ets2panda/linter/test/main/no_tuples_arrays.ets.arkts2.json index f0089549bc..f4753e594f 100644 --- a/ets2panda/linter/test/main/no_tuples_arrays.ets.arkts2.json +++ b/ets2panda/linter/test/main/no_tuples_arrays.ets.arkts2.json @@ -71,7 +71,7 @@ "endColumn": 59, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -121,7 +121,7 @@ "endColumn": 62, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -161,7 +161,7 @@ "endColumn": 42, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -181,7 +181,7 @@ "endColumn": 53, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -201,7 +201,7 @@ "endColumn": 53, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -221,7 +221,7 @@ "endColumn": 53, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -241,7 +241,7 @@ "endColumn": 43, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -261,7 +261,7 @@ "endColumn": 48, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { @@ -281,7 +281,7 @@ "endColumn": 50, "problem": "ArrayTypeImmutable", "suggest": "", - "rule": "Array types follow the principle of invariance (arkts-array-type-immutable)", + "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json b/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json index 2505d44ef8..8bdc1c6d5d 100644 --- a/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json +++ b/ets2panda/linter/test/main/property_access_by_index.ets.arkts2.json @@ -631,7 +631,7 @@ "endColumn": 31, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { diff --git a/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json b/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json index 29b100aba1..5ce55a54ac 100755 --- a/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json +++ b/ets2panda/linter/test/main/swicth_expr.ets.arkts2.json @@ -621,7 +621,7 @@ "endColumn": 32, "problem": "CreatingPrimitiveTypes", "suggest": "", - "rule": "ArkTS creating primitive types is not supported (arkts-primitive-type-normalization)", + "rule": "Primitive types are normalized with their boxed type (arkts-primitive-type-normalization)", "severity": "ERROR" }, { -- Gitee