/*
 * Copyright (c) 2011, 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.
 */
/**
 * @assertion  It is a static warning to export two different libraries with
 * the same name.
 * @description Checks it is a static warning if there are two export
 * directives referring to different uris with the same library name.
 * @static-warning
 * @author ilya
 */

export "2_Exports_A07_t01_lib1.dart"; //library the_same_name;
export "2_Exports_A07_t01_lib2.dart"; //library the_same_name;

main() {
}

