// Copyright (c) 2017, 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 file.

/// Regression tests to ensure that member metadata is not considered by the
/// deferred loading algorithm, unless mirrors are available.
///
/// This test was failing in the past because the deferred-loading algorithm was
/// adding entities to the K-element-map after we had closed the world and we
/// had created the J-element-map.  Later, when we convert the K annotation to
/// its J counterpart, we couldn't find it in the conversion maps because it was
/// added too late.
///
/// If we add support for mirrors in the future, we just need to ensure that
/// such K annotations are discovered during resolution, before the deferred
/// loading phase.

import 'deferred_metadata_lib.dart' deferred as d show foo;

main() async {
  await d.loadLibrary();
  print(d.foo());
}
