Files
sdk/tests/language/import_self_test.dart
T
hausner@google.com 0b7efcd0b0 Private names are not exported, not even if the library imports itself
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
2014-08-21 17:07:25 +00:00

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"));
}