| Index: tests/language_strong/call_through_getter_test.dart
|
| diff --git a/tests/language_strong/call_through_getter_test.dart b/tests/language_strong/call_through_getter_test.dart
|
| deleted file mode 100644
|
| index e7eac4a4ed838ca1e168be6d883bcd87007fccb0..0000000000000000000000000000000000000000
|
| --- a/tests/language_strong/call_through_getter_test.dart
|
| +++ /dev/null
|
| @@ -1,210 +0,0 @@
|
| -// 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.
|
| -
|
| -import "package:expect/expect.dart";
|
| -
|
| -// Tests that we can call functions through getters.
|
| -
|
| -const TOP_LEVEL_CONST = 1;
|
| -const TOP_LEVEL_CONST_REF = TOP_LEVEL_CONST;
|
| -const TOP_LEVEL_NULL = null;
|
| -
|
| -var topLevel;
|
| -
|
| -class CallThroughGetterTest {
|
| - static void testMain() {
|
| - testTopLevel();
|
| - testField();
|
| - testGetter();
|
| - testMethod();
|
| - testEvaluationOrder();
|
| - }
|
| -
|
| - static void testTopLevel() {
|
| - topLevel = () {
|
| - return 2;
|
| - };
|
| - Expect.equals(1, TOP_LEVEL_CONST);
|
| - Expect.equals(1, TOP_LEVEL_CONST_REF);
|
| - Expect.equals(2, topLevel());
|
| -
|
| - expectThrowsNoSuchMethod(() {
|
| - TOP_LEVEL_CONST(); //# static type warning
|
| - });
|
| - expectThrowsNoSuchMethod(() {
|
| - (TOP_LEVEL_CONST)(); // //# static type warning
|
| - });
|
| - }
|
| -
|
| - static void testField() {
|
| - A a = new A();
|
| - a.field = () => 42;
|
| - Expect.equals(42, a.field());
|
| - Expect.equals(42, (a.field)());
|
| -
|
| - a.field = () => 87;
|
| - Expect.equals(87, a.field());
|
| - Expect.equals(87, (a.field)());
|
| -
|
| - a.field = 99;
|
| - expectThrowsNoSuchMethod(() {
|
| - a.field();
|
| - });
|
| - expectThrowsNoSuchMethod(() {
|
| - (a.field)();
|
| - });
|
| - }
|
| -
|
| - static void testGetter() {
|
| - A a = new A();
|
| - a.field = () => 42;
|
| - Expect.equals(42, a.getter());
|
| - Expect.equals(42, (a.getter)());
|
| -
|
| - a.field = () => 87;
|
| - Expect.equals(87, a.getter());
|
| - Expect.equals(87, (a.getter)());
|
| -
|
| - a.field = 99;
|
| - expectThrowsNoSuchMethod(() {
|
| - a.getter();
|
| - });
|
| - expectThrowsNoSuchMethod(() {
|
| - (a.getter)();
|
| - });
|
| - }
|
| -
|
| - static void testMethod() {
|
| - A a = new A();
|
| - a.field = () => 42;
|
| - Expect.equals(true, a.method() is Function);
|
| - Expect.equals(42, a.method()());
|
| -
|
| - a.field = () => 87;
|
| - Expect.equals(true, a.method() is Function);
|
| - Expect.equals(87, a.method()());
|
| -
|
| - a.field = null;
|
| - Expect.equals(null, a.method());
|
| - }
|
| -
|
| - static void testEvaluationOrder() {
|
| - B b = new B();
|
| - Expect.equals("gf", b.g0());
|
| - b = new B();
|
| - Expect.equals("gf", (b.g0)());
|
| -
|
| - b = new B();
|
| - Expect.equals("xgf", b.g1(b.x));
|
| - b = new B();
|
| - Expect.equals("gxf", (b.g1)(b.x));
|
| -
|
| - b = new B();
|
| - Expect.equals("xygf", b.g2(b.x, b.y));
|
| - b = new B();
|
| - Expect.equals("gxyf", (b.g2)(b.x, b.y));
|
| -
|
| - b = new B();
|
| - Expect.equals("xyzgf", b.g3(b.x, b.y, b.z));
|
| - b = new B();
|
| - Expect.equals("gxyzf", (b.g3)(b.x, b.y, b.z));
|
| -
|
| - b = new B();
|
| - Expect.equals("yzxgf", b.g3(b.y, b.z, b.x));
|
| - b = new B();
|
| - Expect.equals("gyzxf", (b.g3)(b.y, b.z, b.x));
|
| - }
|
| -
|
| - static expectThrowsNoSuchMethod(fn) {
|
| - var exception = catchException(fn);
|
| - if (exception is! NoSuchMethodError) {
|
| - Expect.fail("Wrong exception. Expected: NoSuchMethodError"
|
| - " got: ${exception}");
|
| - }
|
| - }
|
| -
|
| - static catchException(fn) {
|
| - bool caught = false;
|
| - var result = null;
|
| - try {
|
| - fn();
|
| - Expect.equals(true, false); // Shouldn't reach this.
|
| - } catch (e) {
|
| - caught = true;
|
| - result = e;
|
| - }
|
| - Expect.equals(true, caught);
|
| - return result;
|
| - }
|
| -}
|
| -
|
| -class A {
|
| - A() {}
|
| - var field;
|
| - get getter {
|
| - return field;
|
| - }
|
| -
|
| - method() {
|
| - return field;
|
| - }
|
| -}
|
| -
|
| -class B {
|
| - B() : _order = new StringBuffer("") {}
|
| -
|
| - get g0 {
|
| - _mark('g');
|
| - return () {
|
| - return _mark('f');
|
| - };
|
| - }
|
| -
|
| - get g1 {
|
| - _mark('g');
|
| - return (x) {
|
| - return _mark('f');
|
| - };
|
| - }
|
| -
|
| - get g2 {
|
| - _mark('g');
|
| - return (x, y) {
|
| - return _mark('f');
|
| - };
|
| - }
|
| -
|
| - get g3 {
|
| - _mark('g');
|
| - return (x, y, z) {
|
| - return _mark('f');
|
| - };
|
| - }
|
| -
|
| - get x {
|
| - _mark('x');
|
| - return 0;
|
| - }
|
| -
|
| - get y {
|
| - _mark('y');
|
| - return 1;
|
| - }
|
| -
|
| - get z {
|
| - _mark('z');
|
| - return 2;
|
| - }
|
| -
|
| - _mark(m) {
|
| - _order.write(m);
|
| - return _order.toString();
|
| - }
|
| -
|
| - StringBuffer _order;
|
| -}
|
| -
|
| -main() {
|
| - CallThroughGetterTest.testMain();
|
| -}
|
|
|