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