| library #lib /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| import "dart:ffi" as ffi; |
| import "dart:_internal" as _in; |
| import "dart:async" as asy; |
| import "dart:io" as io; |
| |
| import "dart:ffi"; |
| import "dart:io"; |
| |
| class A extends core::Object implements ffi::Finalizable { |
| constructor •() → self::A |
| : super core::Object::•() { |
| let final ffi::NativeFinalizer #t1 = [@vm.inferred-type.metadata=dart.ffi::_NativeFinalizer?] self::_nativeFinalizer in let final ffi::Pointer<ffi::Void> #t2 = [@vm.inferred-type.metadata=dart.ffi::Pointer?] ffi::Pointer::fromAddress<ffi::Void>(1) in let final core::int #t3 = [@vm.direct-call.metadata=dart.core::_IntegerImplementation.<<] [@vm.inferred-type.metadata=int (skip check)] 1.{core::int::<<}(32){(core::int) → core::int} in [@vm.direct-call.metadata=dart.ffi::_NativeFinalizer.attach??] [@vm.inferred-type.metadata=!? (skip check)] #t1.{ffi::NativeFinalizer::attach}(this, #t2, this, #t3){(ffi::Finalizable, ffi::Pointer<ffi::Void>, {detach: core::Object?, externalSize: core::int?}) → void}; |
| _in::reachabilityFence(this); |
| } |
| } |
| class B extends core::Object implements ffi::Finalizable { |
| [@vm.inferred-type.metadata=#lib::A] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:1] final field self::A a; |
| constructor •([@vm.inferred-type.metadata=#lib::A] self::A a) → self::B |
| : self::B::a = a, super core::Object::•() { |
| ; |
| _in::reachabilityFence(this); |
| _in::reachabilityFence(a); |
| } |
| } |
| [@vm.inferred-type.metadata=dart.ffi::Pointer?]static final field ffi::Pointer<ffi::NativeFunction<(ffi::Pointer<ffi::NativeType>) → ffi::Void>> free = [@vm.direct-call.metadata=dart.ffi::DynamicLibrary.lookup??] [@vm.inferred-type.metadata=dart.ffi::Pointer? (skip check)] [@vm.inferred-type.metadata=dart.ffi::DynamicLibrary?] 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>>}; |
| [@vm.inferred-type.metadata=dart.ffi::_NativeFinalizer?]static final field ffi::NativeFinalizer _nativeFinalizer = new ffi::_NativeFinalizer::•([@vm.inferred-type.metadata=dart.ffi::Pointer?] 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 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] core::_GrowableList::•<core::int>(0); |
| asy::Future::doWhile(() → core::bool { |
| [@vm.call-site-attributes.metadata=receiverType:dart.core::List<dart.core::int>] [@vm.direct-call.metadata=dart.core::_GrowableList.add] [@vm.inferred-type.metadata=!? (skip check)] l.{core::List::add}(1){(core::int) → void}; |
| return true; |
| }); |
| await block { |
| final asy::Future<io::ProcessSignal> :expressionValueWrappedFinalizable = [@vm.direct-call.metadata=dart.async::Stream.first] [@vm.direct-call.metadata=dart.io::ProcessSignal.watch] [@vm.inferred-type.metadata=dart.async::_BroadcastStream<dart.io::ProcessSignal> (skip check)] #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} |
| } |