blob: aad007632a01d238dbfcb255e5a41f44dd4cfa22 [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 {
synthetic constructor •() self::MyFinalizable
: super core::Object::•()
;
}
static method doSomething() core::int
return 3;
static method useFinalizableSyncStar(ffi::Finalizable finalizable) core::Iterable<core::int> sync* {
yield block {
final core::int :expressionValueWrappedFinalizable = self::doSomething();
_in::reachabilityFence(finalizable);
} =>:expressionValueWrappedFinalizable;
final self::MyFinalizable finalizable2 = new self::MyFinalizable::•();
yield block {
final core::int :expressionValueWrappedFinalizable = 5;
_in::reachabilityFence(finalizable);
_in::reachabilityFence(finalizable2);
} =>:expressionValueWrappedFinalizable;
final self::MyFinalizable finalizable3 = new self::MyFinalizable::•();
yield block {
final core::int :expressionValueWrappedFinalizable = 10;
_in::reachabilityFence(finalizable);
_in::reachabilityFence(finalizable2);
_in::reachabilityFence(finalizable3);
} =>:expressionValueWrappedFinalizable;
_in::reachabilityFence(finalizable2);
_in::reachabilityFence(finalizable3);
_in::reachabilityFence(finalizable);
}
static method main() void {
final self::MyFinalizable finalizable = new self::MyFinalizable::•();
{
core::Iterator<core::int> :sync-for-iterator = self::useFinalizableSyncStar(finalizable).{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() core::bool}; ) {
final core::int element = :sync-for-iterator.{core::Iterator::current}{core::int};
{
core::print(element);
}
}
}
_in::reachabilityFence(finalizable);
}