# Copyright (c) 2022, 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.

# Recompiling with no change shouldn't change anything.
# http://dartbug.com/48897

type: newworld
worlds:
  - entry: main.dart
    errors: true
    sources:
      main.dart: |
        // @dart=2.12

        import "lib.dart";

        main() {
          Bar<int> x = new Bar<int>();
          print(x);
        }
      lib.dart: |
        // @dart=2.12
        class Foo<X> {}
        typedef Bar<X> = Foo<X>;

    expectedLibraryCount: 2

  - entry: main.dart
    errors: true
    worldType: updated
    compareToPrevious: true
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    expectedLibraryCount: 2
