# Copyright (c) 2020, 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
target: None
worlds:
  - entry: main.dart
    experiments: alternative-invalidation-strategy
    sources:
      main_lib1.dart: |
        class SuperClass {
          void method(covariant int i) {}
        }

        class Mixin {
          void method(num i) {}
        }

        class Class extends SuperClass with Mixin {}
      main_lib2.dart: |
        import 'main_lib1.dart';

        class SubClass extends Class {}

        method() => new SubClass().method(0);
      main.dart: |
        import 'main_lib2.dart';

        main() {
          method();
        }
    expectedLibraryCount: 3
  - entry: main.dart
    experiments: alternative-invalidation-strategy
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    sources:
      main.dart: |
        import 'main_lib2.dart';

        main() {
          method();
          method();
        }
    expectedLibraryCount: 3
    expectsRebuildBodiesOnly: true
  - entry: main.dart
    experiments: alternative-invalidation-strategy
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    sources:
      main.dart: |
        import 'main_lib2.dart';

        main() {
          method();
        }
    expectedLibraryCount: 3
    expectsRebuildBodiesOnly: true
