# 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
worlds:
  - entry: package:foo/main.dart
    errors: true
    sources:
      .dart_tool/package_config.json: |
        {
          "configVersion": 2,
          "packages": [
            {
              "name": "foo",
              "rootUri": ".."
            }
          ]
        }
      main.dart: |
        part 'lib.dart';
        main() {}
      lib.dart: |
        methodFromLib() {}
    expectedLibraryCount: 2

  - entry: package:foo/main.dart
    errors: true
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - main.dart
    expectedLibraryCount: 2
    advancedInvalidation: problemsInLibrary

  - entry: package:foo/main.dart
    errors: true
    worldType: updated
    expectInitializeFromDill: false
    invalidate:
      - lib.dart
    expectedLibraryCount: 2
    advancedInvalidation: bodiesOnly
