1/*
2 * Copyright (c) 2023-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
16class C {
17  private x: int[] = [1, 3, 5];
18
19  $_get(ind: int) : int {
20     return this.x[ind];
21  }
22
23  $_set(ind: int, val: int): void  {
24    this.x[ind] = val;
25  }
26
27}
28
29function main(): void {
30
31  let x: int[] = [1, 3, 5];
32
33  let y: int = x[0];
34  let z  = x[1];
35  x[1] = x[2];
36  x[2] *= 2;
37
38  let c = new C();
39
40  let u = c[0];
41  let v = c.$_get(1);
42  c[1] = c[2];
43  c[2] *= 2;
44
45  assert(y == u);
46  assert(z == v)
47  assert(x[1] == c[1])
48  assert(x[2] == c[2])
49  assert(x[0] == c[0])
50}
51