| /* |
| * 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 is a compile time error to read a local variable when the |
| * variable is definitely unassigned unless the variable is non-final, and |
| * non-late, and has nullable type. |
| * |
| * @description Checks that it's a compile time error to read a local variable |
| * when the variable is definitely unassigned |
| * @author sgrekhov@unipro.ru |
| */ |
| |
| |
| main() { |
| int x1; |
| x1 *= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| double x2; |
| x2 /= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x3; |
| x3 ~/= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x4; |
| x4 %= 22; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x5; |
| x5 += 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x6; |
| x6 -= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x7; |
| x7 <<= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x8; |
| x8 >>= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x9; |
| x9 &= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x10; |
| x10 ^= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x11; |
| x11 |= 2; |
| //^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| |
| int x12; |
| x12 ??= 2; |
| //^^^ |
| // [analyzer] COMPILE_TIME_ERROR.NOT_ASSIGNED_POTENTIALLY_NON_NULLABLE_LOCAL_VARIABLE |
| // ^ |
| // [analyzer] STATIC_WARNING.DEAD_NULL_AWARE_EXPRESSION |
| // [cfe] unspecified |
| } |