blob: fd86b06d621b7344ce6e0b43e9e90f36882f54cf [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;
import "package:expect/expect.dart";
static field dynamic global;
static method fact4() dynamic {
core::int* f = 1;
{
core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3, 4].{core::Iterable::iterator};
for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
core::int* n = :sync-for-iterator.{core::Iterator::current};
{
f = f.{core::num::*}(n);
}
}
}
return f;
}
static method fact5() dynamic {
core::int* f = 1;
dynamic n;
{
core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[1, 2, 3, 4, 5].{core::Iterable::iterator};
for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
final dynamic #t1 = :sync-for-iterator.{core::Iterator::current};
{
n = #t1;
f = f.{core::num::*}(n as{TypeError,ForDynamic} core::num) as{TypeError} core::int*;
}
}
}
return f;
}
static method fact6() dynamic {
core::int* f = 1;
{
core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[1, 2, 3, 4, 5, 6].{core::Iterable::iterator};
for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
{
self::global = #t2;
f = f.{core::num::*}(self::global as{TypeError,ForDynamic} core::num) as{TypeError} core::int*;
}
}
}
return f;
}
static method main() dynamic {
exp::Expect::isTrue(self::fact4().{core::Object::==}(24));
exp::Expect::isTrue(self::fact5().{core::Object::==}(120));
exp::Expect::isTrue(self::fact6().{core::Object::==}(720));
}