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

# Importing a package also via file uri gives two libraries with the same
# file uri --- that shouldn't crash experimental invalidation though.

type: newworld
worlds:
  - entry: main.dart
    experiments: const-functions
    sources:
      main.dart: |
        import "a.dart";
        import "b.dart";
        const String s1 = const A().toString();
        const String s2 = const B<List<int>>().toString();
        main() {
          print(s1);
          print(s2);
        }
      a.dart: |
        class A {
          const A();
        }
      b.dart: |
        class B<E> {
          const B();
        }
    expectedLibraryCount: 3

  - entry: main.dart
    experiments: const-functions
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    expectedLibraryCount: 3
