| // 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. |
| |
| // @dart = 2.9 |
| |
| // Type parameters can shadow a library prefix. |
| |
| import "package:expect/expect.dart"; |
| import "../library10.dart" as T; |
| import "../library10.dart" as lib10; |
| |
| class P<T> { |
| test() { |
| new T.Library10(10); |
| // ^ |
| // [analyzer] COMPILE_TIME_ERROR.PREFIX_SHADOWED_BY_LOCAL_DECLARATION |
| // ^ |
| // [cfe] Couldn't find constructor 'T.Library10'. |
| } |
| } |
| |
| main() { |
| new P<int>().test(); |
| |
| { |
| // Variables in the local scope hide the library prefix. |
| var lib10 = 0; |
| var result = 0; |
| result = lib10.Library10.static_fld; |
| // ^^^^^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER |
| // [cfe] The getter 'Library10' isn't defined for the class 'int'. |
| Expect.equals(4, result); |
| } |
| |
| { |
| // Shadowing is not an error. |
| var lib10 = 1; |
| Expect.equals(2, lib10 + 1); |
| } |
| } |