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

# Compile an application that includes a non-existing file from dart:.
# Make sure the output includes a synthetic library.
# Loading from such a dill is ok too.

type: newworld
strong: true
worlds:
  - entry: main.dart
    sources:
      main.dart: |
        import "dart:foo/nonexisting.dart";
    expectedLibraryCount: 1
    expectedSyntheticLibraryCount: 1
    errors: true
