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

// @dart = 2.9

library foo;

import 'dart:mirrors';
import 'typedef_library.dart' deferred as def;

import 'package:async_helper/async_helper.dart';
import 'package:expect/expect.dart';

main() {
  asyncStart();
  def.loadLibrary().then((_) {
    var barLibrary = currentMirrorSystem().findLibrary(new Symbol("bar"));
    var gTypedef = barLibrary.declarations[new Symbol("G")];
    Expect.equals("G", MirrorSystem.getName(gTypedef.simpleName));
    asyncEnd();
  });
}
