| library #lib /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:ffi" as ffi; |
| import "dart:core" as core; |
| import "dart:_internal" as _in; |
| import "dart:async" as asy; |
| import "dart:io" as io; |
| |
| import "dart:ffi"; |
| import "dart:io"; |
| |
| typedef Free = ffi::NativeFunction<(ffi::Pointer<ffi::NativeType>) → ffi::Void>; |
| class A extends core::Object implements ffi::Finalizable { |
| constructor •() → self::A |
| : super core::Object::•() { |
| self::_nativeFinalizer.{ffi::NativeFinalizer::attach}(this, ffi::Pointer::fromAddress<ffi::Void>(1), detach: this, externalSize: 1.{core::int::<<}(32){(core::int) → core::int}){(ffi::Finalizable, ffi::Pointer<ffi::Void>, {detach: core::Object?, externalSize: core::int?}) → void}; |
| _in::reachabilityFence(this); |
| } |
| } |
| class B extends core::Object implements ffi::Finalizable { |
| final field self::A a; |
| constructor •(self::A a) → self::B |
| : self::B::a = a, super core::Object::•() { |
| ; |
| _in::reachabilityFence(this); |
| _in::reachabilityFence(a); |
| } |
| } |
| static final field ffi::Pointer<ffi::NativeFunction<(ffi::Pointer<ffi::NativeType>) → ffi::Void>> free = ffi::DynamicLibrary::process().{ffi::DynamicLibrary::lookup}<ffi::NativeFunction<(ffi::Pointer<ffi::NativeType>) → ffi::Void>>("free"){(core::String) → ffi::Pointer<ffi::NativeFunction<(ffi::Pointer<ffi::NativeType>) → ffi::Void>>}; |
| static final field ffi::NativeFinalizer _nativeFinalizer = new ffi::_NativeFinalizer::•(self::free); |
| static method main() → asy::Future<void> async /* futureValueType= void */ { |
| final self::B b = new self::B::•(new self::A::•()); |
| final core::List<core::int> l = core::_GrowableList::•<core::int>(0); |
| asy::Future::doWhile(() → core::bool { |
| [@vm.call-site-attributes.metadata=receiverType:dart.core::List<dart.core::int>] l.{core::List::add}(1){(core::int) → void}; |
| return true; |
| }); |
| await block { |
| final asy::Future<io::ProcessSignal> :expressionValueWrappedFinalizable = #C3.{io::ProcessSignal::watch}(){() → asy::Stream<io::ProcessSignal>}.{asy::Stream::first}{asy::Future<io::ProcessSignal>}; |
| _in::reachabilityFence(b); |
| } =>:expressionValueWrappedFinalizable; |
| _in::reachabilityFence(b); |
| } |
| constants { |
| #C1 = 2 |
| #C2 = "SIGINT" |
| #C3 = io::ProcessSignal {_signalNumber:#C1, _name:#C2} |
| } |