Chromium Code Reviews| Index: lib/src/protobuf/field_set.dart |
| diff --git a/lib/src/protobuf/field_set.dart b/lib/src/protobuf/field_set.dart |
| index df7f2ddb6475a698d85e8664243657305a176fb4..9e159b55fdea0a75cb6a4a9fe4a40fe2601e83db 100644 |
| --- a/lib/src/protobuf/field_set.dart |
| +++ b/lib/src/protobuf/field_set.dart |
| @@ -32,8 +32,8 @@ class _FieldSet { |
| _values = _makeValueList(meta.fieldInfo); |
| static _makeValueList(Map<int, FieldInfo> infos) { |
| - if (infos.isEmpty) return _emptyList; |
| - return new List(infos.length); |
| + if (infos.isEmpty) return _emptyList; |
| + return new List(infos.length); |
| } |
| // Metadata about multiple fields |
| @@ -110,14 +110,14 @@ class _FieldSet { |
| throw new ArgumentError("tag $tagNumber not defined in $_messageName"); |
| } |
| - _getDefault(FieldInfo fi) { |
| + /*T*/ _getDefault/*<T>*/(FieldInfo/*<T>*/ fi) { |
| if (!fi.isRepeated) return fi.makeDefault(); |
| if (_isReadOnly) return _emptyList; |
| // TODO(skybrian) we could avoid this by generating another |
| // method for repeated fields: |
| // msg.mutableFoo().add(123); |
| - var value = _message.createRepeatedField(fi.tagNumber, fi); |
| + var value = fi._createRepeatedField(_message); |
| _setNonExtensionFieldUnchecked(fi, value); |
| return value; |
| } |
| @@ -212,18 +212,18 @@ class _FieldSet { |
| /// Creates and stores the repeated field if it doesn't exist. |
| /// If it's an extension and the list doesn't exist, validates and stores it. |
| /// Suitable for decoders. |
| - List _ensureRepeatedField(FieldInfo fi) { |
| + List/*<T>*/ _ensureRepeatedField/*<T>*/(FieldInfo/*<T>*/ fi) { |
| assert(!_isReadOnly); |
| assert(fi.isRepeated); |
| if (fi.index == null) { |
| return _ensureExtensions()._ensureRepeatedField(fi); |
| } |
| var value = _getFieldOrNull(fi); |
| - if (value != null) return value; |
| + if (value != null) return value as List/*<T>*/; |
|
Søren Gjesse
2016/04/01 06:24:28
This is more a strong mode question.
Why is this
Leaf
2016/04/01 17:09:56
We (strong mode) warn on categories of casts that
skybrian
2016/04/01 18:01:40
The return type of _getFieldOrNull is dynamic. I t
|
| - value = _message.createRepeatedField(fi.tagNumber, fi); |
| - _setNonExtensionFieldUnchecked(fi, value); |
| - return value; |
| + var newValue = fi._createRepeatedField(_message); |
| + _setNonExtensionFieldUnchecked(fi, newValue); |
| + return newValue; |
| } |
| /// Sets a non-extended field and fires events. |
| @@ -237,7 +237,7 @@ class _FieldSet { |
| // Generated method implementations |
| /// The implementation of a generated getter. |
| - _$get(int index, int tagNumber, defaultValue) { |
| + /*T*/ _$get/*<T>*/(int index, int tagNumber, /*T*/ defaultValue) { |
| assert(_nonExtensionInfo(tagNumber).index == index); |
| var value = _values[index]; |
| if (value != null) return value; |
| @@ -265,7 +265,7 @@ class _FieldSet { |
| assert(_$check(tagNumber, value)); |
| if (_isReadOnly) { |
| throw new UnsupportedError( |
| - "attempted to call a setter on a read-only message ($_messageName)"); |
| + "attempted to call a setter on a read-only message ($_messageName)"); |
| } |
| if (value == null) { |
| _$check(tagNumber, value); // throw exception for null value |