blob: 714dc607bd707d456286a1baae70c0e14b8a03ba [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::•()
;
}
[@vm.unboxing-info.metadata=()->i]static method doSomething() core::int
return 3;
static method useFinalizableSyncStar([@vm.inferred-type.metadata=#lib::MyFinalizable] 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 = [@vm.direct-call.metadata=dart.async::_SyncStarIterable.iterator] [@vm.inferred-type.metadata=dart.async::_SyncStarIterator] [@vm.inferred-type.metadata=dart.async::_SyncStarIterable] self::useFinalizableSyncStar(finalizable).{core::Iterable::iterator}{core::Iterator<core::int>};
for (; [@vm.direct-call.metadata=dart.async::_SyncStarIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool? (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(){() core::bool}; ) {
final core::int element = [@vm.direct-call.metadata=dart.async::_SyncStarIterator.current] [@vm.inferred-type.metadata=int?] :sync-for-iterator.{core::Iterator::current}{core::int};
{
core::print(element);
}
}
}
_in::reachabilityFence(finalizable);
}