| /* |
| * Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file |
| * for details. All rights reserved. Use of this source code is governed by a |
| * BSD-style license that can be found in the LICENSE file. |
| */ |
| /** |
| * @assertion It's not a compile error to read definitely unassigned local |
| * variable in the form var x; |
| * |
| * @description Checks that it's not a compile error to read definitely |
| * unassigned local variable in the form var x;. Test indirect read via compound |
| * assignment |
| * |
| * @author sgrekhov@unipro.ru |
| */ |
| // Requirements=nnbd-strong |
| import "../../Utils/expect.dart"; |
| |
| main() { |
| var x1; |
| Expect.throws(() { x1 *= 2; }); |
| |
| var x2; |
| Expect.throws(() { x2 /= 2; }); |
| |
| var x3; |
| Expect.throws(() { x3 ~/= 2; }); |
| |
| var x4; |
| Expect.throws(() { x4 %= 2; }); |
| |
| var x5; |
| Expect.throws(() { x5 += 2; }); |
| |
| var x6; |
| Expect.throws(() { x6 -= 2; }); |
| |
| var x7; |
| Expect.throws(() { x7 <<= 2; }); |
| |
| var x8; |
| Expect.throws(() { x8 >>= 2; }); |
| |
| var x9; |
| Expect.throws(() { x1 &= 2; }); |
| |
| var x10; |
| Expect.throws(() { x10 ^= 2; }); |
| |
| var x11; |
| Expect.throws(() { x11 |= 2; }); |
| |
| var x12; |
| x12 ??= 2; |
| Expect.equals(2, x12); |
| } |