Chromium Code Reviews| Index: lib/src/list_diff.dart |
| diff --git a/lib/src/list_diff.dart b/lib/src/list_diff.dart |
| index cbc3f2f8ed413f4a25b4dc8ab698b739ffdc6be3..f027402fe692ce7b62ff5370b201ae34e6e5fa8c 100644 |
| --- a/lib/src/list_diff.dart |
| +++ b/lib/src/list_diff.dart |
| @@ -41,7 +41,6 @@ class ListChangeRecord extends ChangeRecord { |
| factory ListChangeRecord(List object, int index, |
| {List removed, int addedCount}) { |
| - |
| if (removed == null) removed = []; |
| if (addedCount == null) addedCount = 0; |
| return new ListChangeRecord._(object, index, removed, addedCount); |
| @@ -79,7 +78,7 @@ List<List<int>> _calcEditDistances(List current, int currentStart, |
| // "Deletion" columns |
| var rowCount = oldEnd - oldStart + 1; |
| var columnCount = currentEnd - currentStart + 1; |
| - var distances = new List(rowCount); |
| + var distances = new List<List<int>>(rowCount); |
| // "Addition" rows. Initialize null column. |
| for (var i = 0; i < rowCount; i++) { |
| @@ -119,7 +118,7 @@ List<int> _spliceOperationsFromEditDistances(List<List<int>> distances) { |
| var i = distances.length - 1; |
| var j = distances[0].length - 1; |
| var current = distances[i][j]; |
| - var edits = []; |
| + var edits = <int>[]; |
| while (i > 0 || j > 0) { |
| if (i == 0) { |
| edits.add(_EDIT_ADD); |
| @@ -189,7 +188,6 @@ int _sharedSuffix(List arr1, List arr2, int searchLength) { |
| /// p: The length of the old array |
| List<ListChangeRecord> calcSplices(List current, int currentStart, |
| int currentEnd, List old, int oldStart, int oldEnd) { |
| - |
| var prefixCount = 0; |
| var suffixCount = 0; |
| @@ -217,21 +215,22 @@ List<ListChangeRecord> calcSplices(List current, int currentStart, |
| splice._removed.add(old[oldStart++]); |
| } |
| - return [splice ]; |
| + return [splice]; |
| } else if (oldStart == oldEnd) |
|
Bob Nystrom
2016/01/22 18:50:25
Braces around the else.
vsm
2016/01/22 19:05:05
Done.
|
| - return [new ListChangeRecord(current, currentStart, |
| - addedCount: currentEnd - currentStart)]; |
| + return [ |
| + new ListChangeRecord(current, currentStart, |
| + addedCount: currentEnd - currentStart) |
| + ]; |
| - var ops = _spliceOperationsFromEditDistances( |
| - _calcEditDistances(current, currentStart, currentEnd, old, oldStart, |
| - oldEnd)); |
| + var ops = _spliceOperationsFromEditDistances(_calcEditDistances( |
| + current, currentStart, currentEnd, old, oldStart, oldEnd)); |
| ListChangeRecord splice = null; |
| var splices = <ListChangeRecord>[]; |
| var index = currentStart; |
| var oldIndex = oldStart; |
| for (var i = 0; i < ops.length; i++) { |
| - switch(ops[i]) { |
| + switch (ops[i]) { |
| case _EDIT_LEAVE: |
| if (splice != null) { |
| splices.add(splice); |
| @@ -290,8 +289,10 @@ void _mergeSplice(List<ListChangeRecord> splices, ListChangeRecord record) { |
| if (inserted) continue; |
| var intersectCount = _intersect( |
| - splice.index, splice.index + splice.removed.length, |
| - current.index, current.index + current.addedCount); |
| + splice.index, |
| + splice.index + splice.removed.length, |
| + current.index, |
| + current.index + current.addedCount); |
| if (intersectCount >= 0) { |
| // Merge the two splices |
| @@ -302,8 +303,8 @@ void _mergeSplice(List<ListChangeRecord> splices, ListChangeRecord record) { |
| insertionOffset -= current.addedCount - current.removed.length; |
| splice._addedCount += current.addedCount - intersectCount; |
| - var deleteCount = splice.removed.length + |
| - current.removed.length - intersectCount; |
| + var deleteCount = |
| + splice.removed.length + current.removed.length - intersectCount; |
| if (splice.addedCount == 0 && deleteCount == 0) { |
| // merged splice is a noop. discard. |
| @@ -313,8 +314,8 @@ void _mergeSplice(List<ListChangeRecord> splices, ListChangeRecord record) { |
| if (splice.index < current.index) { |
| // some prefix of splice.removed is prepended to current.removed. |
| - removed.insertAll(0, |
| - splice.removed.getRange(0, current.index - splice.index)); |
| + removed.insertAll( |
| + 0, splice.removed.getRange(0, current.index - splice.index)); |
| } |
| if (splice.index + splice.removed.length > |
| @@ -348,9 +349,8 @@ void _mergeSplice(List<ListChangeRecord> splices, ListChangeRecord record) { |
| if (!inserted) splices.add(splice); |
| } |
| -List<ListChangeRecord> _createInitialSplices(List<Object> list, |
| - List<ListChangeRecord> records) { |
| - |
| +List<ListChangeRecord> _createInitialSplices( |
| + List<Object> list, List<ListChangeRecord> records) { |
| var splices = <ListChangeRecord>[]; |
| for (var record in records) { |
| _mergeSplice(splices, record); |
| @@ -372,19 +372,23 @@ List<ListChangeRecord> _createInitialSplices(List<Object> list, |
| /// Here, we inserted some records and then removed some of them. |
| /// If someone processed these records naively, they would "play back" the |
| /// insert incorrectly, because those items will be shifted. |
| -List<ListChangeRecord> projectListSplices(List list, |
| - List<ListChangeRecord> records) { |
| +List<ListChangeRecord> projectListSplices( |
| + List list, List<ListChangeRecord> records) { |
|
Bob Nystrom
2016/01/22 18:50:25
List -> List<Object>?
vsm
2016/01/22 19:05:05
Done.
|
| if (records.length <= 1) return records; |
| - var splices = []; |
| + var splices = <ListChangeRecord>[]; |
| for (var splice in _createInitialSplices(list, records)) { |
| if (splice.addedCount == 1 && splice.removed.length == 1) { |
| if (splice.removed[0] != list[splice.index]) splices.add(splice); |
| continue; |
| } |
| - splices.addAll(calcSplices(list, splice.index, |
| - splice.index + splice.addedCount, splice._removed, 0, |
| + splices.addAll(calcSplices( |
| + list, |
| + splice.index, |
| + splice.index + splice.addedCount, |
| + splice._removed, |
| + 0, |
| splice.removed.length)); |
| } |