# 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.
# Be in a package.

type: newworld
worlds:
  - entry: main.dart
    warnings: true # Warning: Interpreting this as package URI
    experiments: alternative-invalidation-strategy
    sources:
      main.dart: |
        // @dart=2.9
        import "lib.dart";
        main() {
          libMethod();
        }
      lib.dart: |
        // @dart=2.9
        libMethod() {
          print("Hello from lib!");
        }
      .packages: |
        foo:.
    expectedLibraryCount: 2
  - entry: main.dart
    warnings: true # Warning: Interpreting this as package URI
    experiments: alternative-invalidation-strategy
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    sources:
      main.dart: |
        // @dart=2.9
        import "lib.dart";
        main() {
          libMethod();
          print("Done!");
        }
    expectedLibraryCount: 2
    expectsRebuildBodiesOnly: true
  - entry: main.dart
    warnings: true # Warning: Interpreting this as package URI
    experiments: alternative-invalidation-strategy
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - lib.dart
    sources:
      lib.dart: |
        // @dart=2.9
        libMethod() {
          print("Hello from lib!!");
        }
    expectedLibraryCount: 2
    expectsRebuildBodiesOnly: true
