Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Side by Side Diff: tests/language/src/CallOperatorTest.dart

Issue 10248007: test rename overhaul: step 8 - language tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5
6 // simple test with no types in signature
7 class A1 {
8 operator call() => 42;
9 }
10
11 // same test, include return type
12 class A2 {
13 int operator call() => 35;
14 }
15
16 class B {
17 call() => 28; // expect warning, should use 'operator call'
18 }
19
20 // A call() operator can have any arity
21 class C {
22 operator call(arg) => 7 * arg;
23 }
24
25 // Test named arguments
26 class D {
27 operator call([arg=6]) => 7 * arg;
28 }
29
30 // non-trvial method body combination of positional and named
31 class E {
32 String operator call(String str, [int count=1]) {
33 String result = "";
34 for (var i = 0; i < count; i++) {
35 result += str;
36 if (i < count -1) {
37 result += ':';
38 }
39 }
40 return result;
41 }
42 }
43
44 main() {
45 var a1 = new A1();
46 Expect.equals(42, a1());
47 Expect.equals(42, a1.call());
48
49 var a2 = new A2();
50 Expect.equals(35, a2());
51 Expect.equals(35, a2.call());
52
53 var b = new B();
54 Expect.equals(28, b());
55 Expect.equals(28, b.call());
56
57 var c = new C();
58 Expect.equals(42, c(6));
59 Expect.equals(42, c.call(6));
60
61 var d = new D();
62 Expect.equals(42, d());
63 Expect.equals(7, d(1));
64 Expect.equals(14, d(arg:2));
65 Expect.equals(42, d.call());
66 Expect.equals(7, d.call(1));
67 Expect.equals(14, d.call(arg:2));
68
69 var e = new E();
70 Expect.equals("foo", e("foo"));
71 Expect.equals("foo:foo", e("foo", 2));
72 Expect.equals("foo:foo:foo", e("foo", count:3));
73 Expect.equals("foo", e.call("foo"));
74 Expect.equals("foo:foo", e.call("foo", 2));
75 Expect.equals("foo:foo:foo", e.call("foo", count:3));
76 }
OLDNEW
« no previous file with comments | « tests/language/src/CallNonMethodFieldTest.dart ('k') | tests/language/src/CallThroughGetterTest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698