| # Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file |
| # for details. All rights reserved. Use of this source code is governed by a |
| # BSD-style license that can be found in the LICENSE.md file. |
| |
| # Reproduces https://dartbug.com/46666. |
| |
| type: newworld |
| worlds: |
| - entry: b.dart |
| sources: |
| a.dart: | |
| import 'dart:ffi'; |
| |
| class StructA extends Struct { |
| external Pointer<Void> a1; |
| external Pointer<Void> a2; |
| external Pointer<Void> a3; |
| external NestedStruct blah; |
| } |
| |
| class NestedStruct extends Struct { |
| external Pointer<Void> n1; |
| external Pointer<Void> n2; |
| external Pointer<Void> n3; |
| } |
| b.dart: | |
| import 'dart:ffi'; |
| import 'dart:isolate'; |
| import 'dart:async'; |
| |
| import 'a.dart'; |
| |
| class StructB extends Struct { |
| external StructA b1; |
| } |
| |
| void periodic() { |
| print(sizeOf<StructB>()); |
| } |
| |
| void main() { |
| Timer.periodic(const Duration(seconds: 1), (_) => periodic()); |
| } |
| expectedLibraryCount: 2 |
| |
| - entry: b.dart |
| worldType: updated |
| expectInitializeFromDill: false |
| invalidate: |
| - b.dart |
| expectedLibraryCount: 2 |
| expectsRebuildBodiesOnly: false |