|  | // 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 test.library_imports_deferred; | 
|  |  | 
|  | import 'dart:mirrors'; | 
|  | import 'package:expect/expect.dart'; | 
|  | import 'stringify.dart'; | 
|  |  | 
|  | import 'dart:math' as eagermath; | 
|  | import 'dart:math' deferred as lazymath; | 
|  |  | 
|  | test(MirrorSystem mirrors) { | 
|  | LibraryMirror thisLibrary = | 
|  | mirrors.findLibrary(#test.library_imports_deferred); | 
|  | LibraryMirror math = mirrors.findLibrary(#dart.math); | 
|  |  | 
|  | var importsOfCollection = thisLibrary.libraryDependencies | 
|  | .where((dep) => dep.targetLibrary == math) | 
|  | .toList(); | 
|  | Expect.equals(2, importsOfCollection.length); | 
|  | Expect.notEquals(importsOfCollection[0].isDeferred, | 
|  | importsOfCollection[1].isDeferred); // One deferred, one not. | 
|  |  | 
|  | // Only math is defer-imported. | 
|  | LibraryDependencyMirror dep = | 
|  | thisLibrary.libraryDependencies.singleWhere((dep) => dep.isDeferred); | 
|  | Expect.equals(math, dep.targetLibrary); | 
|  |  | 
|  | Expect.stringEquals( | 
|  | 'import dart.math as eagermath\n' | 
|  | 'import dart.math deferred as lazymath\n' | 
|  | 'import dart.mirrors\n' | 
|  | 'import expect\n' | 
|  | 'import test.stringify\n', | 
|  | stringifyDependencies(thisLibrary)); | 
|  | } | 
|  |  | 
|  | main() { | 
|  | test(currentMirrorSystem()); | 
|  | } |