/*
 * Copyright (c) 2019, 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 an extension declaration is a top-level declaration with a grammar
 * similar to:
 * <extension> ::=
 *   `extension' <identifier>? <typeParameters>? `on' <type> `?'? `{'
 *     memberDeclaration*
 *   `}'
 * ...
 * An extension declaration with a non-private name is included in the library's
 * export scope, and a privately named extension is not. It is a compile-time
 * error to export two declarations, including extensions, with the same name,
 * whether they come from declarations in the library itself or from export
 * declarations (with the usual exception when all but one declaration come from
 * platform libraries). Extension members with private names are simply
 * inaccessible in other libraries.
 *
 * @description Check that if there are two libraries with the same name, the
 * one declared in this scope shadows an imported one
 * @author sgrekhov@unipro.ru
 */

import "../../Utils/expect.dart";
import "syntax_scope_t05_lib.dart";

main() {
  List<String> list = ["Lily", "was", "here"];
  Expect.equals(12, list.doubleLength);
  Expect.equals("I'm an extension that hides another one", list.whoAmI);
}
