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

Side by Side Diff: tests/language/built_in_identifier_test.dart

Issue 23716002: Update the tests testing the use of built in identifiers (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rebased Created 7 years, 3 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
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 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 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. 3 // BSD-style license that can be found in the LICENSE file.
4 // Check that we can use pseudo keywords as names in function level code. 4 // Check that we can use pseudo keywords as names in function level code.
5 5
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 7
8 8
9 class PseudoKWTest { 9 class PseudoKWTest {
10 static testMain() { 10 static testMain() {
11 11
12 // This is a list of built-in identifiers from the Dart spec. 12 // This is a list of built-in identifiers from the Dart spec.
13 // It sanity checks that these pseudo-keywords are legal identifiers. 13 // It sanity checks that these pseudo-keywords are legal identifiers.
14 14
15 var abstract = 0; 15 var abstract = 0; /// 01: ok
16 var as = 0; 16 var as = 0;
17 var call = 0;
18 var dynamic = 0; 17 var dynamic = 0;
18 var export = 0;
19 var external = 0; /// 01: ok
19 var factory = 0; 20 var factory = 0;
20 var get = 0; 21 var get = 0;
21 var implements = 0; 22 var implements = 0;
22 var import = 0; 23 var import = 0;
23 var interface = 0;
24 var library = 0; 24 var library = 0;
25 var negate = 0;
26 var operator = 0; 25 var operator = 0;
26 var part = 0;
27 var set = 0; 27 var set = 0;
28 var source = 0; 28 var static = 0; /// 01: ok
29 var static = 0;
30 var typedef = 0; 29 var typedef = 0;
31 30
32 // "native" is a per-implementation extension that is not a part of the 31 // "native" is a per-implementation extension that is not a part of the
33 // Dart language. While it is not an official built-in identifier, it 32 // Dart language. While it is not an official built-in identifier, it
34 // is useful to ensure that it remains a legal identifier. 33 // is useful to ensure that it remains a legal identifier.
35 var native = 0; 34 var native = 0;
36 35
37 36
38 // The code below adds a few additional variants of usage without any 37 // The code below adds a few additional variants of usage without any
39 // attempt at complete coverage. 38 // attempt at complete coverage.
40 { 39 {
41 void factory(set) { 40 void factory(set) {
42 return 0; 41 return 0; /// 01: ok
ahe 2013/09/04 11:52:39 I suspect there should be a static warning here.
43 } 42 }
44 } 43 }
45 44
46 get: while (import > 0) { 45 get: while (import > 0) {
47 break get; 46 break get;
48 } 47 }
49 48
50 return static + library * operator; 49 return
50 static + /// 01: ok
51 library * operator;
51 } 52 }
52 } 53 }
53 54
54 typedef(x) => "typedef $x"; 55 typedef(x) => "typedef $x"; /// 01: ok
55 56
56 static(abstract) { 57 static(abstract) { /// 01: ok
57 return abstract == true; 58 return abstract == true; /// 01: ok
58 } 59 } /// 01: ok
59 60
60 class A { 61 class A {
61 var typedef = 0; 62 var typedef = 0;
62 final operator = "smooth"; 63 final operator = "smooth";
63 64
64 set(x) { typedef = x; } 65 set(x) { typedef = x; }
65 get() => typedef - 5; 66 get() => typedef - 5;
66 67
67 static static() { 68 static static() { /// 01: ok
68 return 1; 69 return 1; /// 01: ok
69 } 70 } /// 01: ok
70 static check() { 71 static check() {
71 var o = new A(); 72 var o = new A();
72 o.set(55); 73 o.set(55);
73 Expect.equals(50, o.get()); 74 Expect.equals(50, o.get());
74 static(); 75 static(); /// 01: ok
75 } 76 }
76 } 77 }
77 78
78 class B { 79 class B {
79 var set = 100; 80 var set = 100;
80 get get => set; 81 get get => set;
81 set get(get) => set = 2 * get.get; 82 set get(get) => set = 2 * get.get;
82 83
83 static() { 84 static() { /// 01: ok
84 var set = new B(); 85 var set = new B(); /// 01: ok
85 set.get = set; 86 set.get = set; /// 01: ok
86 Expect.equals(200, set.get); 87 Expect.equals(200, set.get); /// 01: ok
87 } 88 } /// 01: ok
88 int operator() { 89 int operator() {
89 return 1; 90 return 1;
90 } 91 }
91 } 92 }
92 93
93 class C { 94 class C {
94 static int operator = (5); 95 static int operator = (5);
95 static var get; 96 static var get;
96 static get set => 111; 97 static get set => 111;
97 static set set(set) { } 98 static set set(set) { }
98 } 99 }
99 100
100 101
101 main() { 102 main() {
102 PseudoKWTest.testMain(); 103 PseudoKWTest.testMain();
103 A.check(); 104 A.check();
104 new B().static(); 105 new B().static(); /// 01: ok
105 Expect.equals(1, new B().operator()); 106 Expect.equals(1, new B().operator());
106 Expect.equals(1, A.static()); 107 Expect.equals(1, A.static()); /// 01: ok
107 typedef("T"); 108 typedef("T"); /// 01: ok
108 Expect.equals("typedef T", typedef("T")); 109 Expect.equals("typedef T", typedef("T")); /// 01: ok
109 static("true"); 110 static("true"); /// 01: ok
110 Expect.equals(false, static("true")); 111 Expect.equals(false, static("true")); /// 01: ok
111 Expect.equals(5, C.operator); 112 Expect.equals(5, C.operator);
112 Expect.equals(null, C.get); 113 Expect.equals(null, C.get);
113 C.set = 0; 114 C.set = 0;
114 Expect.equals(111, C.set); 115 Expect.equals(111, C.set);
115 } 116 }
OLDNEW
« no previous file with comments | « tests/language/built_in_identifier_illegal_test.dart ('k') | tests/language/language_analyzer.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698