| Index: tests/language/for_variable_capture_test.dart
|
| diff --git a/tests/language/for_variable_capture_test.dart b/tests/language/for_variable_capture_test.dart
|
| index d59fb8f06f4124749efd0f59ed9b29b641bee655..97a062680f43a99cde8fb74036a49e8136d9d81e 100644
|
| --- a/tests/language/for_variable_capture_test.dart
|
| +++ b/tests/language/for_variable_capture_test.dart
|
| @@ -6,279 +6,297 @@ import "package:expect/expect.dart";
|
|
|
| run(callback) => callback();
|
|
|
| -
|
| initializer() {
|
| - var closure;
|
| - for (var i=0, fn = () => i; i < 3; i++) {
|
| - i += 1;
|
| - closure = fn;
|
| - }
|
| - Expect.equals(1, closure());
|
| + var closure;
|
| + for (var i = 0, fn = () => i; i < 3; i++) {
|
| + i += 1;
|
| + closure = fn;
|
| + }
|
| + Expect.equals(1, closure());
|
| }
|
|
|
| condition() {
|
| - var closures = [];
|
| - check(callback) {
|
| - closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0; check(() => ++i) < 8; ++i) {
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([1, 3, 5, 7], values);
|
| - Expect.listEquals([2, 4, 6, 8, 10], closures.map(run).toList());
|
| + var closures = [];
|
| + check(callback) {
|
| + closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0; check(() => ++i) < 8; ++i) {
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([1, 3, 5, 7], values);
|
| + Expect.listEquals([2, 4, 6, 8, 10], closures.map(run).toList());
|
| }
|
|
|
| body() {
|
| - var closures = [];
|
| - for (var i=0, j=0; i<3; i++) {
|
| - j++;
|
| - closures.add(() => i);
|
| - closures.add(() => j);
|
| - }
|
| - Expect.listEquals([0, 1, 1, 2, 2, 3], closures.map(run).toList());
|
| + var closures = [];
|
| + for (var i = 0, j = 0; i < 3; i++) {
|
| + j++;
|
| + closures.add(() => i);
|
| + closures.add(() => j);
|
| + }
|
| + Expect.listEquals([0, 1, 1, 2, 2, 3], closures.map(run).toList());
|
| }
|
|
|
| update() {
|
| - var closures = [];
|
| - check(callback) {
|
| - closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0; i < 4; check(() => ++i)) {
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([0, 1, 2, 3], values);
|
| - Expect.listEquals([2, 3, 4, 5], closures.map(run).toList());
|
| + var closures = [];
|
| + check(callback) {
|
| + closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0; i < 4; check(() => ++i)) {
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([0, 1, 2, 3], values);
|
| + Expect.listEquals([2, 3, 4, 5], closures.map(run).toList());
|
| }
|
|
|
| initializer_condition() {
|
| - var values = [];
|
| - for (var i=0, fn = () => i; run(() => ++i) < 3; ) {
|
| - values.add(i);
|
| - values.add(fn());
|
| - }
|
| - Expect.listEquals([1, 1, 2, 1], values);
|
| + var values = [];
|
| + for (var i = 0, fn = () => i; run(() => ++i) < 3;) {
|
| + values.add(i);
|
| + values.add(fn());
|
| + }
|
| + Expect.listEquals([1, 1, 2, 1], values);
|
| }
|
|
|
| initializer_update() {
|
| - var update_closures = [];
|
| - update(callback) {
|
| - update_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var init_closure;
|
| - for (var i=0, fn = () => i; i < 4; update(() => ++i)) {
|
| - init_closure = fn;
|
| - if (i == 0) {
|
| - ++i; // Mutate copy of 'i' from first iteration.
|
| - }
|
| - }
|
| - Expect.equals(1, init_closure());
|
| - Expect.listEquals([3, 4, 5], update_closures.map(run).toList());
|
| - Expect.equals(1, init_closure());
|
| + var update_closures = [];
|
| + update(callback) {
|
| + update_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var init_closure;
|
| + for (var i = 0, fn = () => i; i < 4; update(() => ++i)) {
|
| + init_closure = fn;
|
| + if (i == 0) {
|
| + ++i; // Mutate copy of 'i' from first iteration.
|
| + }
|
| + }
|
| + Expect.equals(1, init_closure());
|
| + Expect.listEquals([3, 4, 5], update_closures.map(run).toList());
|
| + Expect.equals(1, init_closure());
|
| }
|
|
|
| initializer_body() {
|
| - var closures = [];
|
| - for (var i=0, fn = () => i; i < 3; i++) {
|
| - closures.add(() => i);
|
| - closures.add(fn);
|
| - fn = () => i;
|
| - }
|
| - Expect.listEquals([0, 0, 1, 0, 2, 1], closures.map(run).toList());
|
| + var closures = [];
|
| + for (var i = 0, fn = () => i; i < 3; i++) {
|
| + closures.add(() => i);
|
| + closures.add(fn);
|
| + fn = () => i;
|
| + }
|
| + Expect.listEquals([0, 0, 1, 0, 2, 1], closures.map(run).toList());
|
| }
|
|
|
| condition_update() {
|
| - var cond_closures = [];
|
| - check(callback) {
|
| - cond_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var update_closures = [];
|
| - update(callback) {
|
| - update_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0; check(() => i) < 4; update(() => ++i)) {
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([0, 1, 2, 3], values);
|
| -
|
| - Expect.listEquals([0, 1, 2, 3, 4], cond_closures.map(run).toList());
|
| - Expect.listEquals( [2, 3, 4, 5], update_closures.map(run).toList());
|
| - Expect.listEquals([0, 2, 3, 4, 5], cond_closures.map(run).toList());
|
| + var cond_closures = [];
|
| + check(callback) {
|
| + cond_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var update_closures = [];
|
| + update(callback) {
|
| + update_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0; check(() => i) < 4; update(() => ++i)) {
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([0, 1, 2, 3], values);
|
| +
|
| + Expect.listEquals([0, 1, 2, 3, 4], cond_closures.map(run).toList());
|
| + Expect.listEquals([2, 3, 4, 5], update_closures.map(run).toList());
|
| + Expect.listEquals([0, 2, 3, 4, 5], cond_closures.map(run).toList());
|
| }
|
|
|
| condition_body() {
|
| - var cond_closures = [];
|
| - check(callback) {
|
| - cond_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var body_closures = [];
|
| - do_body(callback) {
|
| - body_closures.add(callback);
|
| - return callback();
|
| - }
|
| - for (var i=0; check(() => i) < 4; ++i) {
|
| - do_body(() => i);
|
| - }
|
| - Expect.listEquals([0, 1, 2, 3, 4], cond_closures.map(run).toList());
|
| - Expect.listEquals([0, 1, 2, 3], body_closures.map(run).toList());
|
| + var cond_closures = [];
|
| + check(callback) {
|
| + cond_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var body_closures = [];
|
| + do_body(callback) {
|
| + body_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + for (var i = 0; check(() => i) < 4; ++i) {
|
| + do_body(() => i);
|
| + }
|
| + Expect.listEquals([0, 1, 2, 3, 4], cond_closures.map(run).toList());
|
| + Expect.listEquals([0, 1, 2, 3], body_closures.map(run).toList());
|
| }
|
|
|
| initializer_condition_update() {
|
| - var init;
|
| - var cond_closures = [];
|
| - check(callback) {
|
| - cond_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var update_closures = [];
|
| - update(callback) {
|
| - update_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0, fn = () => i; check(() => ++i) < 8; update(() => ++i)) {
|
| - init = fn;
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([1, 3, 5, 7], values);
|
| - Expect.equals(1, init());
|
| -
|
| - Expect.listEquals([2, 4, 6, 8, 10], cond_closures.map(run).toList());
|
| - Expect.listEquals( [5, 7, 9, 11], update_closures.map(run).toList());
|
| + var init;
|
| + var cond_closures = [];
|
| + check(callback) {
|
| + cond_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var update_closures = [];
|
| + update(callback) {
|
| + update_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0, fn = () => i; check(() => ++i) < 8; update(() => ++i)) {
|
| + init = fn;
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([1, 3, 5, 7], values);
|
| + Expect.equals(1, init());
|
| +
|
| + Expect.listEquals([2, 4, 6, 8, 10], cond_closures.map(run).toList());
|
| + Expect.listEquals([5, 7, 9, 11], update_closures.map(run).toList());
|
| }
|
|
|
| initializer_condition_body() {
|
| - var init;
|
| - var cond_closures = [];
|
| - check(callback) {
|
| - cond_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var body_closures = [];
|
| - do_body(callback) {
|
| - body_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0, fn = () => i; check(() => ++i) < 8; ) {
|
| - init = fn;
|
| - do_body(() => ++i);
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([2, 4, 6, 8], values);
|
| - Expect.equals(2, init());
|
| -
|
| - Expect.listEquals([3, 5, 7, 9, 10], cond_closures.map(run).toList());
|
| - Expect.listEquals([4, 6, 8, 10], body_closures.map(run).toList());
|
| + var init;
|
| + var cond_closures = [];
|
| + check(callback) {
|
| + cond_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var body_closures = [];
|
| + do_body(callback) {
|
| + body_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0, fn = () => i; check(() => ++i) < 8;) {
|
| + init = fn;
|
| + do_body(() => ++i);
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([2, 4, 6, 8], values);
|
| + Expect.equals(2, init());
|
| +
|
| + Expect.listEquals([3, 5, 7, 9, 10], cond_closures.map(run).toList());
|
| + Expect.listEquals([4, 6, 8, 10], body_closures.map(run).toList());
|
| }
|
|
|
| initializer_update_body() {
|
| - var init;
|
| - var update_closures = [];
|
| - update(callback) {
|
| - update_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var body_closures = [];
|
| - do_body(callback) {
|
| - body_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0, fn = () => i; i < 8; update(() => ++i)) {
|
| - init = fn;
|
| - do_body(() => ++i);
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([1, 3, 5, 7], values);
|
| - Expect.equals(1, init());
|
| -
|
| - Expect.listEquals( [4, 6, 8, 9], update_closures.map(run).toList());
|
| - Expect.listEquals([2, 5, 7, 9], body_closures.map(run).toList());
|
| + var init;
|
| + var update_closures = [];
|
| + update(callback) {
|
| + update_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var body_closures = [];
|
| + do_body(callback) {
|
| + body_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0, fn = () => i; i < 8; update(() => ++i)) {
|
| + init = fn;
|
| + do_body(() => ++i);
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([1, 3, 5, 7], values);
|
| + Expect.equals(1, init());
|
| +
|
| + Expect.listEquals([4, 6, 8, 9], update_closures.map(run).toList());
|
| + Expect.listEquals([2, 5, 7, 9], body_closures.map(run).toList());
|
| }
|
|
|
| condition_update_body() {
|
| - var cond_closures = [];
|
| - check(callback) {
|
| - cond_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var update_closures = [];
|
| - update(callback) {
|
| - update_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var body_closures = [];
|
| - do_body(callback) {
|
| - body_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0; check(() => i) < 8; update(() => ++i)) {
|
| - do_body(() => ++i);
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([1, 3, 5, 7], values);
|
| -
|
| - Expect.listEquals([1, 3, 5, 7, 8], cond_closures.map(run).toList());
|
| - Expect.listEquals( [4, 6, 8, 9], update_closures.map(run).toList());
|
| - Expect.listEquals([2, 5, 7, 9], body_closures.map(run).toList());
|
| - Expect.listEquals([2, 5, 7, 9, 9], cond_closures.map(run).toList());
|
| + var cond_closures = [];
|
| + check(callback) {
|
| + cond_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var update_closures = [];
|
| + update(callback) {
|
| + update_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var body_closures = [];
|
| + do_body(callback) {
|
| + body_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0; check(() => i) < 8; update(() => ++i)) {
|
| + do_body(() => ++i);
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([1, 3, 5, 7], values);
|
| +
|
| + Expect.listEquals([1, 3, 5, 7, 8], cond_closures.map(run).toList());
|
| + Expect.listEquals([4, 6, 8, 9], update_closures.map(run).toList());
|
| + Expect.listEquals([2, 5, 7, 9], body_closures.map(run).toList());
|
| + Expect.listEquals([2, 5, 7, 9, 9], cond_closures.map(run).toList());
|
| }
|
|
|
| initializer_condition_update_body() {
|
| - var init;
|
| - var cond_closures = [];
|
| - check(callback) {
|
| - cond_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var update_closures = [];
|
| - update(callback) {
|
| - update_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var body_closures = [];
|
| - do_body(callback) {
|
| - body_closures.add(callback);
|
| - return callback();
|
| - }
|
| - var values = [];
|
| - for (var i=0, fn = () => i; check(() => i) < 8; update(() => ++i)) {
|
| - init = fn;
|
| - do_body(() => ++i);
|
| - values.add(i);
|
| - }
|
| - Expect.listEquals([1, 3, 5, 7], values);
|
| - Expect.equals(1, init());
|
| -
|
| - Expect.listEquals([1, 3, 5, 7, 8], cond_closures.map(run).toList());
|
| - Expect.listEquals( [4, 6, 8, 9], update_closures.map(run).toList());
|
| - Expect.listEquals([2, 5, 7, 9], body_closures.map(run).toList());
|
| - Expect.listEquals([2, 5, 7, 9, 9], cond_closures.map(run).toList());
|
| + var init;
|
| + var cond_closures = [];
|
| + check(callback) {
|
| + cond_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var update_closures = [];
|
| + update(callback) {
|
| + update_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var body_closures = [];
|
| + do_body(callback) {
|
| + body_closures.add(callback);
|
| + return callback();
|
| + }
|
| +
|
| + var values = [];
|
| + for (var i = 0, fn = () => i; check(() => i) < 8; update(() => ++i)) {
|
| + init = fn;
|
| + do_body(() => ++i);
|
| + values.add(i);
|
| + }
|
| + Expect.listEquals([1, 3, 5, 7], values);
|
| + Expect.equals(1, init());
|
| +
|
| + Expect.listEquals([1, 3, 5, 7, 8], cond_closures.map(run).toList());
|
| + Expect.listEquals([4, 6, 8, 9], update_closures.map(run).toList());
|
| + Expect.listEquals([2, 5, 7, 9], body_closures.map(run).toList());
|
| + Expect.listEquals([2, 5, 7, 9, 9], cond_closures.map(run).toList());
|
| }
|
|
|
| main() {
|
| - initializer();
|
| - condition();
|
| - update();
|
| - body();
|
| - initializer_condition();
|
| - initializer_update();
|
| - initializer_body();
|
| - condition_update();
|
| - condition_body();
|
| - initializer_condition_update();
|
| - initializer_condition_body();
|
| - initializer_update_body();
|
| - condition_update_body();
|
| - initializer_condition_update_body();
|
| + initializer();
|
| + condition();
|
| + update();
|
| + body();
|
| + initializer_condition();
|
| + initializer_update();
|
| + initializer_body();
|
| + condition_update();
|
| + condition_body();
|
| + initializer_condition_update();
|
| + initializer_condition_body();
|
| + initializer_update_body();
|
| + condition_update_body();
|
| + initializer_condition_update_body();
|
| }
|
|
|