| library #lib /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| import "dart:ffi" as ffi; |
| import "dart:async" as asy; |
| 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 useFinalizableAsyncStar(ffi::Finalizable finalizable) → asy::Stream<core::int> async* { |
| final self::MyFinalizable finalizable2 = new self::MyFinalizable::•(); |
| yield block { |
| final core::int :expressionValueWrappedFinalizable = self::doSomething(); |
| _in::reachabilityFence(finalizable); |
| _in::reachabilityFence(finalizable2); |
| } =>:expressionValueWrappedFinalizable; |
| final self::MyFinalizable finalizable3 = new self::MyFinalizable::•(); |
| await block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = asy::Future::sync<core::int>(() → core::int => 3); |
| _in::reachabilityFence(finalizable); |
| _in::reachabilityFence(finalizable2); |
| _in::reachabilityFence(finalizable3); |
| } =>:expressionValueWrappedFinalizable; |
| final self::MyFinalizable finalizable4 = new self::MyFinalizable::•(); |
| if(new core::DateTime::now().{core::DateTime::millisecondsSinceEpoch}{core::int} =={core::num::==}{(core::Object) → core::bool} 4) { |
| { |
| _in::reachabilityFence(finalizable); |
| _in::reachabilityFence(finalizable2); |
| _in::reachabilityFence(finalizable3); |
| _in::reachabilityFence(finalizable4); |
| return; |
| } |
| } |
| yield block { |
| final core::int :expressionValueWrappedFinalizable = 5; |
| _in::reachabilityFence(finalizable); |
| _in::reachabilityFence(finalizable2); |
| _in::reachabilityFence(finalizable3); |
| _in::reachabilityFence(finalizable4); |
| } =>:expressionValueWrappedFinalizable; |
| _in::reachabilityFence(finalizable2); |
| _in::reachabilityFence(finalizable3); |
| _in::reachabilityFence(finalizable4); |
| _in::reachabilityFence(finalizable); |
| } |
| static method main() → void async /* futureValueType= void */ { |
| final self::MyFinalizable finalizable = new self::MyFinalizable::•(); |
| final asy::Stream<core::int> asyncStarResult = self::useFinalizableAsyncStar(finalizable); |
| { |
| asy::Stream<core::int> :stream = asyncStarResult; |
| asy::_StreamIterator<core::int>? :for-iterator = new asy::_StreamIterator::•<core::int>(:stream); |
| try |
| while (let dynamic #t1 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) { |
| final core::int element = :for-iterator.{asy::_StreamIterator::current}{core::int}; |
| { |
| core::print(element); |
| } |
| } |
| finally |
| if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int>?} == null)) |
| await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>}; |
| } |
| _in::reachabilityFence(finalizable); |
| } |