| Index: dart/tests/try/poi/qualified_names_test.dart
|
| diff --git a/dart/tests/try/poi/qualified_names_test.dart b/dart/tests/try/poi/qualified_names_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..04a969cd00447be8080d790b03365f404bf8629a
|
| --- /dev/null
|
| +++ b/dart/tests/try/poi/qualified_names_test.dart
|
| @@ -0,0 +1,64 @@
|
| +// 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.
|
| +
|
| +// Test of [qualifiedNamesIn] and [canNamesResolveStaticallyTo].
|
| +library trydart.qualified_names_test;
|
| +
|
| +import 'package:dart2js_incremental/library_updater.dart' show
|
| + canNamesResolveStaticallyTo,
|
| + qualifiedNamesIn;
|
| +
|
| +import 'compiler_test_case.dart';
|
| +
|
| +typedef Checker(LibraryElement script);
|
| +
|
| +class NameTestCase extends CompilerTestCase {
|
| + final Checker check;
|
| +
|
| + NameTestCase(String source, this.check)
|
| + : super(source);
|
| +
|
| + Future run() => mainApp.then(check);
|
| +}
|
| +
|
| +main() {
|
| + runTests(tests.map((l) => new NameTestCase(l.first, l.last)).toList());
|
| +}
|
| +
|
| +final List tests = [
|
| + ["main() { x; }",
|
| + (LibraryElement script) {
|
| + var names = qualifiedNamesIn(script.findLocal("main"));
|
| + Expect.setEquals(["main", "x"].toSet(), names);
|
| + }],
|
| +
|
| + ["main() { x; x.y; }",
|
| + (LibraryElement script) {
|
| + var names = qualifiedNamesIn(script.findLocal("main"));
|
| + Expect.setEquals(["main", "x", "x.y"].toSet(), names);
|
| + }],
|
| +
|
| + ["main() { x; x.y; x.y.z; x.y.z.w;}",
|
| + (LibraryElement script) {
|
| + var names = qualifiedNamesIn(script.findLocal("main"));
|
| + // ".w" is skipped.
|
| + Expect.setEquals(["main", "x", "x.y", "x.y.z"].toSet(), names);
|
| + }],
|
| +
|
| +
|
| + ["x() {} y() {} z() {} w() {} main() { x; x.y; x.y.z; x.y.z.w;}",
|
| + (LibraryElement script) {
|
| + var main = script.findLocal("main");
|
| + var names = qualifiedNamesIn(main);
|
| + var x = script.findLocal("x");
|
| + var y = script.findLocal("y");
|
| + var z = script.findLocal("z");
|
| + var w = script.findLocal("w");
|
| + Expect.isTrue(canNamesResolveStaticallyTo(names, main, script));
|
| + Expect.isTrue(canNamesResolveStaticallyTo(names, x, script));
|
| + Expect.isFalse(canNamesResolveStaticallyTo(names, y, script));
|
| + Expect.isFalse(canNamesResolveStaticallyTo(names, z, script));
|
| + Expect.isFalse(canNamesResolveStaticallyTo(names, w, script));
|
| + }],
|
| +];
|
|
|