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

Side by Side Diff: test/dart_codegen/expect/convert/line_splitter.dart

Issue 1038583004: Rationalize coercions (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Rebase Created 5 years, 9 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
1 part of dart.convert; 1 part of dart.convert;
2 class LineSplitter extends Converter<String, List<String>> {const LineSplitter( ); 2 class LineSplitter extends Converter<String, List<String>> {const LineSplitter( );
3 List<String> convert(String data) { 3 List<String> convert(String data) {
4 var lines = new List<String>(); 4 var lines = new List<String>();
5 _LineSplitterSink._addSlice(data, 0, data.length, true, lines.add); 5 _LineSplitterSink._addSlice(data, 0, data.length, true, lines.add);
6 return lines; 6 return lines;
7 } 7 }
8 StringConversionSink startChunkedConversion(Sink<String> sink) { 8 StringConversionSink startChunkedConversion(Sink<String> sink) {
9 if (sink is! StringConversionSink) { 9 if (sink is! StringConversionSink) {
10 sink = new StringConversionSink.from(sink); 10 sink = new StringConversionSink.from(sink);
11 } 11 }
12 return new _LineSplitterSink(DEVC$RT.cast(sink, DEVC$RT.type((Sink<String> _) { 12 return new _LineSplitterSink(DEVC$RT.cast(sink, DEVC$RT.type((Sink<String> _) {
13 } 13 }
14 ), StringConversionSink, "CastGeneral", """line 26, column 34 of dart:convert/ line_splitter.dart: """, sink is StringConversionSink, true)); 14 ), StringConversionSink, "ImplicitCast", """line 26, column 34 of dart:convert /line_splitter.dart: """, sink is StringConversionSink, true));
15 } 15 }
16 } 16 }
17 class _LineSplitterSink extends StringConversionSinkBase {static const int _LF = 10; 17 class _LineSplitterSink extends StringConversionSinkBase {static const int _LF = 10;
18 static const int _CR = 13; 18 static const int _CR = 13;
19 final StringConversionSink _sink; 19 final StringConversionSink _sink;
20 String _carry; 20 String _carry;
21 _LineSplitterSink(this._sink); 21 _LineSplitterSink(this._sink);
22 void addSlice(String chunk, int start, int end, bool isLast) { 22 void addSlice(String chunk, int start, int end, bool isLast) {
23 if (_carry != null) { 23 if (_carry != null) {
24 chunk = _carry + chunk.substring(start, end); 24 chunk = _carry + chunk.substring(start, end);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 if (isLast) { 64 if (isLast) {
65 adder(carry); 65 adder(carry);
66 } 66 }
67 else { 67 else {
68 return carry; 68 return carry;
69 } 69 }
70 } 70 }
71 return null; 71 return null;
72 } 72 }
73 } 73 }
OLDNEW
« no previous file with comments | « test/dart_codegen/expect/convert/latin1.dart ('k') | test/dart_codegen/expect/convert/string_conversion.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698