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

Side by Side Diff: test/dart_codegen/expect/collection/set.dart

Issue 1148283010: Remove dart backend (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 6 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
OLDNEW
(Empty)
1 part of dart.collection;
2 abstract class SetMixin<E> implements Set<E> {bool add(E element);
3 bool contains(Object element);
4 E lookup(Object element);
5 bool remove(Object element);
6 Iterator<E> get iterator;
7 Set<E> toSet();
8 int get length;
9 bool get isEmpty => length == 0;
10 bool get isNotEmpty => length != 0;
11 void clear() {
12 removeAll(toList());
13 }
14 void addAll(Iterable<E> elements) {
15 for (E element in elements) add(element);
16 }
17 void removeAll(Iterable<Object> elements) {
18 for (Object element in elements) remove(element);
19 }
20 void retainAll(Iterable<Object> elements) {
21 Set<E> toRemove = toSet();
22 for (Object o in elements) {
23 toRemove.remove(o);
24 }
25 removeAll(toRemove);
26 }
27 void removeWhere(bool test(E element)) {
28 List toRemove = [];
29 for (E element in this) {
30 if (test(element)) toRemove.add(element);
31 }
32 removeAll(toRemove);
33 }
34 void retainWhere(bool test(E element)) {
35 List toRemove = [];
36 for (E element in this) {
37 if (!test(element)) toRemove.add(element);
38 }
39 removeAll(toRemove);
40 }
41 bool containsAll(Iterable<Object> other) {
42 for (Object o in other) {
43 if (!contains(o)) return false;
44 }
45 return true;
46 }
47 Set<E> union(Set<E> other) {
48 return toSet()..addAll(other);
49 }
50 Set<E> intersection(Set<Object> other) {
51 Set<E> result = toSet();
52 for (E element in this) {
53 if (!other.contains(element)) result.remove(element);
54 }
55 return result;
56 }
57 Set<E> difference(Set<Object> other) {
58 Set<E> result = toSet();
59 for (E element in this) {
60 if (other.contains(element)) result.remove(element);
61 }
62 return result;
63 }
64 List<E> toList({
65 bool growable : true}
66 ) {
67 List<E> result = growable ? (new List<E>()..length = length) : new List<E>(len gth);
68 int i = 0;
69 for (E element in this) result[i++] = element;
70 return result;
71 }
72 Iterable map(f(E element)) => new EfficientLengthMappedIterable<E, dynamic>(thi s, f);
73 E get single {
74 if (length > 1) throw IterableElementError.tooMany();
75 Iterator<E> it = iterator;
76 if (!it.moveNext()) throw IterableElementError.noElement();
77 E result = it.current;
78 return result;
79 }
80 String toString() => IterableBase.iterableToFullString(this, '{', '}');
81 Iterable<E> where(bool f(E element)) => new WhereIterable<E>(this, f);
82 Iterable expand(Iterable f(E element)) => new ExpandIterable<E, dynamic>(this, f);
83 void forEach(void f(E element)) {
84 for (E element in this) f(element);
85 }
86 E reduce(E combine(E value, E element)) {
87 Iterator<E> iterator = this.iterator;
88 if (!iterator.moveNext()) {
89 throw IterableElementError.noElement();
90 }
91 E value = iterator.current;
92 while (iterator.moveNext()) {
93 value = combine(value, iterator.current);
94 }
95 return value;
96 }
97 dynamic fold(var initialValue, dynamic combine(var previousValue, E element)) {
98 var value = initialValue;
99 for (E element in this) value = combine(value, element);
100 return value;
101 }
102 bool every(bool f(E element)) {
103 for (E element in this) {
104 if (!f(element)) return false;
105 }
106 return true;
107 }
108 String join([String separator = ""]) {
109 Iterator<E> iterator = this.iterator;
110 if (!iterator.moveNext()) return "";
111 StringBuffer buffer = new StringBuffer();
112 if (separator == null || separator == "") {
113 do {
114 buffer.write("${iterator.current}");
115 }
116 while (iterator.moveNext());}
117 else {
118 buffer.write("${iterator.current}");
119 while (iterator.moveNext()) {
120 buffer.write(separator);
121 buffer.write("${iterator.current}");
122 }
123 }
124 return buffer.toString();
125 }
126 bool any(bool test(E element)) {
127 for (E element in this) {
128 if (test(element)) return true;
129 }
130 return false;
131 }
132 Iterable<E> take(int n) {
133 return new TakeIterable<E>(this, n);
134 }
135 Iterable<E> takeWhile(bool test(E value)) {
136 return new TakeWhileIterable<E>(this, test);
137 }
138 Iterable<E> skip(int n) {
139 return new SkipIterable<E>(this, n);
140 }
141 Iterable<E> skipWhile(bool test(E value)) {
142 return new SkipWhileIterable<E>(this, test);
143 }
144 E get first {
145 Iterator<E> it = iterator;
146 if (!it.moveNext()) {
147 throw IterableElementError.noElement();
148 }
149 return it.current;
150 }
151 E get last {
152 Iterator<E> it = iterator;
153 if (!it.moveNext()) {
154 throw IterableElementError.noElement();
155 }
156 E result;
157 do {
158 result = it.current;
159 }
160 while (it.moveNext()); return result;
161 }
162 E firstWhere(bool test(E value), {
163 E orElse()}
164 ) {
165 for (E element in this) {
166 if (test(element)) return element;
167 }
168 if (orElse != null) return orElse();
169 throw IterableElementError.noElement();
170 }
171 E lastWhere(bool test(E value), {
172 E orElse()}
173 ) {
174 E result = null;
175 bool foundMatching = false;
176 for (E element in this) {
177 if (test(element)) {
178 result = element;
179 foundMatching = true;
180 }
181 }
182 if (foundMatching) return result;
183 if (orElse != null) return orElse();
184 throw IterableElementError.noElement();
185 }
186 E singleWhere(bool test(E value)) {
187 E result = null;
188 bool foundMatching = false;
189 for (E element in this) {
190 if (test(element)) {
191 if (foundMatching) {
192 throw IterableElementError.tooMany();
193 }
194 result = element;
195 foundMatching = true;
196 }
197 }
198 if (foundMatching) return result;
199 throw IterableElementError.noElement();
200 }
201 E elementAt(int index) {
202 if (index is! int) throw new ArgumentError.notNull("index");
203 RangeError.checkNotNegative(index, "index");
204 int elementIndex = 0;
205 for (E element in this) {
206 if (index == elementIndex) return element;
207 elementIndex++;
208 }
209 throw new RangeError.index(index, this, "index", null, elementIndex);
210 }
211 }
212 abstract class SetBase<E> extends SetMixin<E> {static String setToString(Set se t) => IterableBase.iterableToFullString(set, '{', '}');
213 }
OLDNEW
« no previous file with comments | « test/dart_codegen/expect/collection/queue.dart ('k') | test/dart_codegen/expect/collection/splay_tree.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698