OLD | NEW |
1 library; | 1 library; |
2 import self as self; | 2 import self as self; |
3 import "dart:core" as core; | 3 import "dart:core" as core; |
4 | 4 |
5 static const field core::int max = 100; | 5 static const field core::int max = 100; |
6 static method main() → dynamic { | 6 static method main() → dynamic { |
7 dynamic closures = <dynamic>[]; | 7 dynamic closures = <dynamic>[]; |
8 dynamic closures2 = <dynamic>[]; | 8 dynamic closures2 = <dynamic>[]; |
9 final Vector #context = MakeVector(2); | 9 final Vector #context = MakeVector(3); |
10 #context[1] = null; | 10 #context[2] = null; |
11 { | 11 { |
12 Vector #context = MakeVector(2); | 12 Vector #context = MakeVector(3); |
13 #context[0] = #context; | 13 #context[1] = #context; |
14 #context[1] = 0; | 14 #context[2] = 0; |
15 for (; (#context[1]).<(self::max); #context = CopyVector(#context), #context
[1] = (#context[1]).+(1)) { | 15 for (; (#context[2]).<(self::max); #context = CopyVector(#context), #context
[2] = (#context[2]).+(1)) { |
16 closures.add(MakeClosure<() → dynamic>(self::closure#main#function, #conte
xt)); | 16 closures.add(MakeClosure<() → dynamic>(self::closure#main#function, #conte
xt)); |
17 closures2.add(MakeClosure<() → dynamic>(self::closure#main#function#1, #co
ntext)); | 17 closures2.add(MakeClosure<() → dynamic>(self::closure#main#function#1, #co
ntext)); |
18 } | 18 } |
19 } | 19 } |
20 core::int sum = 0; | 20 core::int sum = 0; |
21 for (core::Function f in closures) { | 21 for (core::Function f in closures) { |
22 sum = sum.+(f.call()); | 22 sum = sum.+(f.call()); |
23 } | 23 } |
24 for (core::Function f in closures2) { | 24 for (core::Function f in closures2) { |
25 f.call(); | 25 f.call(); |
26 } | 26 } |
27 core::int expectedSum = self::max.-(1).*(self::max).~/(2); | 27 core::int expectedSum = self::max.-(1).*(self::max).~/(2); |
28 if(!expectedSum.==(sum)) { | 28 if(!expectedSum.==(sum)) { |
29 throw core::Exception::•("Unexpected sum = ${sum} != ${expectedSum}"); | 29 throw core::Exception::•("Unexpected sum = ${sum} != ${expectedSum}"); |
30 } | 30 } |
31 } | 31 } |
32 static method closure#main#function(Vector #contextParameter) → dynamic { | 32 static method closure#main#function(Vector #contextParameter) → dynamic { |
33 return #contextParameter[0][1] = #contextParameter[1]; | 33 return #contextParameter[1][2] = #contextParameter[2]; |
34 } | 34 } |
35 static method closure#main#function#1(Vector #contextParameter) → dynamic { | 35 static method closure#main#function#1(Vector #contextParameter) → dynamic { |
36 if(!(#contextParameter[0][1]).==(self::max.-(1))) | 36 if(!(#contextParameter[1][2]).==(self::max.-(1))) |
37 throw "last: ${#contextParameter[0][1]} != ${self::max.-(1)}"; | 37 throw "last: ${#contextParameter[1][2]} != ${self::max.-(1)}"; |
38 } | 38 } |
OLD | NEW |