diff --git a/ets2panda/linter/src/lib/TypeScriptLinter.ts b/ets2panda/linter/src/lib/TypeScriptLinter.ts index 180f5dae35b2f69eaae0c58d20b3713b0c5a67cc..dea225b4e329d4d78bb3dda6d2c584745b5de08b 100644 --- a/ets2panda/linter/src/lib/TypeScriptLinter.ts +++ b/ets2panda/linter/src/lib/TypeScriptLinter.ts @@ -8356,6 +8356,9 @@ export class TypeScriptLinter extends BaseTypeScriptLinter { } const isArray = this.tsUtils.isArray(lhsType) && this.tsUtils.isArray(rhsType); + if (isArray && this.tsTypeChecker.typeToString(lhsType) === 'never[]') { + return; + } const isTuple = this.tsUtils.isOrDerivedFrom(lhsType, TsUtils.isTuple) && this.tsUtils.isOrDerivedFrom(rhsType, TsUtils.isTuple); if (!((isArray || isTuple) && lhsType !== rhsType)) { diff --git a/ets2panda/linter/test/main/arkts-array-type-immutable.ets b/ets2panda/linter/test/main/arkts-array-type-immutable.ets index 3c018c68ab24c13ba22459b3696df7c95d28fe6c..08e31c3a9ad1f7db4c18b13cfd6d7a15526e826b 100644 --- a/ets2panda/linter/test/main/arkts-array-type-immutable.ets +++ b/ets2panda/linter/test/main/arkts-array-type-immutable.ets @@ -170,3 +170,5 @@ async function Foo_a(): Promise<(string| number)[]> { async function Foo_b(): Promise<(string| number)[]> { return correctArr; } + +AppStorage.SetOrCreate('passwordArray', [] as string[]); 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 8ef0297136e121f20ea195d5538589891b9259ce..938a1e31b8f59f8be820a8bb3aeac70bbaf0c4f4 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 @@ -443,6 +443,16 @@ "suggest": "", "rule": "Array type is immutable in ArkTS1.2 (arkts-array-type-immutable)", "severity": "ERROR" + }, + { + "line": 174, + "column": 1, + "endLine": 174, + "endColumn": 11, + "problem": "UIInterfaceImport", + "suggest": "", + "rule": "The ArkUI interface \"AppStorage\" should be imported before it is used (arkui-modular-interface)", + "severity": "ERROR" } ] } \ No newline at end of file