| >>> (indent 2) |
| Decl immutableVariableDeclaration( |
| List<String> names, List<Expr> initializers) => |
| (Environment env) { |
| assert(names.length == initializers.length); |
| for (int i = 0; i < names.length; ++i) { |
| env.initialize(names[i], |
| getter: (TopLevelBinding binding, ExprCont ek, ExprCont k) { |
| binding.getter = (TopLevelBinding _, ExprCont ek0, ExprCont k0) => ek0( |
| "Reading static variable '${binding.name}' during its initialization"); |
| initializers[i](env, ek, (v) { |
| binding.getter = |
| (TopLevelBinding _, ExprCont ek1, ExprCont k1) => k1(v); |
| return k(v); |
| }); |
| }, |
| setter: (value, ExprCont ek, ExprCont k) => |
| ek("NoSuchMethodError: method not found: '${names[i]}='")); |
| } |
| }; |
| <<< |
| Decl immutableVariableDeclaration( |
| List<String> names, |
| List<Expr> initializers, |
| ) => (Environment env) { |
| assert(names.length == initializers.length); |
| for (int i = 0; i < names.length; ++i) { |
| env.initialize( |
| names[i], |
| getter: (TopLevelBinding binding, ExprCont ek, ExprCont k) { |
| binding.getter = |
| (TopLevelBinding _, ExprCont ek0, ExprCont k0) => ek0( |
| "Reading static variable '${binding.name}' during its initialization", |
| ); |
| initializers[i](env, ek, (v) { |
| binding.getter = |
| (TopLevelBinding _, ExprCont ek1, ExprCont k1) => k1(v); |
| return k(v); |
| }); |
| }, |
| setter: |
| (value, ExprCont ek, ExprCont k) => |
| ek("NoSuchMethodError: method not found: '${names[i]}='"), |
| ); |
| } |
| }; |