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

Side by Side Diff: runtime/lib/string_base.dart

Issue 11230011: Make hasNext a getter instead of a method. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove unused variable. Created 8 years, 2 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
« no previous file with comments | « runtime/lib/byte_array.dart ('k') | runtime/vm/intrinsifier.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 4
5 /** 5 /**
6 * [_StringBase] contains common methods used by concrete String 6 * [_StringBase] contains common methods used by concrete String
7 * implementations, e.g., _OneByteString. 7 * implementations, e.g., _OneByteString.
8 */ 8 */
9 class _StringBase { 9 class _StringBase {
10 10
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 return this; 182 return this;
183 } else { 183 } else {
184 return _substringUnchecked(first, last + 1); 184 return _substringUnchecked(first, last + 1);
185 } 185 }
186 } 186 }
187 187
188 bool contains(Pattern pattern, [int startIndex = 0]) { 188 bool contains(Pattern pattern, [int startIndex = 0]) {
189 if (pattern is String) { 189 if (pattern is String) {
190 return indexOf(pattern, startIndex) >= 0; 190 return indexOf(pattern, startIndex) >= 0;
191 } 191 }
192 return pattern.allMatches(this.substring(startIndex)).iterator().hasNext(); 192 return pattern.allMatches(this.substring(startIndex)).iterator().hasNext;
193 } 193 }
194 194
195 String replaceFirst(Pattern pattern, String replacement) { 195 String replaceFirst(Pattern pattern, String replacement) {
196 if (pattern is! Pattern) { 196 if (pattern is! Pattern) {
197 throw new ArgumentError("${pattern} is not a Pattern"); 197 throw new ArgumentError("${pattern} is not a Pattern");
198 } 198 }
199 if (replacement is! String) { 199 if (replacement is! String) {
200 throw new ArgumentError("${replacement} is not a String"); 200 throw new ArgumentError("${replacement} is not a String");
201 } 201 }
202 StringBuffer buffer = new StringBuffer(); 202 StringBuffer buffer = new StringBuffer();
203 int startIndex = 0; 203 int startIndex = 0;
204 Iterator iterator = pattern.allMatches(this).iterator(); 204 Iterator iterator = pattern.allMatches(this).iterator();
205 if (iterator.hasNext()) { 205 if (iterator.hasNext) {
206 Match match = iterator.next(); 206 Match match = iterator.next();
207 buffer.add(this.substring(startIndex, match.start())).add(replacement); 207 buffer.add(this.substring(startIndex, match.start())).add(replacement);
208 startIndex = match.end(); 208 startIndex = match.end();
209 } 209 }
210 return buffer.add(this.substring(startIndex)).toString(); 210 return buffer.add(this.substring(startIndex)).toString();
211 } 211 }
212 212
213 String replaceAll(Pattern pattern, String replacement) { 213 String replaceAll(Pattern pattern, String replacement) {
214 if (pattern is! Pattern) { 214 if (pattern is! Pattern) {
215 throw new ArgumentError("${pattern} is not a Pattern"); 215 throw new ArgumentError("${pattern} is not a Pattern");
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 } else { 258 } else {
259 startIndex = endIndex; 259 startIndex = endIndex;
260 } 260 }
261 } 261 }
262 return result; 262 return result;
263 } 263 }
264 264
265 List<String> split(Pattern pattern) { 265 List<String> split(Pattern pattern) {
266 int length = this.length; 266 int length = this.length;
267 Iterator iterator = pattern.allMatches(this).iterator(); 267 Iterator iterator = pattern.allMatches(this).iterator();
268 if (length == 0 && iterator.hasNext()) { 268 if (length == 0 && iterator.hasNext) {
269 // A matched empty string input returns the empty list. 269 // A matched empty string input returns the empty list.
270 return <String>[]; 270 return <String>[];
271 } 271 }
272 List<String> result = new List<String>(); 272 List<String> result = new List<String>();
273 int startIndex = 0; 273 int startIndex = 0;
274 int previousIndex = 0; 274 int previousIndex = 0;
275 while (true) { 275 while (true) {
276 if (startIndex == length || !iterator.hasNext()) { 276 if (startIndex == length || !iterator.hasNext) {
277 result.add(this.substring(previousIndex, length)); 277 result.add(this.substring(previousIndex, length));
278 break; 278 break;
279 } 279 }
280 Match match = iterator.next(); 280 Match match = iterator.next();
281 if (match.start() == length) { 281 if (match.start() == length) {
282 result.add(this.substring(previousIndex, length)); 282 result.add(this.substring(previousIndex, length));
283 break; 283 break;
284 } 284 }
285 int endIndex = match.end(); 285 int endIndex = match.end();
286 if (startIndex == endIndex && endIndex == previousIndex) { 286 if (startIndex == endIndex && endIndex == previousIndex) {
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 for (int g in groups) { 479 for (int g in groups) {
480 result.add(group(g)); 480 result.add(group(g));
481 } 481 }
482 return result; 482 return result;
483 } 483 }
484 484
485 final int _start; 485 final int _start;
486 final String str; 486 final String str;
487 final String pattern; 487 final String pattern;
488 } 488 }
OLDNEW
« no previous file with comments | « runtime/lib/byte_array.dart ('k') | runtime/vm/intrinsifier.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698