main = <No Member>;
library from "org-dartlang-test:///lib.dart" as lib {

  import "org-dartlang-test:///lib2.dart";

  @#C7
  class Y extends dart.ffi::Struct {
    synthetic constructor •() → lib::Y
      : super dart.ffi::Struct::•()
      ;
    constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Y
      : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
      ;
    @#C8
    get y1() → dart.core::int
      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()));
    @#C8
    set y1(dart.core::int #externalFieldValue) → void
      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
    @#C8
    get y2() → dart.core::int
      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()));
    @#C8
    set y2(dart.core::int #externalFieldValue) → void
      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C12).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
    @#C13
    get y3() → dart.core::int
      return dart.ffi::_loadUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()));
    @#C13
    set y3(dart.core::int #externalFieldValue) → void
      return dart.ffi::_storeUint64(this.{dart.ffi::_Compound::_typedDataBase}, (#C16).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
    @#C18
    static get #sizeOf() → dart.core::int*
      return (#C21).{dart.core::List::[]}(dart.ffi::_abi());
  }
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
additionalExports = (ffi::nullptr,
  ffi::unsized,
  ffi::sizeOf,
  ffi::Dart_NativeMessageHandler,
  ffi::Allocator,
  ffi::AllocatorAlloc,
  ffi::Array,
  ffi::ArrayArray,
  ffi::DartRepresentationOf,
  ffi::Dart_CObject,
  ffi::Double,
  ffi::DoubleArray,
  ffi::DoublePointer,
  ffi::DynamicLibrary,
  ffi::DynamicLibraryExtension,
  ffi::Float,
  ffi::FloatArray,
  ffi::FloatPointer,
  ffi::Handle,
  ffi::Int16,
  ffi::Int16Array,
  ffi::Int16Pointer,
  ffi::Int32,
  ffi::Int32Array,
  ffi::Int32Pointer,
  ffi::Int64,
  ffi::Int64Array,
  ffi::Int64Pointer,
  ffi::Int8,
  ffi::Int8Array,
  ffi::Int8Pointer,
  ffi::IntPtr,
  ffi::IntPtrArray,
  ffi::IntPtrPointer,
  ffi::NativeApi,
  ffi::NativeFunction,
  ffi::NativeFunctionPointer,
  ffi::NativePort,
  ffi::NativeType,
  ffi::Opaque,
  ffi::Packed,
  ffi::Pointer,
  ffi::PointerArray,
  ffi::PointerPointer,
  ffi::Struct,
  ffi::StructArray,
  ffi::StructPointer,
  ffi::Uint16,
  ffi::Uint16Array,
  ffi::Uint16Pointer,
  ffi::Uint32,
  ffi::Uint32Array,
  ffi::Uint32Pointer,
  ffi::Uint64,
  ffi::Uint64Array,
  ffi::Uint64Pointer,
  ffi::Uint8,
  ffi::Uint8Array,
  ffi::Uint8Pointer,
  ffi::Union,
  ffi::UnionArray,
  ffi::UnionPointer,
  ffi::Unsized,
  ffi::Void)

  export "org-dartlang-test:///lib3.dart";

}
library from "org-dartlang-test:///lib3.dart" as lib3 {
additionalExports = (ffi::nullptr,
  ffi::unsized,
  ffi::sizeOf,
  ffi::Dart_NativeMessageHandler,
  ffi::Allocator,
  ffi::AllocatorAlloc,
  ffi::Array,
  ffi::ArrayArray,
  ffi::DartRepresentationOf,
  ffi::Dart_CObject,
  ffi::Double,
  ffi::DoubleArray,
  ffi::DoublePointer,
  ffi::DynamicLibrary,
  ffi::DynamicLibraryExtension,
  ffi::Float,
  ffi::FloatArray,
  ffi::FloatPointer,
  ffi::Handle,
  ffi::Int16,
  ffi::Int16Array,
  ffi::Int16Pointer,
  ffi::Int32,
  ffi::Int32Array,
  ffi::Int32Pointer,
  ffi::Int64,
  ffi::Int64Array,
  ffi::Int64Pointer,
  ffi::Int8,
  ffi::Int8Array,
  ffi::Int8Pointer,
  ffi::IntPtr,
  ffi::IntPtrArray,
  ffi::IntPtrPointer,
  ffi::NativeApi,
  ffi::NativeFunction,
  ffi::NativeFunctionPointer,
  ffi::NativePort,
  ffi::NativeType,
  ffi::Opaque,
  ffi::Packed,
  ffi::Pointer,
  ffi::PointerArray,
  ffi::PointerPointer,
  ffi::Struct,
  ffi::StructArray,
  ffi::StructPointer,
  ffi::Uint16,
  ffi::Uint16Array,
  ffi::Uint16Pointer,
  ffi::Uint32,
  ffi::Uint32Array,
  ffi::Uint32Pointer,
  ffi::Uint64,
  ffi::Uint64Array,
  ffi::Uint64Pointer,
  ffi::Uint8,
  ffi::Uint8Array,
  ffi::Uint8Pointer,
  ffi::Union,
  ffi::UnionArray,
  ffi::UnionPointer,
  ffi::Unsized,
  ffi::Void)

  export "dart:ffi";

}
library from "org-dartlang-test:///main.dart" as main {

  import "dart:ffi";
  import "org-dartlang-test:///lib.dart";

  @#C25
  class X extends dart.ffi::Struct {
    synthetic constructor •() → main::X
      : super dart.ffi::Struct::•()
      ;
    constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → main::X
      : super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
      ;
    get x1() → lib::Y
      return new lib::Y::#fromTypedDataBase( block {
        dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
        dart.core::int #offset = (#C10).{dart.core::List::[]}(dart.ffi::_abi());
      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
    set x1(lib::Y #externalFieldValue) → void
      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C10).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
    get x2() → lib::Y
      return new lib::Y::#fromTypedDataBase( block {
        dart.core::Object #typedDataBase = this.{dart.ffi::_Compound::_typedDataBase};
        dart.core::int #offset = (#C21).{dart.core::List::[]}(dart.ffi::_abi());
      } =>#typedDataBase is dart.ffi::Pointer<dynamic> ?{dart.core::Object} dart.ffi::_fromAddress<lib::Y>(#typedDataBase.{dart.ffi::Pointer::address}.{dart.core::num::+}(#offset)) : let dart.typed_data::TypedData #typedData = dart._internal::unsafeCast<dart.typed_data::TypedData>(#typedDataBase) in #typedData.{dart.typed_data::TypedData::buffer}.{dart.typed_data::ByteBuffer::asUint8List}(#typedData.{dart.typed_data::TypedData::offsetInBytes}.{dart.core::num::+}(#offset), (#C21).{dart.core::List::[]}(dart.ffi::_abi())));
    set x2(lib::Y #externalFieldValue) → void
      return dart.ffi::_memCopy(this.{dart.ffi::_Compound::_typedDataBase}, (#C21).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue.{dart.ffi::_Compound::_typedDataBase}, #C9, (#C21).{dart.core::List::[]}(dart.ffi::_abi()));
    @#C8
    get x3() → dart.core::int
      return dart.ffi::_loadUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()));
    @#C8
    set x3(dart.core::int #externalFieldValue) → void
      return dart.ffi::_storeUint8(this.{dart.ffi::_Compound::_typedDataBase}, (#C28).{dart.core::List::[]}(dart.ffi::_abi()), #externalFieldValue);
    @#C18
    static get #sizeOf() → dart.core::int*
      return (#C31).{dart.core::List::[]}(dart.ffi::_abi());
  }
}
constants  {
  #C1 = "vm:ffi:struct-fields"
  #C2 = TypeLiteralConstant(dart.ffi::Uint8)
  #C3 = TypeLiteralConstant(dart.ffi::Uint64)
  #C4 = <dart.core::Type>[#C2, #C2, #C3]
  #C5 = null
  #C6 = dart.ffi::_FfiStructLayout {fieldTypes:#C4, packing:#C5}
  #C7 = dart.core::pragma {name:#C1, options:#C6}
  #C8 = dart.ffi::Uint8 {}
  #C9 = 0
  #C10 = <dart.core::int*>[#C9, #C9, #C9]
  #C11 = 1
  #C12 = <dart.core::int*>[#C11, #C11, #C11]
  #C13 = dart.ffi::Uint64 {}
  #C14 = 8
  #C15 = 4
  #C16 = <dart.core::int*>[#C14, #C15, #C14]
  #C17 = "vm:prefer-inline"
  #C18 = dart.core::pragma {name:#C17, options:#C5}
  #C19 = 16
  #C20 = 12
  #C21 = <dart.core::int*>[#C19, #C20, #C19]
  #C22 = TypeLiteralConstant(lib::Y)
  #C23 = <dart.core::Type>[#C22, #C22, #C2]
  #C24 = dart.ffi::_FfiStructLayout {fieldTypes:#C23, packing:#C5}
  #C25 = dart.core::pragma {name:#C1, options:#C24}
  #C26 = 32
  #C27 = 24
  #C28 = <dart.core::int*>[#C26, #C27, #C26]
  #C29 = 40
  #C30 = 28
  #C31 = <dart.core::int*>[#C29, #C30, #C29]
}
