13af6ab5fSopenharmony_ci/*
23af6ab5fSopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License.
53af6ab5fSopenharmony_ci * You may obtain a copy of the License at
63af6ab5fSopenharmony_ci *
73af6ab5fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0
83af6ab5fSopenharmony_ci *
93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and
133af6ab5fSopenharmony_ci * limitations under the License.
143af6ab5fSopenharmony_ci */
153af6ab5fSopenharmony_ciimport {OhosInterface} from './oh_modules/ohos_lib'
163af6ab5fSopenharmony_ci// #14071
173af6ab5fSopenharmony_ciclass A {
183af6ab5fSopenharmony_ci  v: string = '';
193af6ab5fSopenharmony_ci}
203af6ab5fSopenharmony_cifunction SetProperty<T extends Object>(oldObj: T, str: string, obj: Object): void {
213af6ab5fSopenharmony_ci  oldObj[str] = obj; // Should report error
223af6ab5fSopenharmony_ci}
233af6ab5fSopenharmony_cifunction GetProperty<T extends Object, U>(oldObj: T, str: string): U {
243af6ab5fSopenharmony_ci  return oldObj[str]; // Should report error
253af6ab5fSopenharmony_ci}
263af6ab5fSopenharmony_cifunction test() {
273af6ab5fSopenharmony_ci  let a: A = { v: 'abc' };
283af6ab5fSopenharmony_ci  SetProperty(a, 'u', 'def');
293af6ab5fSopenharmony_ci  return GetProperty<A, string>(a, 'v') + GetProperty<A, string>(a, 'u');
303af6ab5fSopenharmony_ci}
313af6ab5fSopenharmony_ci
323af6ab5fSopenharmony_cilet ar1 = [1, 2, 3, 4];
333af6ab5fSopenharmony_cilet ar2 = [1, '2', 3, 4];
343af6ab5fSopenharmony_cilet ar3: number[] = [];
353af6ab5fSopenharmony_ci
363af6ab5fSopenharmony_ciar1[2];
373af6ab5fSopenharmony_ciar2[2];
383af6ab5fSopenharmony_ciar3[2];
393af6ab5fSopenharmony_ci
403af6ab5fSopenharmony_ciconst r0 = [1, 2, 3][1];
413af6ab5fSopenharmony_cilet r1 = [1, 2, 3, 4][0]
423af6ab5fSopenharmony_cilet r2 = [1, '2', 3, 4][0]
433af6ab5fSopenharmony_ci
443af6ab5fSopenharmony_cifunction fobject1(o: object) {
453af6ab5fSopenharmony_ci  o['j']
463af6ab5fSopenharmony_ci}
473af6ab5fSopenharmony_ci
483af6ab5fSopenharmony_cifunction fobject2(o: Object) {
493af6ab5fSopenharmony_ci  o['k']
503af6ab5fSopenharmony_ci}
513af6ab5fSopenharmony_ci
523af6ab5fSopenharmony_cilet array1 = [0,1]
533af6ab5fSopenharmony_cilet array2 = [1,2,3,4,5]
543af6ab5fSopenharmony_cilet array3: number[] = [1,2,3,4,5]
553af6ab5fSopenharmony_cilet array4: Array<number> = [1,2,3,4,5]
563af6ab5fSopenharmony_cilet array5 = new Array(10)
573af6ab5fSopenharmony_cilet array6 = new Int8Array(10)
583af6ab5fSopenharmony_cilet array7 = new Uint8Array(10)
593af6ab5fSopenharmony_cilet array8 = new Uint8ClampedArray(10)
603af6ab5fSopenharmony_cilet array9 = new Int16Array(10)
613af6ab5fSopenharmony_cilet array10 = new Uint16Array(10)
623af6ab5fSopenharmony_cilet array11 = new Int32Array(10)
633af6ab5fSopenharmony_cilet array12 = new Uint32Array(10)
643af6ab5fSopenharmony_cilet array13 = new Float32Array(10)
653af6ab5fSopenharmony_cilet array14 = new Float64Array(10)
663af6ab5fSopenharmony_cilet array15 = new BigInt64Array(10)
673af6ab5fSopenharmony_cilet array16 = new BigUint64Array(10)
683af6ab5fSopenharmony_ci
693af6ab5fSopenharmony_ciarray1[0];
703af6ab5fSopenharmony_ciarray2[0];
713af6ab5fSopenharmony_ciarray3[0];
723af6ab5fSopenharmony_ciarray4[0];
733af6ab5fSopenharmony_ciarray5[0];
743af6ab5fSopenharmony_ciarray6[0];
753af6ab5fSopenharmony_ciarray7[0];
763af6ab5fSopenharmony_ciarray8[0];
773af6ab5fSopenharmony_ciarray9[0];
783af6ab5fSopenharmony_ciarray10[0];
793af6ab5fSopenharmony_ciarray11[0];
803af6ab5fSopenharmony_ciarray12[0];
813af6ab5fSopenharmony_ciarray13[0];
823af6ab5fSopenharmony_ciarray14[0];
833af6ab5fSopenharmony_ciarray15[0];
843af6ab5fSopenharmony_ciarray16[0];
853af6ab5fSopenharmony_ci
863af6ab5fSopenharmony_cifunction fff1(r: Record<string, number>) {
873af6ab5fSopenharmony_ci    r['bob']
883af6ab5fSopenharmony_ci}
893af6ab5fSopenharmony_ci
903af6ab5fSopenharmony_cienum CCCCCCCCC {
913af6ab5fSopenharmony_ci  KATE,
923af6ab5fSopenharmony_ci  BOB,
933af6ab5fSopenharmony_ci  ROB,
943af6ab5fSopenharmony_ci}
953af6ab5fSopenharmony_ci
963af6ab5fSopenharmony_ciCCCCCCCCC['KATE']
973af6ab5fSopenharmony_ciCCCCCCCCC['BOB']
983af6ab5fSopenharmony_ciCCCCCCCCC['ROB']
993af6ab5fSopenharmony_ci
1003af6ab5fSopenharmony_ciCCCCCCCCC[CCCCCCCCC.KATE]
1013af6ab5fSopenharmony_ciCCCCCCCCC[CCCCCCCCC.BOB]
1023af6ab5fSopenharmony_ciCCCCCCCCC[CCCCCCCCC.ROB]
1033af6ab5fSopenharmony_ci
1043af6ab5fSopenharmony_cilet arr32 = new Float32Array([1,2,3])
1053af6ab5fSopenharmony_ci
1063af6ab5fSopenharmony_cilet iter_arr32 = arr32[Symbol.iterator]()
1073af6ab5fSopenharmony_cilet tmp_arr32 = iter_arr32.next().value;
1083af6ab5fSopenharmony_ciwhile (!!tmp_arr32) {
1093af6ab5fSopenharmony_ci  console.log(tmp_arr32[0])
1103af6ab5fSopenharmony_ci
1113af6ab5fSopenharmony_ci  tmp_arr32 = iter_arr32.next().value
1123af6ab5fSopenharmony_ci}
1133af6ab5fSopenharmony_ci
1143af6ab5fSopenharmony_cilet arr = new Array<string>()
1153af6ab5fSopenharmony_ciarr = ['a','f','g']
1163af6ab5fSopenharmony_cilet iter_arr = arr[Symbol.iterator]()
1173af6ab5fSopenharmony_cilet tmp_arr = iter_arr.next().value;
1183af6ab5fSopenharmony_ciwhile (!!tmp_arr) {
1193af6ab5fSopenharmony_ci  console.log(tmp_arr[0])
1203af6ab5fSopenharmony_ci  tmp_arr = iter_arr.next().value
1213af6ab5fSopenharmony_ci}
1223af6ab5fSopenharmony_ci
1233af6ab5fSopenharmony_ci// #14415
1243af6ab5fSopenharmony_ciclass ArrayContainer {
1253af6ab5fSopenharmony_ci  numbers: number[] = [];
1263af6ab5fSopenharmony_ci}
1273af6ab5fSopenharmony_ciclass NullableArray {
1283af6ab5fSopenharmony_ci  container: ArrayContainer | null = null;
1293af6ab5fSopenharmony_ci
1303af6ab5fSopenharmony_ci  print() {
1313af6ab5fSopenharmony_ci    console.log(this.container?.numbers[0]);
1323af6ab5fSopenharmony_ci  }
1333af6ab5fSopenharmony_ci}
1343af6ab5fSopenharmony_ci
1353af6ab5fSopenharmony_cilet str1 = 'sssss'
1363af6ab5fSopenharmony_cilet str2 = "aaaaa"
1373af6ab5fSopenharmony_cilet str3 = `sssss`
1383af6ab5fSopenharmony_cilet str4 = new String('sssss')
1393af6ab5fSopenharmony_cilet str5 = str1
1403af6ab5fSopenharmony_cilet str6 = str2
1413af6ab5fSopenharmony_ci
1423af6ab5fSopenharmony_cistr1[1]
1433af6ab5fSopenharmony_cistr2[1]
1443af6ab5fSopenharmony_cistr3[1]
1453af6ab5fSopenharmony_cistr4[1]
1463af6ab5fSopenharmony_cistr5[1]
1473af6ab5fSopenharmony_cistr6[1]
1483af6ab5fSopenharmony_ci
1493af6ab5fSopenharmony_ciclass AString extends String {}
1503af6ab5fSopenharmony_cilet str7 = new AString('dwdd')
1513af6ab5fSopenharmony_cistr7[1]
1523af6ab5fSopenharmony_ci
1533af6ab5fSopenharmony_citype IndexableUnion = string[] | (number | string)[] | Uint8Array;
1543af6ab5fSopenharmony_citype NonIndexableUnion = string[] | number[] | Uint8Array | number;
1553af6ab5fSopenharmony_ci
1563af6ab5fSopenharmony_cifunction indexUnion(iu: IndexableUnion, niu: NonIndexableUnion) {
1573af6ab5fSopenharmony_ci  iu[0];
1583af6ab5fSopenharmony_ci  niu[0];
1593af6ab5fSopenharmony_ci}
1603af6ab5fSopenharmony_ci
1613af6ab5fSopenharmony_cifunction testLibraryUnnamedType(a: OhosInterface) {
1623af6ab5fSopenharmony_ci  a['kek'];
1633af6ab5fSopenharmony_ci}
1643af6ab5fSopenharmony_ci
1653af6ab5fSopenharmony_ciclass MMap<T, U> extends Map<T, U> {}
1663af6ab5fSopenharmony_ci
1673af6ab5fSopenharmony_cilet mmap1 = new Map<number, string>();
1683af6ab5fSopenharmony_cilet mmap2 = new Map<string, number>();
1693af6ab5fSopenharmony_cilet mmap3 = new MMap<string, string>();
1703af6ab5fSopenharmony_ci
1713af6ab5fSopenharmony_cimmap1[1];
1723af6ab5fSopenharmony_cimmap2['222'];
1733af6ab5fSopenharmony_cimmap3["kkr"];
174