| 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); |
| } |