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