# 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 package and use it.
# Then remove the package from .packages and remove any use of it.
# The package is still included in the dill file we initialize from,
# but shouldn't cause trouble, nor be included in the output.

type: newworld
strong: false
worlds:
  - entry: main.dart
    sources:
      main.dart: |
        import "package:dummy/b.dart";
        main() {
          print("hello");
          b();
        }
      b.dart: |
        b() {
          print("b");
        }
      .packages: dummy:${outDirUri}
    expectedLibraryCount: 2
  - entry: main.dart
    # TODO(jensj): For now we don't initialize from dill when a package was
    # changed.
    #invalidate:
    #  - main.dart
    expectInitializeFromDill: false
    sources:
      main.dart: |
        main() {
          print("hello");
        }
      .packages:
    expectedLibraryCount: 1