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

# Compile an application with a .packages.
# Then delete the content of .packages, still using the package in code.
# This should be an error.

type: newworld
strong: false
worlds:
  - entry: main.dart
    sources:
      main.dart: |
        import "package:dummy/b.dart";
        main() {
          print("hello");
          b();
        }
      package/b.dart: |
        b() {
          print("hello from package");
        }
      .packages: dummy:${outDirUri}package
    expectedLibraryCount: 2
  - entry: main.dart
    worldType: updated
    expectInitializeFromDill: false
    checkInvalidatedFiles: false
    invalidate:
      - .packages
    sources:
      .packages:
    errors: true
    expectedLibraryCount: 1