| # Copyright (c) 2019, 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. |
| |
| # Compile an application, change a file, but don't change the outline. |
| # Test FFI compilation. Because FFI is special we can't expect to only |
| # compile the changed files. |
| |
| type: newworld |
| worlds: |
| - entry: main.dart |
| experiments: alternative-invalidation-strategy |
| sources: |
| main.dart: | |
| import 'lib.dart'; |
| |
| main() { |
| Coordinate coordinate = new Coordinate.allocate(42.0, 42.0, null); |
| print(coordinate.x); |
| print(coordinate.y); |
| print(coordinate.next); |
| } |
| lib.dart: | |
| import 'dart:ffi'; |
| class Coordinate extends Struct { |
| @Double() |
| double x; |
| |
| @Double() |
| double y; |
| |
| Pointer<Coordinate> next; |
| |
| factory Coordinate.allocate(double x, double y, Pointer<Coordinate> next) { |
| return null; |
| } |
| } |
| expectedLibraryCount: 2 |
| - entry: main.dart |
| experiments: alternative-invalidation-strategy |
| worldType: updated |
| expectInitializeFromDill: false |
| invalidate: |
| - main.dart |
| sources: |
| main.dart: | |
| import 'lib.dart'; |
| |
| main() { |
| Coordinate coordinate = new Coordinate.allocate(42.0, 42.0, null); |
| print(coordinate.x); |
| print(coordinate.y); |
| print(coordinate.next); |
| print("Done!"); |
| } |
| expectedLibraryCount: 2 |
| expectsRebuildBodiesOnly: true |
| - entry: main.dart |
| experiments: alternative-invalidation-strategy |
| worldType: updated |
| expectInitializeFromDill: false |
| invalidate: |
| - lib.dart |
| sources: |
| lib.dart: | |
| import 'dart:ffi'; |
| class Coordinate extends Struct { |
| @Double() |
| double x; |
| |
| @Double() |
| double y; |
| |
| Pointer<Coordinate> next; |
| |
| factory Coordinate.allocate(double x, double y, Pointer<Coordinate> next) { |
| print("hello"); |
| return null; |
| } |
| } |
| expectedLibraryCount: 2 |
| expectsRebuildBodiesOnly: false |