blob: c702f9d29ac524fab7a89ff58044aab33a57ebe5 [file] [log] [blame]
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}
}