blob: 616cf0797f8192102aab58cd30857854a44f0cf2 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
static method doit(core::int x) void {
final dynamic #context = MakeVector(3);
#context[2] = x;
final core::int max = 10;
final core::double expectedSum = max.-(1).*(max)./(2);
core::int counter = 0;
dynamic calls = <dynamic>[];
while (counter.<(max)) {
final dynamic #context = MakeVector(3);
#context[1] = #context;
#context[2] = counter;
calls.add(MakeClosure<() dynamic>(self::closure#doit#function, #context));
counter = counter.+(1);
}
core::double sum = 0.0;
for (dynamic c in calls)
sum = sum.+(c.call());
if(!sum.==(expectedSum))
throw core::Exception::•("Unexpected sum = ${sum} != ${expectedSum}");
}
static method main() void {
self::doit(0);
}
static method closure#doit#function(dynamic #contextParameter) → dynamic {
return (#contextParameter[2]).+(#contextParameter[1][2]);
}