blob: 9474a7281c2b1f1e9dbbb973d71de4ed30a915e9 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
static method foldInitialElements() void {
dynamic element0 = 0;
core::num* element1 = 1;
core::int* element2 = 2;
core::List<core::int*>* list = block {
final core::List<core::int*>* #t1 = <core::int*>[element0 as{TypeError,ForDynamic} core::int*, element1 as{TypeError} core::int*, element2];
if(true)
#t1.{core::List::add}{Invariant}(3){(core::int*) →* void};
#t1.{core::List::add}{Invariant}(4){(core::int*) →* void};
#t1.{core::List::add}{Invariant}(5){(core::int*) →* void};
#t1.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t1;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t2 = col::LinkedHashSet::•<core::int*>();
#t2.{core::Set::add}{Invariant}(element0 as{TypeError,ForDynamic} core::int*){(core::int*) →* core::bool*};
#t2.{core::Set::add}{Invariant}(element1 as{TypeError} core::int*){(core::int*) →* core::bool*};
#t2.{core::Set::add}{Invariant}(element2){(core::int*) →* core::bool*};
if(true)
#t2.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
#t2.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
#t2.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
#t2.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t2;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
static method foldInitialSpread1() void {
dynamic initial = <core::int*>[0, 1, 2];
core::List<core::int*>* list = block {
final core::List<core::int*>* #t3 = <core::int*>[];
for (final dynamic #t4 in initial as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t5 = #t4 as{TypeError} core::int*;
#t3.{core::List::add}{Invariant}(#t5){(core::int*) →* void};
}
if(true)
#t3.{core::List::add}{Invariant}(3){(core::int*) →* void};
#t3.{core::List::add}{Invariant}(4){(core::int*) →* void};
#t3.{core::List::add}{Invariant}(5){(core::int*) →* void};
#t3.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t3;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t6 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t7 in initial as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
final core::int* #t8 = #t7 as{TypeError} core::int*;
#t6.{core::Set::add}{Invariant}(#t8){(core::int*) →* core::bool*};
}
if(true)
#t6.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
#t6.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
#t6.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
#t6.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t6;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
static method foldInitialSpread2() void {
core::Iterable<core::num*>* initial = <core::num*>[0, 1, 2];
core::List<core::int*>* list = block {
final core::List<core::int*>* #t9 = <core::int*>[];
for (final dynamic #t10 in initial) {
final core::int* #t11 = #t10 as{TypeError} core::int*;
#t9.{core::List::add}{Invariant}(#t11){(core::int*) →* void};
}
if(true)
#t9.{core::List::add}{Invariant}(3){(core::int*) →* void};
#t9.{core::List::add}{Invariant}(4){(core::int*) →* void};
#t9.{core::List::add}{Invariant}(5){(core::int*) →* void};
#t9.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t9;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t12 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t13 in initial) {
final core::int* #t14 = #t13 as{TypeError} core::int*;
#t12.{core::Set::add}{Invariant}(#t14){(core::int*) →* core::bool*};
}
if(true)
#t12.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
#t12.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
#t12.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
#t12.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t12;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
static method foldInitialSpread3() void {
core::List<core::num*>* initial = <core::num*>[0, 1, 2];
core::List<core::int*>* list = block {
final core::List<core::int*>* #t15 = <core::int*>[];
for (final dynamic #t16 in initial) {
final core::int* #t17 = #t16 as{TypeError} core::int*;
#t15.{core::List::add}{Invariant}(#t17){(core::int*) →* void};
}
if(true)
#t15.{core::List::add}{Invariant}(3){(core::int*) →* void};
#t15.{core::List::add}{Invariant}(4){(core::int*) →* void};
#t15.{core::List::add}{Invariant}(5){(core::int*) →* void};
#t15.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t15;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t18 = col::LinkedHashSet::•<core::int*>();
for (final dynamic #t19 in initial) {
final core::int* #t20 = #t19 as{TypeError} core::int*;
#t18.{core::Set::add}{Invariant}(#t20){(core::int*) →* core::bool*};
}
if(true)
#t18.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
#t18.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
#t18.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
#t18.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t18;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
static method foldInitialSpread4() void {
core::Iterable<core::int*>* initial = <core::int*>[0, 1, 2];
core::List<core::int*>* list = block {
final core::List<core::int*>* #t21 = core::List::of<core::int*>(initial);
if(true)
#t21.{core::List::add}{Invariant}(3){(core::int*) →* void};
#t21.{core::List::add}{Invariant}(4){(core::int*) →* void};
#t21.{core::List::add}{Invariant}(5){(core::int*) →* void};
#t21.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t21;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t22 = col::LinkedHashSet::of<core::int*>(initial);
if(true)
#t22.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
#t22.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
#t22.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
#t22.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t22;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
static method foldInitialSpread5() void {
core::List<core::int*>* initial = <core::int*>[0, 1, 2];
core::List<core::int*>* list = block {
final core::List<core::int*>* #t23 = core::List::of<core::int*>(initial);
if(true)
#t23.{core::List::add}{Invariant}(3){(core::int*) →* void};
#t23.{core::List::add}{Invariant}(4){(core::int*) →* void};
#t23.{core::List::add}{Invariant}(5){(core::int*) →* void};
#t23.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t23;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t24 = col::LinkedHashSet::of<core::int*>(initial);
if(true)
#t24.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
#t24.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
#t24.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
#t24.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t24;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
static method foldInitialSpread6() void {
core::List<core::int*>* initial = <core::int*>[0, 1, 2];
core::List<core::int*>* list = block {
final core::List<core::int*>* #t25 = <core::int*>[];
final core::Iterable<core::int*>* #t26 = initial;
if(!(#t26 == null))
#t25.{core::List::addAll}{Invariant}(#t26){(core::Iterable<core::int*>*) →* void};
if(true)
#t25.{core::List::add}{Invariant}(3){(core::int*) →* void};
#t25.{core::List::add}{Invariant}(4){(core::int*) →* void};
#t25.{core::List::add}{Invariant}(5){(core::int*) →* void};
#t25.{core::List::add}{Invariant}(6){(core::int*) →* void};
} =>#t25;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), list);
core::Set<core::int*>* set = block {
final core::Set<core::int*>* #t27 = col::LinkedHashSet::•<core::int*>();
final core::Iterable<core::int*>* #t28 = initial;
if(!(#t28 == null))
#t27.{core::Set::addAll}{Invariant}(#t28){(core::Iterable<core::int*>*) →* void};
if(true)
#t27.{core::Set::add}{Invariant}(3){(core::int*) →* core::bool*};
#t27.{core::Set::add}{Invariant}(4){(core::int*) →* core::bool*};
#t27.{core::Set::add}{Invariant}(5){(core::int*) →* core::bool*};
#t27.{core::Set::add}{Invariant}(6){(core::int*) →* core::bool*};
} =>#t27;
self::expect(core::List::generate<core::int*>(7, (core::int* i) core::int* => i), set.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::int*>*});
}
static method main() dynamic {
self::foldInitialElements();
self::foldInitialSpread1();
self::foldInitialSpread2();
self::foldInitialSpread3();
self::foldInitialSpread4();
self::foldInitialSpread5();
self::foldInitialSpread6();
}
static method expect(core::List<dynamic>* list1, core::List<dynamic>* list2) void {
if(!(list1.{core::List::length}{core::int*} =={core::num::==}{(core::Object*) →* core::bool*} list2.{core::List::length}{core::int*})) {
throw "Unexpected length. Expected ${list1.{core::List::length}{core::int*}}, actual ${list2.{core::List::length}{core::int*}}.";
}
for (core::int* i = 0; i.{core::num::<}(list1.{core::List::length}{core::int*}){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
if(!(list1.{core::List::[]}(i){(core::int*) →* dynamic} =={core::Object::==}{(core::Object*) →* core::bool*} list2.{core::List::[]}(i){(core::int*) →* dynamic})) {
throw "Unexpected element at index ${i}. Expected ${list1.{core::List::[]}(i){(core::int*) →* dynamic}}, actual ${list2.{core::List::[]}(i){(core::int*) →* dynamic}}.";
}
}
}