Index: pkg/serialization/lib/src/basic_rule.dart |
diff --git a/pkg/serialization/lib/src/basic_rule.dart b/pkg/serialization/lib/src/basic_rule.dart |
index 5289a8789dd613541e259f8cd82d19b27d4bccb2..40c5f601f5d556733311d9cd3fc06251fc314964 100644 |
--- a/pkg/serialization/lib/src/basic_rule.dart |
+++ b/pkg/serialization/lib/src/basic_rule.dart |
@@ -239,14 +239,17 @@ class BasicRule extends SerializationRule { |
* Or, in the special case of null, two nulls. |
*/ |
pullStateFrom(Iterator stream) { |
- var dataLength = stream.next(); |
+ stream.moveNext(); |
+ var dataLength = stream.current; |
var ruleData = new List(); |
for (var i = 0; i < dataLength; i++) { |
var subList = new List(); |
ruleData.add(subList); |
for (var j = 0; j < fields.length; j++) { |
- var a = stream.next(); |
- var b = stream.next(); |
+ stream.moveNext(); |
+ var a = stream.current; |
+ stream.moveNext(); |
+ var b = stream.current; |
if (!(a is int)) { |
// This wasn't a reference, so just use the first object as a literal. |
// particularly used for the case of null. |
@@ -360,7 +363,10 @@ class _NamedField extends _Field { |
setter(object, value); |
} |
- valueIn(InstanceMirror mirror) => mirror.getField(name).value.reflectee; |
+ valueIn(InstanceMirror mirror) { |
+ var futureValue = deprecatedFutureValue(mirror.getField(name)); |
+ return futureValue.reflectee; |
+ } |
/** Return the function to use to set our value. */ |
Function get setter => |
@@ -404,7 +410,7 @@ class _ConstantField extends _Field { |
* are kept in a separate object, which also has the ability to compute the |
* default fields to use reflectively. |
*/ |
-class _FieldList implements Iterable { |
+class _FieldList extends Iterable { |
/** |
* All of our fields, indexed by name. Note that the names are not |
* necessarily strings. |
@@ -472,12 +478,12 @@ class _FieldList implements Iterable { |
void addAllNotExplicitlyExcluded(List<String> aCollection) { |
if (aCollection == null) return; |
var names = aCollection; |
- names = names.filter((x) => !_excludeFields.contains(x)); |
+ names = names.where((x) => !_excludeFields.contains(x)); |
addAllByName(names); |
} |
/** Add all the fields with the given names without any special properties. */ |
- void addAllByName(List<String> names) { |
+ void addAllByName(Iterable<String> names) { |
for (var each in names) { |
allFields.putIfAbsent(each, () => new _Field(each, this)); |
} |
@@ -493,7 +499,7 @@ class _FieldList implements Iterable { |
contents; |
} |
- Iterator iterator() => contents.iterator(); |
+ Iterator get iterator => contents.iterator; |
/** Return a cached, sorted list of all the fields. */ |
List<_Field> get contents { |
@@ -524,11 +530,16 @@ class _FieldList implements Iterable { |
} |
List get constructorFields => _constructorFields; |
- List constructorFieldNames() => constructorFields.map((x) => x.name); |
- List constructorFieldIndices() => constructorFields.map((x) => x.index); |
- List regularFields() => contents.filter((x) => !x.usedInConstructor); |
- List regularFieldNames() => regularFields().map((x) => x.name); |
- List regularFieldIndices() => regularFields().map((x) => x.index); |
+ List constructorFieldNames() => |
+ constructorFields.mappedBy((x) => x.name).toList(); |
+ List constructorFieldIndices() => |
+ constructorFields.mappedBy((x) => x.index).toList(); |
+ List regularFields() => |
+ contents.where((x) => !x.usedInConstructor).toList(); |
+ List regularFieldNames() => |
+ regularFields().mappedBy((x) => x.name).toList(); |
+ List regularFieldIndices() => |
+ regularFields().mappedBy((x) => x.index).toList(); |
/** |
@@ -539,16 +550,16 @@ class _FieldList implements Iterable { |
*/ |
void figureOutFields() { |
List names(Collection<DeclarationMirror> mirrors) => |
- mirrors.map((each) => each.simpleName); |
+ mirrors.mappedBy((each) => each.simpleName).toList(); |
if (!_shouldFigureOutFields || !regularFields().isEmpty) return; |
var fields = publicFields(mirror); |
var getters = publicGetters(mirror); |
- var gettersWithSetters = getters.filter( (each) |
- => mirror.setters["${each.simpleName}="] != null); |
- var gettersThatMatchConstructor = getters.filter((each) |
+ var gettersWithSetters = getters.where( (each) |
+ => mirror.setters["${each.simpleName}="] != null).toList(); |
+ var gettersThatMatchConstructor = getters.where((each) |
=> (named(each.simpleName) != null) && |
- (named(each.simpleName).usedInConstructor)); |
+ (named(each.simpleName).usedInConstructor)).toList(); |
addAllNotExplicitlyExcluded(names(fields)); |
addAllNotExplicitlyExcluded(names(gettersWithSetters)); |
addAllNotExplicitlyExcluded(names(gettersThatMatchConstructor)); |
@@ -594,10 +605,11 @@ class Constructor { |
*/ |
constructFrom(state, Reader r) { |
// TODO(alanknight): Handle named parameters |
- Collection inflated = fieldNumbers.map( |
- (x) => (x is int) ? reflect(r.inflateReference(state[x])) : reflect(x)); |
+ Collection inflated = fieldNumbers.mappedBy( |
+ (x) => (x is int) ? reflect(r.inflateReference(state[x])) : reflect(x)) |
+ .toList(); |
var result = type.newInstance(name, inflated); |
- return result.value; |
+ return deprecatedFutureValue(result); |
} |
} |
@@ -616,4 +628,4 @@ class _MapWrapper { |
get length => _map.length; |
asMap() => _map; |
-} |
+} |