Skip to content
This repository was archived by the owner on Aug 11, 2021. It is now read-only.

Fix uses_dynamic_as_bottom errors #22

Merged
merged 2 commits into from
Jan 18, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 23 additions & 16 deletions lib/json_info_codec.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,28 @@ class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> {

var result = new AllInfo();
var elements = json['elements'];
result.libraries
.addAll((elements['library'] as Map).values.map(parseLibrary));
result.classes.addAll((elements['class'] as Map).values.map(parseClass));
result.functions
.addAll((elements['function'] as Map).values.map(parseFunction));
// TODO(srawlins): Since only the Map values are being extracted below,
// replace `as` with `cast` when `cast` becomes available in Dart 2.0:
//
// .addAll(elements['library'].values.cast<Map>().map(parseLibrary));
result.libraries.addAll(
(elements['library'] as Map).values.map((l) => parseLibrary(l)));
result.classes
.addAll((elements['class'] as Map).values.map((c) => parseClass(c)));
result.functions.addAll(
(elements['function'] as Map).values.map((f) => parseFunction(f)));

// TODO(het): Revert this when the dart2js with the new codec is in stable
if (elements['closure'] != null) {
result.closures
.addAll((elements['closure'] as Map).values.map(parseClosure));
result.closures.addAll(
(elements['closure'] as Map).values.map((c) => parseClosure(c)));
}
result.fields.addAll((elements['field'] as Map).values.map(parseField));
result.typedefs
.addAll((elements['typedef'] as Map).values.map(parseTypedef));
result.constants
.addAll((elements['constant'] as Map).values.map(parseConstant));
result.fields
.addAll((elements['field'] as Map).values.map((f) => parseField(f)));
result.typedefs.addAll(
(elements['typedef'] as Map).values.map((t) => parseTypedef(t)));
result.constants.addAll(
(elements['constant'] as Map).values.map((c) => parseConstant(c)));

var idMap = new SplayTreeMap<String, Info>(compareNatural);
for (var f in result.functions) {
Expand All @@ -60,7 +66,7 @@ class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> {
});

result.outputUnits
.addAll((json['outputUnits'] as List).map(parseOutputUnit));
.addAll((json['outputUnits'] as List).map((o) => parseOutputUnit(o)));

result.program = parseProgram(json['program']);
// todo: version, etc
Expand Down Expand Up @@ -132,7 +138,7 @@ class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> {
..code = json['code']
..isConst = json['const'] ?? false
..initializer = parseId(json['initializer'])
..closures = (json['children'] as List).map(parseId).toList();
..closures = (json['children'] as List).map((c) => parseId(c)).toList();
}

ConstantInfo parseConstant(Map json) {
Expand Down Expand Up @@ -220,12 +226,13 @@ class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> {
..type = json['type']
..returnType = json['returnType']
..inferredReturnType = json['inferredReturnType']
..parameters = (json['parameters'] as List).map(parseParameter).toList()
..parameters =
(json['parameters'] as List).map((p) => parseParameter(p)).toList()
..code = json['code']
..sideEffects = json['sideEffects']
..modifiers =
parseModifiers(new Map<String, bool>.from(json['modifiers']))
..closures = (json['children'] as List).map(parseId).toList()
..closures = (json['children'] as List).map((p) => parseId(p)).toList()
..measurements = parseMeasurements(json['measurements']);
}

Expand Down