// Copyright (c) 2011, 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. // @dart = 2.7 import "package:expect/expect.dart"; void phi1() { var x = 42; if (true) { Expect.equals(42, x); print(x); } Expect.equals(42, x); print(x); } void phi2() { var x = 499; if (true) { Expect.equals(499, x); x = 42; } Expect.equals(42, x); print(x); } void phi3() { var x = 499; if (true) { Expect.equals(499, x); x = 42; } else { Expect.fail('unreachable'); print(x); } Expect.equals(42, x); print(x); } void phi4() { var x = 499; if (true) { Expect.equals(499, x); print(x); } else { Expect.fail('unreachable'); x = 42; } Expect.equals(499, x); print(x); } void phi5() { var x = 499; if (true) { if (true) { Expect.equals(499, x); x = 42; } } Expect.equals(42, x); print(x); } void phi6() { var x = 499; if (true) { if (true) { Expect.equals(499, x); print(x); } else { x = 42; Expect.fail('unreachable'); } } Expect.equals(499, x); print(x); } void phi7() { var x = 499; if (true) { x = 42; if (true) { Expect.equals(42, x); x = 99; } else { x = 111; Expect.fail('unreachable'); } } else { Expect.fail('unreachable'); if (false) { x = 341; } else { x = 1024; } } Expect.equals(99, x); print(x); } void phi8() { var x = 499; if (true) { x = 42; if (true) { Expect.equals(42, x); x = 99; } else { Expect.fail('unreachable'); x = 111; } } else { Expect.fail('unreachable'); if (false) { x = 341; } else { x = 1024; } } if (true) { Expect.equals(99, x); x = 12342; if (true) { x = 12399; } else { Expect.fail('unreachable'); x = 123111; } } else { Expect.fail('unreachable'); if (false) { x = 123341; } else { x = 1231024; } } Expect.equals(12399, x); print(x); } void phi9() { var x = 499; if (true) { var y = 42; if (true) { y = 99; } else { Expect.fail('unreachable'); x = 111; } Expect.equals(99, y); print(y); } Expect.equals(499, x); print(x); } void main() { phi1(); phi2(); phi3(); phi4(); phi5(); phi6(); phi7(); phi8(); phi9(); }