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

Commit a126fbd

Browse files
srawlinssigmundch
authored andcommitted
Fix uses_dynamic_as_bottom errors (#22)
1 parent 55eb311 commit a126fbd

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

lib/json_info_codec.dart

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,28 @@ class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> {
2020

2121
var result = new AllInfo();
2222
var elements = json['elements'];
23-
result.libraries
24-
.addAll((elements['library'] as Map).values.map(parseLibrary));
25-
result.classes.addAll((elements['class'] as Map).values.map(parseClass));
26-
result.functions
27-
.addAll((elements['function'] as Map).values.map(parseFunction));
23+
// TODO(srawlins): Since only the Map values are being extracted below,
24+
// replace `as` with `cast` when `cast` becomes available in Dart 2.0:
25+
//
26+
// .addAll(elements['library'].values.cast<Map>().map(parseLibrary));
27+
result.libraries.addAll(
28+
(elements['library'] as Map).values.map((l) => parseLibrary(l)));
29+
result.classes
30+
.addAll((elements['class'] as Map).values.map((c) => parseClass(c)));
31+
result.functions.addAll(
32+
(elements['function'] as Map).values.map((f) => parseFunction(f)));
2833

2934
// TODO(het): Revert this when the dart2js with the new codec is in stable
3035
if (elements['closure'] != null) {
31-
result.closures
32-
.addAll((elements['closure'] as Map).values.map(parseClosure));
36+
result.closures.addAll(
37+
(elements['closure'] as Map).values.map((c) => parseClosure(c)));
3338
}
34-
result.fields.addAll((elements['field'] as Map).values.map(parseField));
35-
result.typedefs
36-
.addAll((elements['typedef'] as Map).values.map(parseTypedef));
37-
result.constants
38-
.addAll((elements['constant'] as Map).values.map(parseConstant));
39+
result.fields
40+
.addAll((elements['field'] as Map).values.map((f) => parseField(f)));
41+
result.typedefs.addAll(
42+
(elements['typedef'] as Map).values.map((t) => parseTypedef(t)));
43+
result.constants.addAll(
44+
(elements['constant'] as Map).values.map((c) => parseConstant(c)));
3945

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

6268
result.outputUnits
63-
.addAll((json['outputUnits'] as List).map(parseOutputUnit));
69+
.addAll((json['outputUnits'] as List).map((o) => parseOutputUnit(o)));
6470

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

138144
ConstantInfo parseConstant(Map json) {
@@ -220,12 +226,13 @@ class JsonToAllInfoConverter extends Converter<Map<String, dynamic>, AllInfo> {
220226
..type = json['type']
221227
..returnType = json['returnType']
222228
..inferredReturnType = json['inferredReturnType']
223-
..parameters = (json['parameters'] as List).map(parseParameter).toList()
229+
..parameters =
230+
(json['parameters'] as List).map((p) => parseParameter(p)).toList()
224231
..code = json['code']
225232
..sideEffects = json['sideEffects']
226233
..modifiers =
227234
parseModifiers(new Map<String, bool>.from(json['modifiers']))
228-
..closures = (json['children'] as List).map(parseId).toList()
235+
..closures = (json['children'] as List).map((p) => parseId(p)).toList()
229236
..measurements = parseMeasurements(json['measurements']);
230237
}
231238

0 commit comments

Comments
 (0)