blob: d107c33d807d00ae6a52440c209b4b90a6051cec [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
static method range(core::int high) dynamic {
final dynamic #context = MakeVector(3);
#context[2] = high;
high = null;
final (core::int) dynamic iter = MakeClosure<(core::int) dynamic>(self::closure#range#iter, #context);
return iter;
}
static method main() dynamic {
dynamic sum = 0;
for (dynamic x in self::range(10).call(2))
sum = sum.+(x);
if(!sum.==(44)) {
throw core::Exception::•("Incorrect output.");
}
}
static method closure#range#iter(dynamic #contextParameter, core::int low) → dynamic /* originally sync* */ {
final dynamic #context = MakeVector(3);
#context[1] = #contextParameter;
#context[2] = low;
low = null;
dynamic :await_jump_var = 0;
dynamic :await_ctx_var;
dynamic :sync_op = (core::Iterator<dynamic> :iterator) core::bool yielding {
{
while ((let final dynamic #t1 = #contextParameter[2] in let final dynamic #t2 = #contextParameter[2] = #t1.-(1) in #t1).>(#context[2])) {
:iterator._current = #context[1][2];
[yield] true;
}
}
return false;
};
return new core::_SyncIterable::•(:sync_op);
}