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 B   {
17    c: int = 11;
18    d: int = 33;
19    public constructor() {
20        this.c += 22;
21        this.d -= 44;
22    }
23}
24
25function main(): void {
26
27  let b = new B();
28  assert (b.c == 33);
29  assert (b.d == -11);
30
31  let x: int[] = [1, 2, 3];
32
33  for (let i: int = 0; i < 3; ++i) {
34    i <<= 2;
35
36    x[i >> 2] *= 2;
37    i >>= 2;
38  }
39
40  for (let i: int = 0; i < 3; ++i) {
41    assert (x[i] == (i + 1) * 2);
42  }
43}
44