# 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.
# Force creation of "_exports#" caused by unserializable exports.

type: newworld
worlds:
  - entry: main.dart
    errors: true
    experiments: alternative-invalidation-strategy
    sources:
      main.dart: |
        export "lib1.dart" show x;
        export "lib2.dart" show x;
        main() {
          print("exports")
        }
      lib1.dart: |
        x() {
          print("lib1.x!");
        }
      lib2.dart: |
        x() {
          print("lib2.x!");
        }
    expectedLibraryCount: 3
  - entry: main.dart
    errors: true
    experiments: alternative-invalidation-strategy
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    sources:
      main.dart: |
        export "lib1.dart" show x;
        export "lib2.dart" show x;
        main() {
          print("exports!")
        }
    expectedLibraryCount: 3
    expectsRebuildBodiesOnly: false # For now, libraries with errors cannot have bodies rebuild.
