diff --git a/analysis_options.yaml b/analysis_options.yaml
index d51b2bf..91d7df8 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -20,6 +20,7 @@
 
 analyzer:
   strong-mode:
+    implicit-casts: false
     implicit-dynamic: false
   errors:
     # treat missing required parameters as a warning (not a hint)
diff --git a/dev/devicelab/bin/tasks/fast_scroll_large_images__memory.dart b/dev/devicelab/bin/tasks/fast_scroll_large_images__memory.dart
index b3e2c9e..7cc7cd2 100644
--- a/dev/devicelab/bin/tasks/fast_scroll_large_images__memory.dart
+++ b/dev/devicelab/bin/tasks/fast_scroll_large_images__memory.dart
@@ -20,7 +20,7 @@
         );
 
   @override
-  AndroidDevice get device => super.device;
+  AndroidDevice get device => super.device as AndroidDevice;
 
   @override
   int get iterationCount => 5;
diff --git a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/driver_screenshot_tester.dart b/dev/integration_tests/flutter_driver_screenshot_test/test_driver/driver_screenshot_tester.dart
index 93b2063..a08c862 100644
--- a/dev/integration_tests/flutter_driver_screenshot_test/test_driver/driver_screenshot_tester.dart
+++ b/dev/integration_tests/flutter_driver_screenshot_test/test_driver/driver_screenshot_tester.dart
@@ -4,10 +4,11 @@
 
 import 'dart:async';
 import 'dart:io' show File;
+
+import 'package:flutter/foundation.dart';
+import 'package:flutter_driver/flutter_driver.dart';
 import 'package:meta/meta.dart';
 import 'package:path/path.dart' as path;
-import 'package:flutter_driver/flutter_driver.dart';
-import 'package:collection/collection.dart';
 
 const String _kPathParent = 'test_driver/goldens/';
 
@@ -43,8 +44,7 @@
   Future<bool> compareScreenshots(List<int> screenshot) async {
     final File file = File(_getImageFilePath());
     final List<int> matcher = await file.readAsBytes();
-    final Function listEquals = const ListEquality<int>().equals;
-    return listEquals(screenshot, matcher);
+    return listEquals<int>(screenshot, matcher);
   }
 
   /// Returns a bytes representation of a screenshot on the current screen.
diff --git a/dev/tools/localization/bin/gen_l10n.dart b/dev/tools/localization/bin/gen_l10n.dart
index 06a46db..31fb572 100644
--- a/dev/tools/localization/bin/gen_l10n.dart
+++ b/dev/tools/localization/bin/gen_l10n.dart
@@ -53,10 +53,10 @@
     exit(0);
   }
 
-  final String arbPathString = results['arb-dir'];
-  final String outputFileString = results['output-localization-file'];
-  final String templateArbFileName = results['template-arb-file'];
-  final String classNameString = results['output-class'];
+  final String arbPathString = results['arb-dir'] as String;
+  final String outputFileString = results['output-localization-file'] as String;
+  final String templateArbFileName = results['template-arb-file'] as String;
+  final String classNameString = results['output-class'] as String;
 
   const local.LocalFileSystem fs = local.LocalFileSystem();
   final LocalizationsGenerator localizationsGenerator = LocalizationsGenerator(fs);
diff --git a/dev/tools/localization/gen_l10n.dart b/dev/tools/localization/gen_l10n.dart
index 3bab7be..7c6944f 100644
--- a/dev/tools/localization/gen_l10n.dart
+++ b/dev/tools/localization/gen_l10n.dart
@@ -214,10 +214,7 @@
   's',
 };
 
-bool _isDateParameter(dynamic placeholderValue) {
-  return placeholderValue is Map<String, dynamic> &&
-    placeholderValue['type'] == 'DateTime';
-}
+bool _isDateParameter(Map<String, dynamic> placeholderValue) => placeholderValue['type'] == 'DateTime';
 
 bool _dateParameterIsValid(Map<String, dynamic> placeholderValue, String placeholder) {
   if (allowableDateFormats.contains(placeholderValue['format']))
@@ -260,6 +257,7 @@
     for (String placeholder in placeholders.keys) {
       final dynamic value = placeholders[placeholder];
       if (
+        value is Map<String, dynamic> &&
         _isDateParameter(value) &&
         _containsFormatKey(value, placeholder) &&
         _dateParameterIsValid(value, placeholder)
@@ -291,6 +289,7 @@
         for (String placeholder in placeholders.keys) {
           final dynamic value = placeholders[placeholder];
           if (
+            value is Map<String, dynamic> &&
             _isDateParameter(value) &&
             _containsFormatKey(value, placeholder) &&
             _dateParameterIsValid(value, placeholder)
@@ -315,7 +314,7 @@
     final Map<String, dynamic> placeholders = attributesMap['placeholders'] as Map<String, dynamic>;
     for (String placeholder in placeholders.keys) {
       final dynamic value = placeholders[placeholder];
-      if (_isDateParameter(value)) {
+      if (value is Map<String, dynamic> && _isDateParameter(value)) {
         message = message.replaceAll('{$placeholder}', '\$${placeholder}String');
       } else {
         message = message.replaceAll('{$placeholder}', '\$$placeholder');
@@ -599,8 +598,8 @@
     for (File file in fileSystemEntityList) {
       final String filePath = file.path;
       if (arbFilenameRE.hasMatch(filePath)) {
-        final Map<String, dynamic> arbContents = json.decode(file.readAsStringSync());
-        String localeString = arbContents['@@locale'];
+        final Map<String, dynamic> arbContents = json.decode(file.readAsStringSync()) as Map<String, dynamic>;
+        String localeString = arbContents['@@locale'] as String;
         if (localeString == null) {
           final RegExpMatch arbFileMatch = arbFilenameLocaleRE.firstMatch(filePath);
           if (arbFileMatch == null) {
@@ -653,7 +652,7 @@
   void generateClassMethods() {
     Map<String, dynamic> bundle;
     try {
-      bundle = json.decode(templateArbFile.readAsStringSync());
+      bundle = json.decode(templateArbFile.readAsStringSync()) as Map<String, dynamic>;
     } on FileSystemException catch (e) {
       throw FileSystemException('Unable to read input arb file: $e');
     } on FormatException catch (e) {
@@ -669,7 +668,7 @@
           'Invalid key format: $key \n It has to be in camel case, cannot start '
           'with a number, and cannot contain non-alphanumeric characters.'
         );
-      if (pluralValueRE.hasMatch(bundle[key]))
+      if (pluralValueRE.hasMatch(bundle[key] as String))
         classMethods.add(genPluralMethod(bundle, key));
       else
         classMethods.add(genSimpleMethod(bundle, key));
diff --git a/packages/flutter/lib/src/gestures/mouse_tracking.dart b/packages/flutter/lib/src/gestures/mouse_tracking.dart
index ba309bf..563b12b 100644
--- a/packages/flutter/lib/src/gestures/mouse_tracking.dart
+++ b/packages/flutter/lib/src/gestures/mouse_tracking.dart
@@ -314,7 +314,7 @@
     final int device = state.device;
     return (_mouseStates.containsKey(device) && _trackedAnnotations.isNotEmpty)
       ? LinkedHashSet<MouseTrackerAnnotation>.from(annotationFinder(globalPosition))
-      : <MouseTrackerAnnotation>{};
+      : <MouseTrackerAnnotation>{} as LinkedHashSet<MouseTrackerAnnotation>;
   }
 
   static bool get _duringBuildPhase {
diff --git a/packages/flutter/lib/src/material/reorderable_list.dart b/packages/flutter/lib/src/material/reorderable_list.dart
index 8dba05b..6b261cf 100644
--- a/packages/flutter/lib/src/material/reorderable_list.dart
+++ b/packages/flutter/lib/src/material/reorderable_list.dart
@@ -530,7 +530,7 @@
           return _dragging == toAccept && toAccept != toWrap.key;
         },
         onAccept: (Key accepted) { },
-        onLeave: (Key leaving) { },
+        onLeave: (Object leaving) { },
       );
     });
   }
diff --git a/packages/flutter/lib/src/painting/edge_insets.dart b/packages/flutter/lib/src/painting/edge_insets.dart
index 4c2b61a..63504c8 100644
--- a/packages/flutter/lib/src/painting/edge_insets.dart
+++ b/packages/flutter/lib/src/painting/edge_insets.dart
@@ -162,12 +162,12 @@
   /// or equal to `min`, and less than or equal to `max`.
   EdgeInsetsGeometry clamp(EdgeInsetsGeometry min, EdgeInsetsGeometry max) {
     return _MixedEdgeInsets.fromLRSETB(
-      _left.clamp(min._left, max._left),
-      _right.clamp(min._right, max._right),
-      _start.clamp(min._start, max._start),
-      _end.clamp(min._end, max._end),
-      _top.clamp(min._top, max._top),
-      _bottom.clamp(min._bottom, max._bottom),
+      _left.clamp(min._left, max._left) as double,
+      _right.clamp(min._right, max._right) as double,
+      _start.clamp(min._start, max._start) as double,
+      _end.clamp(min._end, max._end) as double,
+      _top.clamp(min._top, max._top) as double,
+      _bottom.clamp(min._bottom, max._bottom) as double,
     );
   }
 
diff --git a/packages/flutter/lib/src/rendering/layer.dart b/packages/flutter/lib/src/rendering/layer.dart
index a9bde83..0a7cba2 100644
--- a/packages/flutter/lib/src/rendering/layer.dart
+++ b/packages/flutter/lib/src/rendering/layer.dart
@@ -672,9 +672,9 @@
     if (hoverAnnotation == null || !rect.contains(localPosition)) {
       return false;
     }
-    if (MouseTrackerAnnotation == S) {
+    if (S == MouseTrackerAnnotation) {
       final Object untypedValue = hoverAnnotation;
-      final S typedValue = untypedValue;
+      final S typedValue = untypedValue as S;
       result.add(AnnotationEntry<S>(
         annotation: typedValue,
         localPosition: localPosition,
diff --git a/packages/flutter/lib/src/rendering/proxy_sliver.dart b/packages/flutter/lib/src/rendering/proxy_sliver.dart
index ad1f7a1..4c1ac24 100644
--- a/packages/flutter/lib/src/rendering/proxy_sliver.dart
+++ b/packages/flutter/lib/src/rendering/proxy_sliver.dart
@@ -7,6 +7,7 @@
 import 'package:flutter/foundation.dart';
 import 'package:vector_math/vector_math_64.dart';
 
+import 'layer.dart';
 import 'object.dart';
 import 'sliver.dart';
 
@@ -71,7 +72,7 @@
   @override
   void applyPaintTransform(RenderObject child, Matrix4 transform) {
     assert(child != null);
-    final SliverPhysicalParentData childParentData = child.parentData;
+    final SliverPhysicalParentData childParentData = child.parentData as SliverPhysicalParentData;
     childParentData.applyPaintTransform(transform);
   }
 }
@@ -169,7 +170,7 @@
         offset,
         _alpha,
         _paintWithOpacity,
-        oldLayer: layer,
+        oldLayer: layer as OpacityLayer,
       );
     }
   }
diff --git a/packages/flutter/lib/src/widgets/binding.dart b/packages/flutter/lib/src/widgets/binding.dart
index 4965249..1fba2f5 100644
--- a/packages/flutter/lib/src/widgets/binding.dart
+++ b/packages/flutter/lib/src/widgets/binding.dart
@@ -332,7 +332,7 @@
       registerServiceExtension(
         name: 'fastReassemble',
         callback: (Map<String, Object> params) async {
-          final String className = params['class'];
+          final String className = params['class'] as String;
           void markElementsDirty(Element element) {
             if (element == null) {
               return;
diff --git a/packages/flutter/lib/src/widgets/drag_target.dart b/packages/flutter/lib/src/widgets/drag_target.dart
index f504e9b..1365be2 100644
--- a/packages/flutter/lib/src/widgets/drag_target.dart
+++ b/packages/flutter/lib/src/widgets/drag_target.dart
@@ -48,7 +48,7 @@
 /// Signature for when a [Draggable] leaves a [DragTarget].
 ///
 /// Used by [DragTarget.onLeave].
-typedef DragTargetLeave<T> = void Function(T data);
+typedef DragTargetLeave = void Function(Object data);
 
 /// Where the [Draggable] should be anchored during a drag.
 enum DragAnchor {
@@ -502,7 +502,7 @@
 
   /// Called when a given piece of data being dragged over this target leaves
   /// the target.
-  final DragTargetLeave<T> onLeave;
+  final DragTargetLeave onLeave;
 
   @override
   _DragTargetState<T> createState() => _DragTargetState<T>();
@@ -514,13 +514,12 @@
 
 class _DragTargetState<T> extends State<DragTarget<T>> {
   final List<_DragAvatar<T>> _candidateAvatars = <_DragAvatar<T>>[];
-  final List<_DragAvatar<dynamic>> _rejectedAvatars = <_DragAvatar<dynamic>>[];
+  final List<_DragAvatar<Object>> _rejectedAvatars = <_DragAvatar<Object>>[];
 
-  bool didEnter(_DragAvatar<dynamic> avatar) {
+  bool didEnter(_DragAvatar<Object> avatar) {
     assert(!_candidateAvatars.contains(avatar));
     assert(!_rejectedAvatars.contains(avatar));
-    final dynamic data = avatar.data;
-    if (data is T && (widget.onWillAccept == null || widget.onWillAccept(data))) {
+    if (avatar is _DragAvatar<T> && (widget.onWillAccept == null || widget.onWillAccept(avatar.data))) {
       setState(() {
         _candidateAvatars.add(avatar);
       });
@@ -533,7 +532,7 @@
     }
   }
 
-  void didLeave(_DragAvatar<dynamic> avatar) {
+  void didLeave(_DragAvatar<Object> avatar) {
     assert(_candidateAvatars.contains(avatar) || _rejectedAvatars.contains(avatar));
     if (!mounted)
       return;
@@ -545,7 +544,7 @@
       widget.onLeave(avatar.data);
   }
 
-  void didDrop(_DragAvatar<dynamic> avatar) {
+  void didDrop(_DragAvatar<Object> avatar) {
     assert(_candidateAvatars.contains(avatar));
     if (!mounted)
       return;
@@ -553,7 +552,7 @@
       _candidateAvatars.remove(avatar);
     });
     if (widget.onAccept != null)
-      widget.onAccept(avatar.data);
+      widget.onAccept(avatar.data as T);
   }
 
   @override
@@ -562,7 +561,7 @@
     return MetaData(
       metaData: this,
       behavior: HitTestBehavior.translucent,
-      child: widget.builder(context, _mapAvatarsToData<T>(_candidateAvatars), _mapAvatarsToData<dynamic>(_rejectedAvatars)),
+      child: widget.builder(context, _mapAvatarsToData<T>(_candidateAvatars), _mapAvatarsToData<Object>(_rejectedAvatars)),
     );
   }
 }
diff --git a/packages/flutter/test/widgets/draggable_test.dart b/packages/flutter/test/widgets/draggable_test.dart
index 2c00324..3a9023a 100644
--- a/packages/flutter/test/widgets/draggable_test.dart
+++ b/packages/flutter/test/widgets/draggable_test.dart
@@ -90,13 +90,21 @@
             builder: (BuildContext context, List<int> data, List<dynamic> rejects) {
               return Container(height: 100.0, child: const Text('Target 1'));
             },
-            onLeave: (int data) => leftBehind['Target 1'] = leftBehind['Target 1'] + data,
+            onLeave: (Object data) {
+              if (data is int) {
+                leftBehind['Target 1'] = leftBehind['Target 1'] + data;
+              }
+            },
           ),
           DragTarget<int>(
             builder: (BuildContext context, List<int> data, List<dynamic> rejects) {
               return Container(height: 100.0, child: const Text('Target 2'));
             },
-            onLeave: (int data) => leftBehind['Target 2'] = leftBehind['Target 2'] + data,
+            onLeave: (Object data) {
+              if (data is int) {
+                leftBehind['Target 2'] = leftBehind['Target 2'] + data;
+              }
+            },
           ),
         ],
       ),
diff --git a/packages/flutter_driver/analysis_options.yaml b/packages/flutter_driver/analysis_options.yaml
deleted file mode 100644
index a08bda2..0000000
--- a/packages/flutter_driver/analysis_options.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Override the parent analysis_options until all the repo has implicit-casts: false
-
-include: ../analysis_options.yaml
-
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
diff --git a/packages/flutter_goldens/analysis_options.yaml b/packages/flutter_goldens/analysis_options.yaml
index b9d57a9..b8591ca 100644
--- a/packages/flutter_goldens/analysis_options.yaml
+++ b/packages/flutter_goldens/analysis_options.yaml
@@ -2,8 +2,3 @@
 # the ones from above, which include the `public_member_api_docs` rule).
 
 include: ../../analysis_options.yaml
-
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
diff --git a/packages/flutter_goldens_client/analysis_options.yaml b/packages/flutter_goldens_client/analysis_options.yaml
index b9d57a9..b8591ca 100644
--- a/packages/flutter_goldens_client/analysis_options.yaml
+++ b/packages/flutter_goldens_client/analysis_options.yaml
@@ -2,8 +2,3 @@
 # the ones from above, which include the `public_member_api_docs` rule).
 
 include: ../../analysis_options.yaml
-
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
diff --git a/packages/flutter_localizations/analysis_options.yaml b/packages/flutter_localizations/analysis_options.yaml
deleted file mode 100644
index 2344f5a..0000000
--- a/packages/flutter_localizations/analysis_options.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-# Override the parent analysis_options until all the repo has implicit-casts: false
-
-include: ../analysis_options.yaml
-
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
-
-linter:
-  rules:
-    avoid_as: false
diff --git a/packages/flutter_test/analysis_options.yaml b/packages/flutter_test/analysis_options.yaml
deleted file mode 100644
index 3de2cb2..0000000
--- a/packages/flutter_test/analysis_options.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-include: ../analysis_options.yaml
-
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
diff --git a/packages/flutter_tools/analysis_options.yaml b/packages/flutter_tools/analysis_options.yaml
index 9d30761..525929f 100644
--- a/packages/flutter_tools/analysis_options.yaml
+++ b/packages/flutter_tools/analysis_options.yaml
@@ -3,11 +3,6 @@
 
 include: ../../analysis_options.yaml
 
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
-
 linter:
   rules:
     unawaited_futures: true
diff --git a/packages/flutter_web_plugins/analysis_options.yaml b/packages/flutter_web_plugins/analysis_options.yaml
deleted file mode 100644
index a08bda2..0000000
--- a/packages/flutter_web_plugins/analysis_options.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Override the parent analysis_options until all the repo has implicit-casts: false
-
-include: ../analysis_options.yaml
-
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
diff --git a/packages/fuchsia_remote_debug_protocol/analysis_options.yaml b/packages/fuchsia_remote_debug_protocol/analysis_options.yaml
deleted file mode 100644
index a08bda2..0000000
--- a/packages/fuchsia_remote_debug_protocol/analysis_options.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-# Override the parent analysis_options until all the repo has implicit-casts: false
-
-include: ../analysis_options.yaml
-
-analyzer:
-  strong-mode:
-    implicit-casts: false
-    implicit-dynamic: false
