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

# Test that constant set literals works as expected.

type: newworld
strong: true
worlds:
  - entry: "main.dart"
    sources:
      main.dart: |
        import 'lib.dart';

        const Set<String> foo = {};
        main() {
          print(foo);
          print(bar);
        }
      lib.dart: |
        const Set<String> bar = {"hello", "world"};
    expectedLibraryCount: 2
  - entry: "main.dart"
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - lib.dart
    sources:
      lib.dart: |
        const Set<int> bar = {42};
    expectedLibraryCount: 2
