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

# When the entry is not given as a package-url, but is intepreted as one
# the library should still be included in the output -
# even if there's errors in main.

type: newworld
worlds:
  - entry: main.dart
    sources:
      main.dart: |
        // @dart=2.9
        main() {
          asdf;
        }
      .packages: untitled:/
    expectedLibraryCount: 1
    errors: true
    warnings: false
