1/*
2 * Copyright (c) 2022-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16
17var [var1, var2] = [1, "foo", true];
18var1 = 2;
19var2 = "bar";
20
21var var3: number;
22var var4: boolean;
23var [var3, , var4] = [var1, , true];
24
25var [var5 = 2] = ["foo"];
26var var5: number | string;
27
28var [var6 = 1, var7 = "asd", var8 = true] = [];
29var var6: number;
30var var7: string;
31var var8: boolean;
32
33var [var9, [var10, , var11], ...var12] = [{ a: 6, b: "bar" }, [42, , "foo" + 2]];
34var9 = { a: 5, b: "foo" };
35var10 = var3;
36var11 = var7;
37var12 = [];
38
39var [var13 = [1, "foo"], [var14, var15] = [{}, true], ...var16] = [3, [true, {}], function (a: any, b: any): number { return 12 }, "bar"];
40var13 = 5;
41var13 = [2, "baz"];
42var14 = {};
43var14 = false;
44var15 = var14;
45var var16: [(a: any, b: any) => number, string];
46
47var [var17, var18 = 6, var19]: [number, number | string, boolean[]] = [1, "foo", [true, false]];
48var [var20, , var21]: number[] | [number, number, string] = [];
49var [var22, var23 = [{ a: 5, b: "foo" }, false], var24]: string[] | [number, ({ a: number, b: string } | boolean)[]] = [1, [{ a: 1, b: "bat" }, true]];
50var [[var25, var26] = ["foo", {}], [[var27]]]: number[][][] | [[number | string, {}], [[number]]] = [[1, {}], [[3]]];
51var [var28 = {}, { var29 }, ...var30]: [{}, { var29: number }, number, string] = [{}, { var29: 5 }, 1, "foo"];
52
53var var31: number;
54var var32: boolean;
55
56[var31, var32] = [var31, true];
57[var31, var31] = [5, 6];
58[var31, var32] = [var31, true, false, 5];
59
60var var33: number;
61var var34: boolean;
62
63[var33, var34] = [var31, var32];
64
65var var35: string | number;
66
67[var35 = 2] = ["foo"];
68
69var var36: number;
70var var37: string;
71var var38: boolean;
72[var36 = 1, var37 = "asd", var38 = true] = [];
73
74var var39 = {};
75var var40 = var33;
76var var41 = var37;
77var var42 = [];
78[var39, [var40, , var41 = "bar"], ...var42] = [{}, [42, , "foo" + 2]];
79[var39, [var40, , var41 = "bar"], ...var42] = [{}, [42, , "foo" + 2], 3, "baz", false];
80
81[var39, [var40, , var41 = "bar"] = [45, , "baz"], ...var42] = [{}, [42, , "foo" + 2]];
82
83var var43 = [45, , "baz"] as const;
84
85var var44 = "foo";
86
87[var39, [var40, , var41 = "bar"] = var43, ...var42] = [{}, [42, , var44 + 2]];
88
89var var45: string[];
90var var46: number[];
91var var47: (string | number)[];
92var var48: string[];
93
94[var45, var46, var47, var47, var47, ...var48] = [["foo", "bar"], [1, 2], ["foo", "bar"], [1, 2], [1, "foo"], "bar", "bar"]
95
96var var49: string[];
97var var50: number[];
98[[...var49], ...var50] = [["foo", "bar"], 1, 2]
99