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

# Test loading from a dill file with a deferred library.
# This is done by initializing from dill and making no changes/invalidations.

type: basic
entry: a.dart
strong: false
invalidate:
sources:
  a.dart: |
    import 'b.dart' deferred as b;

    void main() {
      print(b.foo());
    }
  b.dart: |
    String foo() => "hello from foo in b";