# 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.

type: newworld
worlds:
  - entry: first.dart
    experiments: alternative-invalidation-strategy
    sources:
      first.dart: |
        import 'second.dart';

        main() {
          method1();
          method2();
        }
        method1() {}
      second.dart: |
        import 'first.dart';

        main() {
          method1();
          method2();
        }
        method2() {}
    expectedLibraryCount: 2
  - entry: second.dart
    experiments: alternative-invalidation-strategy
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - second.dart
    sources:
      second.dart: |
        import 'first.dart';

        main() {
          method1();
          method2();
        }
        method2() {
          print('method2');
        }
    expectedLibraryCount: 2
    expectsRebuildBodiesOnly: true
