blob: 83f3fb94a8c45ccc7252cce088e907b74134a2c4 [file] [log] [blame]
library #lib;
import self as self;
import "dart:ffi" as ffi;
import "dart:core" as core;
import "dart:_internal" as _in;
import "dart:ffi";
[@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
[@vm.closure-id=1]
static method testVoidNoArg() dynamic {
final ffi::Pointer<ffi::NativeFunction<() ffi::Void>> pointer = [@vm.inferred-type.metadata=dart.ffi::Pointer] ffi::Pointer::fromAddress<ffi::NativeFunction<() ffi::Void>>(3735928559);
final () void function = block {
[@vm.inferred-type.metadata=dart.ffi::Pointer] synthesized ffi::Pointer<ffi::NativeFunction<() ffi::Void>> #ffiTarget0 = pointer;
[@vm.closure-id=1]
@#C4
function #ffiClosure0() → void {
return ffi::_ffiCall<void>(#ffiTarget0);
}
} =>#ffiClosure0;
[@vm.direct-call.metadata=closure 1 in #lib::testVoidNoArg] [@vm.inferred-type.metadata=!? (receiver not int)] function(){() → void};
}
[@vm.inferred-return-type.metadata=int]
[@vm.closure-id=1]
[@vm.unboxing-info.metadata=()->i]
static method testIntInt() dynamic {
final ffi::Pointer<ffi::NativeFunction<(ffi::Int64) ffi::Int32>> pointer = [@vm.inferred-type.metadata=dart.ffi::Pointer] ffi::Pointer::fromAddress<ffi::NativeFunction<(ffi::Int64) ffi::Int32>>(3735928559);
final (core::int) core::int function = block {
[@vm.inferred-type.metadata=dart.ffi::Pointer] synthesized ffi::Pointer<ffi::NativeFunction<(ffi::Int64) ffi::Int32>> #ffiTarget1 = pointer;
[@vm.closure-id=1]
@#C6
function #ffiClosure1(core::int arg1) → core::int {
_in::_nativeEffect(arg1);
return [@vm.inferred-type.metadata=int] ffi::_ffiCall<core::int>(#ffiTarget1);
}
} =>#ffiClosure1;
return [@vm.direct-call.metadata=closure 1 in #lib::testIntInt] [@vm.inferred-type.metadata=int (receiver not int)] function(42){(core::int) → core::int};
}
[@vm.inferred-return-type.metadata=int]
[@vm.closure-id=1]
[@vm.unboxing-info.metadata=()->i]
static method testLeaf5Args() dynamic {
final ffi::Pointer<ffi::NativeFunction<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) ffi::Int32>> pointer = [@vm.inferred-type.metadata=dart.ffi::Pointer] ffi::Pointer::fromAddress<ffi::NativeFunction<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) ffi::Int32>>(3735928559);
final (core::int, core::int, core::int, core::int, core::int) core::int function = block {
[@vm.inferred-type.metadata=dart.ffi::Pointer] synthesized ffi::Pointer<ffi::NativeFunction<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) ffi::Int32>> #ffiTarget2 = pointer;
[@vm.closure-id=1]
@#C9
function #ffiClosure2(core::int arg1, core::int arg2, core::int arg3, core::int arg4, core::int arg5) → core::int {
_in::_nativeEffect(arg1);
_in::_nativeEffect(arg2);
_in::_nativeEffect(arg3);
_in::_nativeEffect(arg4);
_in::_nativeEffect(arg5);
return [@vm.inferred-type.metadata=int] ffi::_ffiCall<core::int>(#ffiTarget2);
}
} =>#ffiClosure2;
return [@vm.direct-call.metadata=closure 1 in #lib::testLeaf5Args] [@vm.inferred-type.metadata=int (receiver not int)] function(1, 2, 3, 4, 5){(core::int, core::int, core::int, core::int, core::int) → core::int};
}
[@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
static method main() void {
self::testVoidNoArg();
self::testIntInt();
self::testLeaf5Args();
}
constants {
#C1 = "vm:ffi:call-closure"
#C2 = false
#C3 = ffi::_FfiCall<() → ffi::Void> {isLeaf:#C2}
#C4 = core::pragma {name:#C1, options:#C3}
#C5 = ffi::_FfiCall<(ffi::Int64) → ffi::Int32> {isLeaf:#C2}
#C6 = core::pragma {name:#C1, options:#C5}
#C7 = true
#C8 = ffi::_FfiCall<(ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32, ffi::Int32) → ffi::Int32> {isLeaf:#C7}
#C9 = core::pragma {name:#C1, options:#C8}
}