0b7efcd0b0
Prevent access to a private name if it’s imported through a self-import. Adding a test case. Fixes issue 20162 R=srdjan@google.com Review URL: https://codereview.chromium.org//489993004 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39459 260f80e4-7a28-3924-810f-c04153c831b5
29 lines
1.0 KiB
Dart
29 lines
1.0 KiB
Dart
// Copyright (c) 2014, 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.
|
|
//
|
|
// Check that private names cannot be imported even if the library imports
|
|
// itself.
|
|
|
|
library import_self;
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
// Eliminate the import of the unmodified file or else the analyzer
|
|
// will generate the static warning in the import_self_test_none case.
|
|
import "import_self_test.dart" as p; /// 01: continued
|
|
|
|
var _x = "The quick brown fox jumps over the dazy log";
|
|
|
|
main() {
|
|
var t = "Falsches Üben von Xylophonmusik quält jeden größeren Zwerg";
|
|
|
|
// Check that referencing p._x causes a warning from the analyzer,
|
|
// and the runtime fails to resolve p._x, even though it refers to
|
|
// top level variable _x of this file.
|
|
Expect.throws(() { t = p._x; }, /// 01: static type warning
|
|
(e) => e is NoSuchMethodError); /// 01: continued
|
|
|
|
Expect.isTrue(t.endsWith("Zwerg"));
|
|
}
|