| 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::•() |
| ; |
| method use() → asy::Future<core::int> async /* futureValueType= core::int */ { |
| return block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = self::doSomething(); |
| _in::reachabilityFence(this); |
| } =>:expressionValueWrappedFinalizable; |
| } |
| method use2() → asy::Future<core::int> async /* futureValueType= core::int */ { |
| return block { |
| final core::int :expressionValueWrappedFinalizable = await block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = self::doSomething(); |
| _in::reachabilityFence(this); |
| } =>:expressionValueWrappedFinalizable; |
| _in::reachabilityFence(this); |
| } =>:expressionValueWrappedFinalizable; |
| } |
| method use3() → asy::Future<core::int> { |
| return block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = self::doSomething(); |
| _in::reachabilityFence(this); |
| } =>:expressionValueWrappedFinalizable; |
| } |
| } |
| static method doSomething() → asy::Future<core::int> async /* futureValueType= core::int */ |
| return 3; |
| static method useFinalizableAsync(ffi::Finalizable finalizable) → asy::Future<core::int> async /* futureValueType= core::int */ { |
| await block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = asy::Future::sync<core::int>(() → core::int => 6); |
| _in::reachabilityFence(finalizable); |
| } =>:expressionValueWrappedFinalizable; |
| final self::MyFinalizable finalizable2 = new self::MyFinalizable::•(); |
| await block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = asy::Future::sync<core::int>(() → core::int => 5); |
| _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 => 4); |
| _in::reachabilityFence(finalizable); |
| _in::reachabilityFence(finalizable2); |
| _in::reachabilityFence(finalizable3); |
| } =>:expressionValueWrappedFinalizable; |
| return block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = self::doSomething(); |
| _in::reachabilityFence(finalizable); |
| _in::reachabilityFence(finalizable2); |
| _in::reachabilityFence(finalizable3); |
| } =>:expressionValueWrappedFinalizable; |
| } |
| static method main() → void async /* futureValueType= void */ { |
| final self::MyFinalizable finalizable = new self::MyFinalizable::•(); |
| final asy::Future<core::int> asyncResult = self::useFinalizableAsync(finalizable); |
| core::print(await block { |
| final asy::Future<core::int> :expressionValueWrappedFinalizable = asyncResult; |
| _in::reachabilityFence(finalizable); |
| } =>:expressionValueWrappedFinalizable); |
| _in::reachabilityFence(finalizable); |
| } |