blob: 2ec9f565d3d0ab48c9f348717881a9fda91400ff [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "cache_lookups_lib.dart" as cac;
import "org-dartlang-testcase:///cache_lookups_lib.dart";
class Class extends core::Object {
synthetic constructor •() self::Class
: super core::Object::•()
;
get field() core::int {
self::counter = self::counter.{core::num::+}(1){(core::num) core::int};
return 42;
}
}
static field core::int counter = 0;
static method test(dynamic o) dynamic {
#L1:
{
final synthesized dynamic #0#0 = o;
synthesized core::int #0#2;
synthesized core::bool #0#2#isSet = false;
synthesized core::bool #0#10;
synthesized core::bool #0#10#isSet = false;
synthesized dynamic #0#12;
synthesized core::bool #0#12#isSet = false;
synthesized dynamic #0#13;
synthesized core::bool #0#13#isSet = false;
{
if(#0#0 is self::Class && #C1 =={core::num::==}{(core::Object) → core::bool} (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t1 = #0#2#isSet = true in #0#2 = #0#0{self::Class}.{self::Class::field}{core::int}) || #0#0 is self::Class && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#2#isSet ?{core::int} #0#2{core::int} : let final dynamic #t2 = #0#2#isSet = true in #0#2 = #0#0{self::Class}.{self::Class::field}{core::int})) {
{
core::print("Class");
break #L1;
}
}
}
{
hoisted core::int a;
if(#0#0 is core::List<dynamic> && (#0#10#isSet ?{core::bool} #0#10{core::bool} : let final dynamic #t3 = #0#10#isSet = true in #0#10 = #0#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3) && ((#0#12#isSet ?{dynamic} #0#12{dynamic} : let final dynamic #t4 = #0#12#isSet = true in #0#12 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) is core::int && (let final dynamic #t5 = a = (#0#12#isSet ?{dynamic} #0#12{dynamic} : let final dynamic #t6 = #0#12#isSet = true in #0#12 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::int in true)) && #C2 =={core::num::==}{(core::Object) → core::bool} (#0#13#isSet ?{dynamic} #0#13{dynamic} : let final dynamic #t7 = #0#13#isSet = true in #0#13 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic}) || #0#0 is core::List<dynamic> && (#0#10#isSet ?{core::bool} #0#10{core::bool} : let final dynamic #t8 = #0#10#isSet = true in #0#10 = #0#0{core::List<dynamic>}.{core::List::length}{core::int} =={core::num::==}{(core::Object) → core::bool} #C3) && ((#0#12#isSet ?{dynamic} #0#12{dynamic} : let final dynamic #t9 = #0#12#isSet = true in #0#12 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) is core::int && (let final dynamic #t10 = a = (#0#12#isSet ?{dynamic} #0#12{dynamic} : let final dynamic #t11 = #0#12#isSet = true in #0#12 = #0#0{core::List<dynamic>}.{core::List::[]}(0){(core::int) → dynamic}) as{Unchecked} core::int in true)) && #C3 =={core::num::==}{(core::Object) → core::bool} (#0#13#isSet ?{dynamic} #0#13{dynamic} : let final dynamic #t12 = #0#13#isSet = true in #0#13 = #0#0{core::List<dynamic>}.{core::List::[]}(1){(core::int) → dynamic})) {
{
core::print("List");
}
}
}
}
}
static method main() dynamic {
self::expect(0, self::counter);
self::test(null);
self::expect(0, self::counter);
self::test(new self::Class::•());
self::expect(1, self::counter);
self::test(new cac::CustomList::•<core::int>(<core::int>[0, 1]));
self::expect(2, self::counter);
self::test(new cac::CustomList::•<core::int>(<core::int>[0, 2]));
self::expect(3, self::counter);
self::test(new cac::CustomList::•<core::int>(<core::int>[0, 3]));
self::expect(4, self::counter);
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual))
throw "Expected ${expected}, actual ${actual}";
}
library;
import self as cac;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:math" as math;
import "cache_lookups.dart" as self;
import "dart:collection";
import "org-dartlang-testcase:///cache_lookups.dart";
abstract class _CustomList&Object&ListMixin<E extends core::Object? = dynamic> = core::Object with col::ListBase<cac::_CustomList&Object&ListMixin::E%> /*isAnonymousMixin,hasConstConstructor*/ {
const synthetic constructor •() cac::_CustomList&Object&ListMixin<cac::_CustomList&Object&ListMixin::E%>
: super core::Object::•()
;
mixin-super-stub get first() cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::first};
mixin-super-stub set first(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) void
return super.{col::ListBase::first} = value;
mixin-super-stub get last() cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::last};
mixin-super-stub set last(covariant-by-class cac::_CustomList&Object&ListMixin::E% value) void
return super.{col::ListBase::last} = value;
mixin-super-stub get iterator() core::Iterator<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::iterator};
mixin-super-stub method elementAt(core::int index) cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::elementAt}(index);
mixin-super-stub method followedBy(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> other) core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::followedBy}(other);
mixin-super-stub method forEach((cac::_CustomList&Object&ListMixin::E%) void action) void
return super.{col::ListBase::forEach}(action);
mixin-super-stub get isEmpty() core::bool
return super.{col::ListBase::isEmpty};
mixin-super-stub get isNotEmpty() core::bool
return super.{col::ListBase::isNotEmpty};
mixin-super-stub get single() cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::single};
mixin-super-stub method contains(core::Object? element) core::bool
return super.{col::ListBase::contains}(element);
mixin-super-stub method every((cac::_CustomList&Object&ListMixin::E%) core::bool test) core::bool
return super.{col::ListBase::every}(test);
mixin-super-stub method any((cac::_CustomList&Object&ListMixin::E%) core::bool test) core::bool
return super.{col::ListBase::any}(test);
mixin-super-stub method firstWhere((cac::_CustomList&Object&ListMixin::E%) core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::firstWhere}(test, orElse: orElse);
mixin-super-stub method lastWhere((cac::_CustomList&Object&ListMixin::E%) core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::lastWhere}(test, orElse: orElse);
mixin-super-stub method singleWhere((cac::_CustomList&Object&ListMixin::E%) core::bool test, {covariant-by-class () →? cac::_CustomList&Object&ListMixin::E% orElse = #C4}) → cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::singleWhere}(test, orElse: orElse);
mixin-super-stub method join([core::String separator = #C5]) → core::String
return super.{col::ListBase::join}(separator);
mixin-super-stub method where((cac::_CustomList&Object&ListMixin::E%) core::bool test) core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::where}(test);
mixin-super-stub method whereType<T extends core::Object? = dynamic>() core::Iterable<cac::_CustomList&Object&ListMixin::whereType::T%>
return super.{col::ListBase::whereType}<cac::_CustomList&Object&ListMixin::whereType::T%>();
mixin-super-stub method map<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) cac::_CustomList&Object&ListMixin::map::T% f) core::Iterable<cac::_CustomList&Object&ListMixin::map::T%>
return super.{col::ListBase::map}<cac::_CustomList&Object&ListMixin::map::T%>(f);
mixin-super-stub method expand<T extends core::Object? = dynamic>((cac::_CustomList&Object&ListMixin::E%) core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%> f) core::Iterable<cac::_CustomList&Object&ListMixin::expand::T%>
return super.{col::ListBase::expand}<cac::_CustomList&Object&ListMixin::expand::T%>(f);
mixin-super-stub method reduce(covariant-by-class (cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) cac::_CustomList&Object&ListMixin::E% combine) cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::reduce}(combine);
mixin-super-stub method fold<T extends core::Object? = dynamic>(cac::_CustomList&Object&ListMixin::fold::T% initialValue, (cac::_CustomList&Object&ListMixin::fold::T%, cac::_CustomList&Object&ListMixin::E%) cac::_CustomList&Object&ListMixin::fold::T% combine) cac::_CustomList&Object&ListMixin::fold::T%
return super.{col::ListBase::fold}<cac::_CustomList&Object&ListMixin::fold::T%>(initialValue, combine);
mixin-super-stub method skip(core::int count) core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::skip}(count);
mixin-super-stub method skipWhile((cac::_CustomList&Object&ListMixin::E%) core::bool test) core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::skipWhile}(test);
mixin-super-stub method take(core::int count) core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::take}(count);
mixin-super-stub method takeWhile((cac::_CustomList&Object&ListMixin::E%) core::bool test) core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::takeWhile}(test);
mixin-super-stub method toList({core::bool growable = #C6}) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::toList}(growable: growable);
mixin-super-stub method toSet() core::Set<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::toSet}();
mixin-super-stub method add(covariant-by-class cac::_CustomList&Object&ListMixin::E% element) void
return super.{col::ListBase::add}(element);
mixin-super-stub method addAll(covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) void
return super.{col::ListBase::addAll}(iterable);
mixin-super-stub method remove(core::Object? element) core::bool
return super.{col::ListBase::remove}(element);
mixin-super-stub method _closeGap(core::int start, core::int end) void
return super.{col::ListBase::_closeGap}(start, end);
mixin-super-stub method removeWhere((cac::_CustomList&Object&ListMixin::E%) core::bool test) void
return super.{col::ListBase::removeWhere}(test);
mixin-super-stub method retainWhere((cac::_CustomList&Object&ListMixin::E%) core::bool test) void
return super.{col::ListBase::retainWhere}(test);
mixin-super-stub method _filter((cac::_CustomList&Object&ListMixin::E%) core::bool test, core::bool retainMatching) void
return super.{col::ListBase::_filter}(test, retainMatching);
mixin-super-stub method clear() void
return super.{col::ListBase::clear}();
mixin-super-stub method cast<R extends core::Object? = dynamic>() core::List<cac::_CustomList&Object&ListMixin::cast::R%>
return super.{col::ListBase::cast}<cac::_CustomList&Object&ListMixin::cast::R%>();
mixin-super-stub method removeLast() cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::removeLast}();
mixin-super-stub method sort([(cac::_CustomList&Object&ListMixin::E%, cac::_CustomList&Object&ListMixin::E%) →? core::int compare = #C4]) → void
return super.{col::ListBase::sort}(compare);
mixin-super-stub method shuffle([math::Random? random = #C4]) → void
return super.{col::ListBase::shuffle}(random);
mixin-super-stub method asMap() core::Map<core::int, cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::asMap}();
mixin-super-stub operator +(covariant-by-class core::List<cac::_CustomList&Object&ListMixin::E%> other) core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::+}(other);
mixin-super-stub method sublist(core::int start, [core::int? end = #C4]) → core::List<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::sublist}(start, end);
mixin-super-stub method getRange(core::int start, core::int end) core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::getRange}(start, end);
mixin-super-stub method removeRange(core::int start, core::int end) void
return super.{col::ListBase::removeRange}(start, end);
mixin-super-stub method fillRange(core::int start, core::int end, [covariant-by-class cac::_CustomList&Object&ListMixin::E? fill = #C4]) → void
return super.{col::ListBase::fillRange}(start, end, fill);
mixin-super-stub method setRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable, [core::int skipCount = #C1]) → void
return super.{col::ListBase::setRange}(start, end, iterable, skipCount);
mixin-super-stub method replaceRange(core::int start, core::int end, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> newContents) void
return super.{col::ListBase::replaceRange}(start, end, newContents);
mixin-super-stub method indexOf(covariant-by-class core::Object? element, [core::int start = #C1]) → core::int
return super.{col::ListBase::indexOf}(element, start);
mixin-super-stub method indexWhere((cac::_CustomList&Object&ListMixin::E%) core::bool test, [core::int start = #C1]) → core::int
return super.{col::ListBase::indexWhere}(test, start);
mixin-super-stub method lastIndexOf(covariant-by-class core::Object? element, [core::int? start = #C4]) → core::int
return super.{col::ListBase::lastIndexOf}(element, start);
mixin-super-stub method lastIndexWhere((cac::_CustomList&Object&ListMixin::E%) core::bool test, [core::int? start = #C4]) → core::int
return super.{col::ListBase::lastIndexWhere}(test, start);
mixin-super-stub method insert(core::int index, covariant-by-class cac::_CustomList&Object&ListMixin::E% element) void
return super.{col::ListBase::insert}(index, element);
mixin-super-stub method removeAt(core::int index) cac::_CustomList&Object&ListMixin::E%
return super.{col::ListBase::removeAt}(index);
mixin-super-stub method insertAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) void
return super.{col::ListBase::insertAll}(index, iterable);
mixin-super-stub method setAll(core::int index, covariant-by-class core::Iterable<cac::_CustomList&Object&ListMixin::E%> iterable) void
return super.{col::ListBase::setAll}(index, iterable);
mixin-super-stub get reversed() core::Iterable<cac::_CustomList&Object&ListMixin::E%>
return super.{col::ListBase::reversed};
mixin-super-stub method toString() core::String
return super.{col::ListBase::toString}();
}
class CustomList<E extends core::Object? = dynamic> extends cac::_CustomList&Object&ListMixin<cac::CustomList::E%> {
final field core::List<cac::CustomList::E%> list;
constructor •(core::List<cac::CustomList::E%> list) cac::CustomList<cac::CustomList::E%>
: cac::CustomList::list = list, super cac::_CustomList&Object&ListMixin::•()
;
get length() core::int {
self::counter = self::counter.{core::num::+}(1){(core::num) core::int};
return this.{cac::CustomList::list}{core::List<cac::CustomList::E%>}.{core::List::length}{core::int};
}
set length(core::int value) void {
this.{cac::CustomList::list}{core::List<cac::CustomList::E%>}.{core::List::length} = value;
}
operator [](core::int index) cac::CustomList::E%
return this.{cac::CustomList::list}{core::List<cac::CustomList::E%>}.{core::List::[]}(index){(core::int) cac::CustomList::E%};
operator []=(core::int index, covariant-by-class cac::CustomList::E% value) void {
this.{cac::CustomList::list}{core::List<cac::CustomList::E%>}.{core::List::[]=}(index, value){(core::int, cac::CustomList::E%) void};
}
}
constants {
#C1 = 0
#C2 = 1
#C3 = 2
#C4 = null
#C5 = ""
#C6 = true
}