| Index: tests/language/lazy_final3_test.dart
|
| diff --git a/tests/language/lazy_final3_test.dart b/tests/language/lazy_final3_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..aa6c80107e29270a6d31199b94f0f4296b663961
|
| --- /dev/null
|
| +++ b/tests/language/lazy_final3_test.dart
|
| @@ -0,0 +1,56 @@
|
| +// Copyright (c) 2012, 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.
|
| +
|
| +final x = foo();
|
| +var x2 = foo2();
|
| +var x3 = foo3();
|
| +var x4 = foo4();
|
| +var x5 = foo5();
|
| +final x6 = foo6();
|
| +var x7 = x7 + 1;
|
| +
|
| +foo() { throw "interrupt initialization"; }
|
| +foo2() { x2 = 499; throw "interrupt initialization"; }
|
| +foo3() => x3 + 1;
|
| +foo4() {
|
| + x4 = 498;
|
| + x4 = x4 + 1;
|
| + return x4;
|
| +}
|
| +foo5() {
|
| + x5 = 498;
|
| + x5 = x5 + 1;
|
| +}
|
| +foo6() {
|
| + try {
|
| + return x5 + 1;
|
| + } catch (e) {
|
| + return 499;
|
| + }
|
| +}
|
| +
|
| +fib(x) {
|
| + if (x is! int) return 0;
|
| + if (x < 2) return x;
|
| + return fib(x - 1) + fib(x - 2);
|
| +}
|
| +
|
| +main() {
|
| + Expect.throws(() => fib(x), (e) => e == "interrupt initialization");
|
| + Expect.equals(null, x);
|
| +
|
| + Expect.throws(() => fib(x2), (e) => e == "interrupt initialization");
|
| + Expect.equals(499, x2);
|
| +
|
| + Expect.throws(() => fib(x3), (e) => e is RuntimeError);
|
| + Expect.equals(null, x3);
|
| +
|
| + Expect.equals(499, x4);
|
| +
|
| + Expect.equals(null, x5);
|
| +
|
| + Expect.equals(499, x6);
|
| +
|
| + Expect.throws(() => fib(x7), (e) => e is RuntimeError);
|
| +}
|
|
|