1/**
2 * Copyright (c) 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
16const enum E {
17    A = 1,
18    B = -2,
19    C = 3
20}
21
22const enum E1 {
23    A = "Hello",
24    B = "world"
25} 
26
27@interface Anno {
28    a: number
29    b: number[] = [13, -10]
30    c: string
31    d: boolean
32    e: E[] = [1, -2, 3]
33    f: number[]
34    h: E = new Number(10) as number // no initializer
35    i: E[][][] = [[new Array<E>(0)]] // no initializer
36    j: E1 // no initializer
37    k: E1[][][] = [[new Array<E1>(2)]] // no initializer
38}
39
40@#Anno({a: 20, b: [-13, 10], c: "ab", d: true, e: [-1, 2, 3], f: new Array<number>(), g: [[[0]]], h: 10, i: [[new Array<E>(1)]], j: "B", k: [[new Array<E1>(3)]]})
41class A {
42    @#Anno({a: -10, b: [1, 2, -3], c: "cde", d: true, e: [1, -2, 3], f: [1], g: [[[0], [1]]], h: -10, i: [[[10], [20]]], j: "B", k: [[["A"], ["B"]]]})
43    foo() {}
44}
45