Switch analysis options to enable strict casts
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 829759f..9dfba69 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -1,8 +1,8 @@
 include: package:lints/recommended.yaml
 
 analyzer:
-  strong-mode:
-    implicit-casts: false
+  language:
+    strict-casts: true
 
   exclude:
     - var/**
diff --git a/test/collect_coverage_test.dart b/test/collect_coverage_test.dart
index 91d6480..fa96376 100644
--- a/test/collect_coverage_test.dart
+++ b/test/collect_coverage_test.dart
@@ -33,18 +33,18 @@
     final coverage = jsonResult['coverage'] as List;
     expect(coverage, isNotEmpty);
 
-    final sources = coverage.fold<Map<String, dynamic>>(<String, dynamic>{},
-        (Map<String, dynamic> map, dynamic value) {
+    final sources = coverage.cast<Map>().fold(<String, List<Map>>{},
+        (Map<String, List<Map>> map, value) {
       final sourceUri = value['source'] as String;
       map.putIfAbsent(sourceUri, () => <Map>[]).add(value);
       return map;
     });
 
-    for (var sampleCoverageData in sources[_sampleAppFileUri]) {
+    for (var sampleCoverageData in sources[_sampleAppFileUri]!) {
       expect(sampleCoverageData['hits'], isNotNull);
     }
 
-    for (var sampleCoverageData in sources[_isolateLibFileUri]) {
+    for (var sampleCoverageData in sources[_isolateLibFileUri]!) {
       expect(sampleCoverageData['hits'], isNotEmpty);
     }
   });
diff --git a/test/run_and_collect_test.dart b/test/run_and_collect_test.dart
index 0e0f4e2..551671f 100644
--- a/test/run_and_collect_test.dart
+++ b/test/run_and_collect_test.dart
@@ -23,18 +23,18 @@
     final coverage = json['coverage'] as List<Map<String, dynamic>>;
     expect(coverage, isNotEmpty);
 
-    final sources = coverage.fold<Map<String, dynamic>>(<String, dynamic>{},
-        (Map<String, dynamic> map, dynamic value) {
+    final sources = coverage.cast<Map>().fold(<String, List<Map>>{},
+        (Map<String, List<Map>> map, value) {
       final sourceUri = value['source'] as String;
       map.putIfAbsent(sourceUri, () => <Map>[]).add(value);
       return map;
     });
 
-    for (var sampleCoverageData in sources[_sampleAppFileUri]) {
+    for (var sampleCoverageData in sources[_sampleAppFileUri]!) {
       expect(sampleCoverageData['hits'], isNotNull);
     }
 
-    for (var sampleCoverageData in sources[_isolateLibFileUri]) {
+    for (var sampleCoverageData in sources[_isolateLibFileUri]!) {
       expect(sampleCoverageData['hits'], isNotEmpty);
     }
 
@@ -91,7 +91,7 @@
   final String packageUtilKey = keys
       .where((element) => element.endsWith('package:coverage/src/util.dart'))
       .single;
-  expect(ignoredLinesInFilesCache[packageUtilKey], []);
+  expect(ignoredLinesInFilesCache[packageUtilKey], isEmpty);
   expect(ignoredLinesInFilesCache[testAppKey], null /* means whole file */);
   expect(ignoredLinesInFilesCache[testAppIsolateKey], [
     [51, 51],