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

# Reproduce a crash.

type: newworld
worlds:
  - entry: main.dart
    sources:
      main.dart: |
        import 'file1.dart';

        class Class1 extends Class2 {}
      file1.dart: |
        import 'file2.dart';

        class Class2 extends Class3 {
          Class3? foo;
        }
      file2.dart: |
        abstract class Class3 {
          Class3? foo;
        }
    expectedLibraryCount: 3

  - entry: main.dart
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    expectedLibraryCount: 3
    advancedInvalidation: bodiesOnly

  - entry: main.dart
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - file2.dart
    expectedLibraryCount: 3
    advancedInvalidation: bodiesOnly

  - entry: main.dart
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    expectedLibraryCount: 3
    advancedInvalidation: bodiesOnly
