blob: 987ce3ed22cca8c9b82561a2f284f5d34abd6c9f [file] [log] [blame]
library #lib /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:ffi" as ffi;
import "dart:_internal" as _in;
import "dart:ffi";
class MyFinalizable extends core::Object implements ffi::Finalizable {
field core::int internalValue = 4;
synthetic constructor •() self::MyFinalizable
: super core::Object::•()
;
}
static method main() void {
final self::MyFinalizable finalizable = new self::MyFinalizable::•();
{
final self::MyFinalizable finalizable2 = new self::MyFinalizable::•();
_in::reachabilityFence(finalizable2);
}
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 42) {
{
_in::reachabilityFence(finalizable);
return;
}
}
else {
try
try {
final self::MyFinalizable finalizable3 = new self::MyFinalizable::•();
{}
_in::reachabilityFence(finalizable3);
}
on core::Exception catch(no-exception-var) {
final self::MyFinalizable finalizable4 = new self::MyFinalizable::•();
_in::reachabilityFence(finalizable4);
}
finally {
final self::MyFinalizable finalizable5 = new self::MyFinalizable::•();
_in::reachabilityFence(finalizable5);
}
try {
final self::MyFinalizable finalizable13 = new self::MyFinalizable::•();
try
try {
final self::MyFinalizable finalizable14 = new self::MyFinalizable::•();
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 100) {
throw block {
final core::Exception :expressionValueWrappedFinalizable = core::Exception::•("foo");
_in::reachabilityFence(finalizable14);
} =>:expressionValueWrappedFinalizable;
}
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 101) {
throw block {
final core::Error :expressionValueWrappedFinalizable = new core::Error::•();
_in::reachabilityFence(finalizable);
_in::reachabilityFence(finalizable13);
_in::reachabilityFence(finalizable14);
} =>:expressionValueWrappedFinalizable;
}
_in::reachabilityFence(finalizable14);
}
on core::Exception catch(final core::Exception e) {
core::print(e);
block {
_in::reachabilityFence(finalizable13);
} =>rethrow;
}
finally {
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 1000) {
throw block {
final core::Exception :expressionValueWrappedFinalizable = core::Exception::•("bar");
_in::reachabilityFence(finalizable13);
} =>:expressionValueWrappedFinalizable;
}
}
_in::reachabilityFence(finalizable13);
}
on core::Exception catch(final core::Exception e) {
core::print(e);
}
}
#L1:
switch(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int}) {
#L2:
case #C1:
case #C2:
{
final self::MyFinalizable finalizable6 = new self::MyFinalizable::•();
{
_in::reachabilityFence(finalizable);
_in::reachabilityFence(finalizable6);
return;
}
}
#L3:
case #C3:
{
final self::MyFinalizable finalizable7 = new self::MyFinalizable::•();
{
_in::reachabilityFence(finalizable7);
break #L1;
}
}
#L4:
case #C4:
{
final self::MyFinalizable finalizable70 = new self::MyFinalizable::•();
#L5:
switch(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int}) {
#L6:
case #C5:
{
final self::MyFinalizable finalizable71 = new self::MyFinalizable::•();
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 44) {
{
_in::reachabilityFence(finalizable70);
_in::reachabilityFence(finalizable71);
continue #L4;
}
}
{
_in::reachabilityFence(finalizable71);
break #L5;
}
}
}
{
_in::reachabilityFence(finalizable70);
continue #L3;
}
}
#L7:
default:
{
final self::MyFinalizable finalizable8 = new self::MyFinalizable::•();
_in::reachabilityFence(finalizable8);
}
}
#L8:
for (core::int i = 0; i.{core::num::<}(10){(core::num) core::bool}; i = i.{core::num::+}(1){(core::num) core::int})
#L9:
{
final self::MyFinalizable finalizable9 = new self::MyFinalizable::•();
for (core::int j = 0; j.{core::num::<}(10){(core::num) core::bool}; j = j.{core::num::+}(1){(core::num) core::int})
#L10:
{
final self::MyFinalizable finalizable10 = new self::MyFinalizable::•();
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 42) {
{
_in::reachabilityFence(finalizable9);
_in::reachabilityFence(finalizable10);
break #L8;
}
}
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 1337) {
{
_in::reachabilityFence(finalizable9);
_in::reachabilityFence(finalizable10);
break #L8;
}
}
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 1) {
{
_in::reachabilityFence(finalizable10);
break #L10;
}
}
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 3) {
{
_in::reachabilityFence(finalizable9);
_in::reachabilityFence(finalizable10);
break #L9;
}
}
_in::reachabilityFence(finalizable10);
}
_in::reachabilityFence(finalizable9);
}
#L11:
{
final self::MyFinalizable finalizable11 = new self::MyFinalizable::•();
#L12:
{
final self::MyFinalizable finalizable12 = new self::MyFinalizable::•();
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 1) {
{
_in::reachabilityFence(finalizable11);
_in::reachabilityFence(finalizable12);
break #L11;
}
}
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 3) {
{
_in::reachabilityFence(finalizable12);
break #L12;
}
}
_in::reachabilityFence(finalizable12);
}
_in::reachabilityFence(finalizable11);
}
for (core::int i = 0; i.{core::num::<}(10){(core::num) core::bool}; i = i.{core::num::+}(1){(core::num) core::int}) {
final self::MyFinalizable finalizable15 = new self::MyFinalizable::•();
_in::reachabilityFence(finalizable15);
}
core::int i = 0;
while (i.{core::num::<}(10){(core::num) core::bool}) {
final self::MyFinalizable finalizable16 = new self::MyFinalizable::•();
i = i.{core::num::+}(1){(core::num) core::int};
_in::reachabilityFence(finalizable16);
}
{
core::Iterator<ffi::Finalizable> :sync-for-iterator = core::Iterable::generate<ffi::Finalizable>(5, (core::int index) self::MyFinalizable => new self::MyFinalizable::•()).{core::Iterable::iterator}{core::Iterator<ffi::Finalizable>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() core::bool}; ) {
final ffi::Finalizable finalizable17 = :sync-for-iterator.{core::Iterator::current}{ffi::Finalizable};
{
_in::reachabilityFence(finalizable17);
}
}
}
i = 0;
for (ffi::Finalizable finalizable18 = new self::MyFinalizable::•(); i.{core::num::<}(10){(core::num) core::bool}; i = i.{core::num::+}(1){(core::num) core::int}) {
_in::reachabilityFence(finalizable18);
}
_in::reachabilityFence(finalizable);
}
static method doSomething(core::int a) core::int
return a;
static method createClosure() () void {
final self::MyFinalizable finalizable20 = new self::MyFinalizable::•();
return block {
final () void :expressionValueWrappedFinalizable = () void {
if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) core::bool} 42) {
{
_in::reachabilityFence(finalizable20);
return;
}
}
self::doSomething(finalizable20.{self::MyFinalizable::internalValue}{core::int});
_in::reachabilityFence(finalizable20);
};
_in::reachabilityFence(finalizable20);
} =>:expressionValueWrappedFinalizable;
}
static method createNestedClosure() () () () void {
final self::MyFinalizable finalizable40 = new self::MyFinalizable::•();
return block {
final () () () void :expressionValueWrappedFinalizable = () () () void {
final self::MyFinalizable finalizable41 = new self::MyFinalizable::•();
return block {
final () () void :expressionValueWrappedFinalizable = () () void {
final self::MyFinalizable finalizable42 = new self::MyFinalizable::•();
return block {
final () void :expressionValueWrappedFinalizable = () void {
self::doSomething(finalizable40.{self::MyFinalizable::internalValue}{core::int});
self::doSomething(finalizable41.{self::MyFinalizable::internalValue}{core::int});
self::doSomething(finalizable42.{self::MyFinalizable::internalValue}{core::int});
_in::reachabilityFence(finalizable40);
_in::reachabilityFence(finalizable41);
_in::reachabilityFence(finalizable42);
};
_in::reachabilityFence(finalizable40);
_in::reachabilityFence(finalizable41);
_in::reachabilityFence(finalizable42);
} =>:expressionValueWrappedFinalizable;
};
_in::reachabilityFence(finalizable40);
_in::reachabilityFence(finalizable41);
} =>:expressionValueWrappedFinalizable;
};
_in::reachabilityFence(finalizable40);
} =>:expressionValueWrappedFinalizable;
}
static method createBadClosure() () void {
final self::MyFinalizable finalizable21 = new self::MyFinalizable::•();
final core::int internalValue = finalizable21.{self::MyFinalizable::internalValue}{core::int};
return block {
final () void :expressionValueWrappedFinalizable = () void {
self::doSomething(internalValue);
};
_in::reachabilityFence(finalizable21);
} =>:expressionValueWrappedFinalizable;
}
static method reassignment() void {
self::MyFinalizable finalizable30 = new self::MyFinalizable::•();
self::doSomething(4);
finalizable30 = block {
final self::MyFinalizable :expressionValueWrappedFinalizable = new self::MyFinalizable::•();
_in::reachabilityFence(finalizable30);
} =>:expressionValueWrappedFinalizable;
_in::reachabilityFence(finalizable30);
}
constants {
#C1 = 1
#C2 = 2
#C3 = 3
#C4 = 4
#C5 = 5
}