Revert "Replace some `dynamic` to `Object?` type (#80772)" (#80965) (#80986)

* Revert "Replace some `dynamic` to `Object?` type (#80772)" (#80965)

This reverts commit 12a2e682b47e16818cc7cd9ca5fe8ea09fd38992.

* Add frontend_server_client to dependency allowlist (#80912)

Co-authored-by: Jenn Magder <magder@google.com>
diff --git a/dev/automated_tests/pubspec.yaml b/dev/automated_tests/pubspec.yaml
index a5aa9ef..80804fc 100644
--- a/dev/automated_tests/pubspec.yaml
+++ b/dev/automated_tests/pubspec.yaml
@@ -12,8 +12,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -68,4 +68,4 @@
   assets:
   - icon/
 
-# PUBSPEC CHECKSUM: 9d5f
+# PUBSPEC CHECKSUM: aa61
diff --git a/dev/benchmarks/complex_layout/pubspec.yaml b/dev/benchmarks/complex_layout/pubspec.yaml
index c4e2cd1..e088b94 100644
--- a/dev/benchmarks/complex_layout/pubspec.yaml
+++ b/dev/benchmarks/complex_layout/pubspec.yaml
@@ -38,8 +38,8 @@
   integration_test:
     sdk: flutter
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -84,4 +84,4 @@
     - packages/flutter_gallery_assets/people/square/ali.png
     - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png
 
-# PUBSPEC CHECKSUM: 896e
+# PUBSPEC CHECKSUM: c370
diff --git a/dev/benchmarks/macrobenchmarks/pubspec.yaml b/dev/benchmarks/macrobenchmarks/pubspec.yaml
index c7864cc..61acfad 100644
--- a/dev/benchmarks/macrobenchmarks/pubspec.yaml
+++ b/dev/benchmarks/macrobenchmarks/pubspec.yaml
@@ -38,8 +38,8 @@
   integration_test:
     sdk: flutter
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -209,4 +209,4 @@
       fonts:
         - asset: packages/flutter_gallery_assets/fonts/GalleryIcons.ttf
 
-# PUBSPEC CHECKSUM: 896e
+# PUBSPEC CHECKSUM: c370
diff --git a/dev/benchmarks/microbenchmarks/pubspec.yaml b/dev/benchmarks/microbenchmarks/pubspec.yaml
index 40ecfc9..bf9a41d 100644
--- a/dev/benchmarks/microbenchmarks/pubspec.yaml
+++ b/dev/benchmarks/microbenchmarks/pubspec.yaml
@@ -14,8 +14,8 @@
     path: ../test_apps/stocks
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -70,4 +70,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: ba16
+# PUBSPEC CHECKSUM: 6018
diff --git a/dev/benchmarks/platform_views_layout/pubspec.yaml b/dev/benchmarks/platform_views_layout/pubspec.yaml
index ef7bee2..bf46f72 100644
--- a/dev/benchmarks/platform_views_layout/pubspec.yaml
+++ b/dev/benchmarks/platform_views_layout/pubspec.yaml
@@ -36,8 +36,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -82,4 +82,4 @@
     - packages/flutter_gallery_assets/people/square/ali.png
     - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png
 
-# PUBSPEC CHECKSUM: 896e
+# PUBSPEC CHECKSUM: c370
diff --git a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml
index 92026eb..e88cdd5 100644
--- a/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml
+++ b/dev/benchmarks/platform_views_layout_hybrid_composition/pubspec.yaml
@@ -36,8 +36,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -82,4 +82,4 @@
     - packages/flutter_gallery_assets/people/square/ali.png
     - packages/flutter_gallery_assets/places/india_chettinad_silk_maker.png
 
-# PUBSPEC CHECKSUM: 896e
+# PUBSPEC CHECKSUM: c370
diff --git a/dev/benchmarks/test_apps/stocks/pubspec.yaml b/dev/benchmarks/test_apps/stocks/pubspec.yaml
index 95b3ebe..72b4cf4 100644
--- a/dev/benchmarks/test_apps/stocks/pubspec.yaml
+++ b/dev/benchmarks/test_apps/stocks/pubspec.yaml
@@ -33,8 +33,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -77,4 +77,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: 518a
+# PUBSPEC CHECKSUM: af8c
diff --git a/dev/bots/allowlist.dart b/dev/bots/allowlist.dart
index 64dfedf..9b1b016 100644
--- a/dev/bots/allowlist.dart
+++ b/dev/bots/allowlist.dart
@@ -18,6 +18,7 @@
   'collection',
   'fake_async',
   'file',
+  'frontend_server_client',
   'intl',
   'meta',
   'path',
diff --git a/dev/bots/analyze.dart b/dev/bots/analyze.dart
index a32f80d..429b9b3 100644
--- a/dev/bots/analyze.dart
+++ b/dev/bots/analyze.dart
@@ -1173,7 +1173,7 @@
 
   // Do not change this signature without following the directions in
   // dev/bots/allowlist.dart
-  const String kExpected = '3S20q38QbN+dDAp+jApXiTRaDgVGGBZ0t4bMJgD3AUY=';
+  const String kExpected = 'nkO7DCjvSMB6VKyw+V9MU46m3xFEk/oYSbmgAWqvbXE=';
 
   if (disallowed.isNotEmpty) {
     exitWithError(<String>[
diff --git a/dev/bots/pubspec.yaml b/dev/bots/pubspec.yaml
index ecacfa6..1582105 100644
--- a/dev/bots/pubspec.yaml
+++ b/dev/bots/pubspec.yaml
@@ -16,8 +16,8 @@
   process: 4.2.1
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   charcode: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -61,4 +61,4 @@
 dev_dependencies:
   test_api: 0.3.0
 
-# PUBSPEC CHECKSUM: 668e
+# PUBSPEC CHECKSUM: 1790
diff --git a/dev/customer_testing/pubspec.yaml b/dev/customer_testing/pubspec.yaml
index 55a8605..ae74de2 100644
--- a/dev/customer_testing/pubspec.yaml
+++ b/dev/customer_testing/pubspec.yaml
@@ -22,8 +22,8 @@
 dev_dependencies:
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   cli_util: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   convert: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -57,4 +57,4 @@
   webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: c14d
+# PUBSPEC CHECKSUM: cd4f
diff --git a/dev/devicelab/pubspec.yaml b/dev/devicelab/pubspec.yaml
index 480033f..d8cea3b 100644
--- a/dev/devicelab/pubspec.yaml
+++ b/dev/devicelab/pubspec.yaml
@@ -30,8 +30,8 @@
 dev_dependencies:
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   cli_util: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -63,4 +63,4 @@
   webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: 668e
+# PUBSPEC CHECKSUM: 1790
diff --git a/dev/integration_tests/android_semantics_testing/pubspec.yaml b/dev/integration_tests/android_semantics_testing/pubspec.yaml
index 2da4bb4..f0a9672 100644
--- a/dev/integration_tests/android_semantics_testing/pubspec.yaml
+++ b/dev/integration_tests/android_semantics_testing/pubspec.yaml
@@ -10,8 +10,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -65,4 +65,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: c31a
+# PUBSPEC CHECKSUM: 151c
diff --git a/dev/integration_tests/android_views/pubspec.yaml b/dev/integration_tests/android_views/pubspec.yaml
index fb1793b..be4481e 100644
--- a/dev/integration_tests/android_views/pubspec.yaml
+++ b/dev/integration_tests/android_views/pubspec.yaml
@@ -48,8 +48,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -91,4 +91,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: 09cb
+# PUBSPEC CHECKSUM: a2cd
diff --git a/dev/integration_tests/channels/pubspec.yaml b/dev/integration_tests/channels/pubspec.yaml
index c7c50c8..a9cb1f2 100644
--- a/dev/integration_tests/channels/pubspec.yaml
+++ b/dev/integration_tests/channels/pubspec.yaml
@@ -11,8 +11,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -66,4 +66,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: c31a
+# PUBSPEC CHECKSUM: 151c
diff --git a/dev/integration_tests/external_ui/pubspec.yaml b/dev/integration_tests/external_ui/pubspec.yaml
index 34884dd..6630682 100644
--- a/dev/integration_tests/external_ui/pubspec.yaml
+++ b/dev/integration_tests/external_ui/pubspec.yaml
@@ -11,8 +11,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -66,4 +66,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: c31a
+# PUBSPEC CHECKSUM: 151c
diff --git a/dev/integration_tests/flavors/pubspec.yaml b/dev/integration_tests/flavors/pubspec.yaml
index 937a4f3..bb6b462 100644
--- a/dev/integration_tests/flavors/pubspec.yaml
+++ b/dev/integration_tests/flavors/pubspec.yaml
@@ -11,8 +11,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -66,4 +66,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: c31a
+# PUBSPEC CHECKSUM: 151c
diff --git a/dev/integration_tests/flutter_gallery/pubspec.yaml b/dev/integration_tests/flutter_gallery/pubspec.yaml
index a72ebd4..954fb2d 100644
--- a/dev/integration_tests/flutter_gallery/pubspec.yaml
+++ b/dev/integration_tests/flutter_gallery/pubspec.yaml
@@ -65,8 +65,8 @@
   integration_test:
     sdk: flutter
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   cli_util: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -273,4 +273,4 @@
       - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Regular.ttf
       - asset: packages/flutter_gallery_assets/fonts/merriweather/Merriweather-Light.ttf
 
-# PUBSPEC CHECKSUM: a51f
+# PUBSPEC CHECKSUM: a721
diff --git a/dev/integration_tests/hybrid_android_views/pubspec.yaml b/dev/integration_tests/hybrid_android_views/pubspec.yaml
index ab57572..e899cfa 100644
--- a/dev/integration_tests/hybrid_android_views/pubspec.yaml
+++ b/dev/integration_tests/hybrid_android_views/pubspec.yaml
@@ -48,8 +48,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -91,4 +91,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: 09cb
+# PUBSPEC CHECKSUM: a2cd
diff --git a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml
index d0781ae..789cbb8 100644
--- a/dev/integration_tests/ios_platform_view_tests/pubspec.yaml
+++ b/dev/integration_tests/ios_platform_view_tests/pubspec.yaml
@@ -22,8 +22,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -78,4 +78,4 @@
   # the material Icons class.
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: 9fd3
+# PUBSPEC CHECKSUM: 65d5
diff --git a/dev/integration_tests/platform_interaction/pubspec.yaml b/dev/integration_tests/platform_interaction/pubspec.yaml
index 6f4f505..72005d6 100644
--- a/dev/integration_tests/platform_interaction/pubspec.yaml
+++ b/dev/integration_tests/platform_interaction/pubspec.yaml
@@ -11,8 +11,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -66,4 +66,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: c31a
+# PUBSPEC CHECKSUM: 151c
diff --git a/dev/integration_tests/ui/pubspec.yaml b/dev/integration_tests/ui/pubspec.yaml
index 0a91d58..a737e3e 100644
--- a/dev/integration_tests/ui/pubspec.yaml
+++ b/dev/integration_tests/ui/pubspec.yaml
@@ -17,8 +17,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -81,4 +81,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: 83c8
+# PUBSPEC CHECKSUM: e9ca
diff --git a/dev/integration_tests/web_e2e_tests/pubspec.yaml b/dev/integration_tests/web_e2e_tests/pubspec.yaml
index 445e2f5..8b55e736 100644
--- a/dev/integration_tests/web_e2e_tests/pubspec.yaml
+++ b/dev/integration_tests/web_e2e_tests/pubspec.yaml
@@ -24,8 +24,8 @@
   http: 0.13.1
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -73,4 +73,4 @@
   webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: a012
+# PUBSPEC CHECKSUM: 9614
diff --git a/dev/snippets/pubspec.yaml b/dev/snippets/pubspec.yaml
index e292031..dafb0a4 100644
--- a/dev/snippets/pubspec.yaml
+++ b/dev/snippets/pubspec.yaml
@@ -17,8 +17,8 @@
   meta: 1.3.0
   platform: 3.0.0
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   charcode: 1.2.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   cli_util: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -95,4 +95,4 @@
   vm_service_client: 0.2.6 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   web_socket_channel: 1.0.9 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: b088
+# PUBSPEC CHECKSUM: 3d8a
diff --git a/dev/tools/pubspec.yaml b/dev/tools/pubspec.yaml
index 2b44a8f..10b3589 100644
--- a/dev/tools/pubspec.yaml
+++ b/dev/tools/pubspec.yaml
@@ -32,8 +32,8 @@
   test: 1.16.8
   test_api: 0.3.0
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   cli_util: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -65,4 +65,4 @@
   webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: e555
+# PUBSPEC CHECKSUM: a757
diff --git a/examples/hello_world/pubspec.yaml b/examples/hello_world/pubspec.yaml
index 3d424af..dd2544f 100644
--- a/examples/hello_world/pubspec.yaml
+++ b/examples/hello_world/pubspec.yaml
@@ -20,8 +20,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -69,4 +69,4 @@
   webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: 9fd3
+# PUBSPEC CHECKSUM: 65d5
diff --git a/examples/platform_channel/pubspec.yaml b/examples/platform_channel/pubspec.yaml
index 6b38c95..ecd1ead 100644
--- a/examples/platform_channel/pubspec.yaml
+++ b/examples/platform_channel/pubspec.yaml
@@ -20,8 +20,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -72,4 +72,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: 9fd3
+# PUBSPEC CHECKSUM: 65d5
diff --git a/examples/platform_channel_swift/pubspec.yaml b/examples/platform_channel_swift/pubspec.yaml
index b7d0b34..9db0bd6 100644
--- a/examples/platform_channel_swift/pubspec.yaml
+++ b/examples/platform_channel_swift/pubspec.yaml
@@ -20,8 +20,8 @@
     sdk: flutter
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -72,4 +72,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: 9fd3
+# PUBSPEC CHECKSUM: 65d5
diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart
index 163922a..dbc226d 100644
--- a/packages/flutter/lib/src/material/app_bar.dart
+++ b/packages/flutter/lib/src/material/app_bar.dart
@@ -789,7 +789,7 @@
     final ColorScheme colorScheme = theme.colorScheme;
     final AppBarTheme appBarTheme = AppBarTheme.of(context);
     final ScaffoldState? scaffold = Scaffold.maybeOf(context);
-    final ModalRoute<Object?>? parentRoute = ModalRoute.of(context);
+    final ModalRoute<dynamic>? parentRoute = ModalRoute.of(context);
 
     final FlexibleSpaceBarSettings? settings = context.dependOnInheritedWidgetOfExactType<FlexibleSpaceBarSettings>();
     final Set<MaterialState> states = <MaterialState>{
@@ -799,7 +799,7 @@
     final bool hasDrawer = scaffold?.hasDrawer ?? false;
     final bool hasEndDrawer = scaffold?.hasEndDrawer ?? false;
     final bool canPop = parentRoute?.canPop ?? false;
-    final bool useCloseButton = parentRoute is PageRoute<Object?> && parentRoute.fullscreenDialog;
+    final bool useCloseButton = parentRoute is PageRoute<dynamic> && parentRoute.fullscreenDialog;
 
     final double toolbarHeight = widget.toolbarHeight ?? appBarTheme.toolbarHeight ?? kToolbarHeight;
     final bool backwardsCompatibility = widget.backwardsCompatibility ?? appBarTheme.backwardsCompatibility ?? true;
diff --git a/packages/flutter/lib/src/material/drawer.dart b/packages/flutter/lib/src/material/drawer.dart
index 582f571..cf9d1b0 100644
--- a/packages/flutter/lib/src/material/drawer.dart
+++ b/packages/flutter/lib/src/material/drawer.dart
@@ -363,7 +363,7 @@
 
   void _ensureHistoryEntry() {
     if (_historyEntry == null) {
-      final ModalRoute<Object?>? route = ModalRoute.of(context);
+      final ModalRoute<dynamic>? route = ModalRoute.of(context);
       if (route != null) {
         _historyEntry = LocalHistoryEntry(onRemove: _handleHistoryEntryRemoved);
         route.addLocalHistoryEntry(_historyEntry!);
diff --git a/packages/flutter/lib/src/material/scaffold.dart b/packages/flutter/lib/src/material/scaffold.dart
index dabad88..0915763 100644
--- a/packages/flutter/lib/src/material/scaffold.dart
+++ b/packages/flutter/lib/src/material/scaffold.dart
@@ -452,7 +452,7 @@
     _accessibleNavigation = mediaQuery.accessibleNavigation;
 
     if (_snackBars.isNotEmpty) {
-      final ModalRoute<Object?>? route = ModalRoute.of(context);
+      final ModalRoute<dynamic>? route = ModalRoute.of(context);
       if (route == null || route.isCurrent) {
         if (_snackBarController!.isCompleted && _snackBarTimer == null) {
           final SnackBar snackBar = _snackBars.first._widget;
@@ -2408,7 +2408,7 @@
   // Important if the app/user takes an action that could repeatedly show a
   // bottom sheet.
   final List<_StandardBottomSheet> _dismissedBottomSheets = <_StandardBottomSheet>[];
-  PersistentBottomSheetController<Object?>? _currentBottomSheet;
+  PersistentBottomSheetController<dynamic>? _currentBottomSheet;
   final GlobalKey _currentBottomSheetKey = GlobalKey();
 
   void _maybeBuildPersistentBottomSheet() {
@@ -2981,7 +2981,7 @@
     // TODO(Piinks): Remove old SnackBar API after migrating ScaffoldMessenger
     _accessibleNavigation = mediaQuery.accessibleNavigation;
     if (_snackBars.isNotEmpty) {
-      final ModalRoute<Object?>? route = ModalRoute.of(context);
+      final ModalRoute<dynamic>? route = ModalRoute.of(context);
       if (route == null || route.isCurrent) {
         if (_snackBarController!.isCompleted && _snackBarTimer == null) {
           final SnackBar snackBar = _snackBars.first._widget;
diff --git a/packages/flutter/lib/src/widgets/heroes.dart b/packages/flutter/lib/src/widgets/heroes.dart
index fd1c8cd..57028bd 100644
--- a/packages/flutter/lib/src/widgets/heroes.dart
+++ b/packages/flutter/lib/src/widgets/heroes.dart
@@ -487,8 +487,8 @@
   final HeroFlightDirection type;
   final OverlayState overlay;
   final Size navigatorSize;
-  final PageRoute<Object?> fromRoute;
-  final PageRoute<Object?> toRoute;
+  final PageRoute<dynamic> fromRoute;
+  final PageRoute<dynamic> toRoute;
   final _HeroState fromHero;
   final _HeroState toHero;
   final CreateRectTween? createRectTween;
@@ -830,14 +830,14 @@
   final Map<Object, _HeroFlight> _flights = <Object, _HeroFlight>{};
 
   @override
-  void didPush(Route<Object?> route, Route<Object?>? previousRoute) {
+  void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
     assert(navigator != null);
     assert(route != null);
     _maybeStartHeroTransition(previousRoute, route, HeroFlightDirection.push, false);
   }
 
   @override
-  void didPop(Route<Object?> route, Route<Object?>? previousRoute) {
+  void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) {
     assert(navigator != null);
     assert(route != null);
     // Don't trigger another flight when a pop is committed as a user gesture
@@ -847,7 +847,7 @@
   }
 
   @override
-  void didReplace({ Route<Object?>? newRoute, Route<Object?>? oldRoute }) {
+  void didReplace({ Route<dynamic>? newRoute, Route<dynamic>? oldRoute }) {
     assert(navigator != null);
     if (newRoute?.isCurrent == true) {
       // Only run hero animations if the top-most route got replaced.
@@ -856,7 +856,7 @@
   }
 
   @override
-  void didStartUserGesture(Route<Object?> route, Route<Object?>? previousRoute) {
+  void didStartUserGesture(Route<dynamic> route, Route<dynamic>? previousRoute) {
     assert(navigator != null);
     assert(route != null);
     _maybeStartHeroTransition(route, previousRoute, HeroFlightDirection.pop, true);
@@ -892,14 +892,14 @@
   // If we're transitioning between different page routes, start a hero transition
   // after the toRoute has been laid out with its animation's value at 1.0.
   void _maybeStartHeroTransition(
-    Route<Object?>? fromRoute,
-    Route<Object?>? toRoute,
+    Route<dynamic>? fromRoute,
+    Route<dynamic>? toRoute,
     HeroFlightDirection flightType,
     bool isUserGestureTransition,
   ) {
-    if (toRoute != fromRoute && toRoute is PageRoute<Object?> && fromRoute is PageRoute<Object?>) {
-      final PageRoute<Object?> from = fromRoute;
-      final PageRoute<Object?> to = toRoute;
+    if (toRoute != fromRoute && toRoute is PageRoute<dynamic> && fromRoute is PageRoute<dynamic>) {
+      final PageRoute<dynamic> from = fromRoute;
+      final PageRoute<dynamic> to = toRoute;
       final Animation<double> animation = (flightType == HeroFlightDirection.push) ? to.animation! : from.animation!;
 
       // A user gesture may have already completed the pop, or we might be the initial route
@@ -940,8 +940,8 @@
   // Find the matching pairs of heroes in from and to and either start or a new
   // hero flight, or divert an existing one.
   void _startHeroTransition(
-    PageRoute<Object?> from,
-    PageRoute<Object?> to,
+    PageRoute<dynamic> from,
+    PageRoute<dynamic> to,
     Animation<double> animation,
     HeroFlightDirection flightType,
     bool isUserGestureTransition,
diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart
index 90c6e9f..0426044 100644
--- a/packages/flutter/lib/src/widgets/navigator.dart
+++ b/packages/flutter/lib/src/widgets/navigator.dart
@@ -38,12 +38,12 @@
 /// See also:
 ///
 ///  * [Navigator], which is where all the [Route]s end up.
-typedef RouteFactory = Route<Object?>? Function(RouteSettings settings);
+typedef RouteFactory = Route<dynamic>? Function(RouteSettings settings);
 
 /// Creates a series of one or more routes.
 ///
 /// Used by [Navigator.onGenerateInitialRoutes].
-typedef RouteListFactory = List<Route<Object?>> Function(NavigatorState navigator, String initialRoute);
+typedef RouteListFactory = List<Route<dynamic>> Function(NavigatorState navigator, String initialRoute);
 
 /// Creates a [Route] that is to be added to a [Navigator].
 ///
@@ -58,7 +58,7 @@
 typedef RestorableRouteBuilder<T> = Route<T> Function(BuildContext context, Object? arguments);
 
 /// Signature for the [Navigator.popUntil] predicate argument.
-typedef RoutePredicate = bool Function(Route<Object?> route);
+typedef RoutePredicate = bool Function(Route<dynamic> route);
 
 /// Signature for a callback that verifies that it's OK to call [Navigator.pop].
 ///
@@ -73,7 +73,7 @@
 /// [Navigator.pages] so that it no longer includes the corresponding [Page].
 /// (Otherwise, the page will be interpreted as a new page to show when the
 /// [Navigator.pages] list is next updated.)
-typedef PopPageCallback = bool Function(Route<Object?> route, Object? result);
+typedef PopPageCallback = bool Function(Route<dynamic> route, dynamic result);
 
 /// Indicates whether the current route should be popped.
 ///
@@ -260,7 +260,7 @@
   /// immediately after this method is called.
   @protected
   @mustCallSuper
-  void didReplace(Route<Object?>? oldRoute) { }
+  void didReplace(Route<dynamic>? oldRoute) { }
 
   /// Returns whether calling [Navigator.maybePop] when this [Route] is current
   /// ([isCurrent]) should do anything.
@@ -362,7 +362,7 @@
   /// is no next route.
   @protected
   @mustCallSuper
-  void didPopNext(Route<Object?> nextRoute) { }
+  void didPopNext(Route<dynamic> nextRoute) { }
 
   /// This route's next route has changed to the given new route.
   ///
@@ -375,7 +375,7 @@
   /// if [isCurrent] is true).
   @protected
   @mustCallSuper
-  void didChangeNext(Route<Object?>? nextRoute) { }
+  void didChangeNext(Route<dynamic>? nextRoute) { }
 
   /// This route's previous route has changed to the given new route.
   ///
@@ -388,7 +388,7 @@
   /// (i.e. if [isFirst] is true).
   @protected
   @mustCallSuper
-  void didChangePrevious(Route<Object?>? previousRoute) { }
+  void didChangePrevious(Route<dynamic>? previousRoute) { }
 
   /// Called whenever the internal state of the route has changed.
   ///
@@ -588,7 +588,7 @@
   ///
   /// Two pages are consider updatable if they have same the [runtimeType] and
   /// [key].
-  bool canUpdate(Page<Object?> other) {
+  bool canUpdate(Page<dynamic> other) {
     return other.runtimeType == runtimeType &&
            other.key == key;
   }
@@ -613,13 +613,13 @@
   ///
   /// The route immediately below that one, and thus the previously active
   /// route, is `previousRoute`.
-  void didPush(Route<Object?> route, Route<Object?>? previousRoute) { }
+  void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) { }
 
   /// The [Navigator] popped `route`.
   ///
   /// The route immediately below that one, and thus the newly active
   /// route, is `previousRoute`.
-  void didPop(Route<Object?> route, Route<Object?>? previousRoute) { }
+  void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) { }
 
   /// The [Navigator] removed `route`.
   ///
@@ -630,16 +630,16 @@
   /// bottommost route being removed, if any, is `previousRoute`, and this
   /// method will be called once for each removed route, from the topmost route
   /// to the bottommost route.
-  void didRemove(Route<Object?> route, Route<Object?>? previousRoute) { }
+  void didRemove(Route<dynamic> route, Route<dynamic>? previousRoute) { }
 
   /// The [Navigator] replaced `oldRoute` with `newRoute`.
-  void didReplace({ Route<Object?>? newRoute, Route<Object?>? oldRoute }) { }
+  void didReplace({ Route<dynamic>? newRoute, Route<dynamic>? oldRoute }) { }
 
   /// The [Navigator]'s routes are being moved by a user gesture.
   ///
   /// For example, this is called when an iOS back gesture starts, and is used
   /// to disabled hero animations during such interactions.
-  void didStartUserGesture(Route<Object?> route, Route<Object?>? previousRoute) { }
+  void didStartUserGesture(Route<dynamic> route, Route<dynamic>? previousRoute) { }
 
   /// User gesture is no longer controlling the [Navigator].
   ///
@@ -694,7 +694,7 @@
 /// decide how its underlying [Route] should transition on or off screen.
 abstract class RouteTransitionRecord {
   /// Retrieves the wrapped [Route].
-  Route<Object?> get route;
+  Route<dynamic> get route;
 
   /// Whether this route is waiting for the decision on how to enter the screen.
   ///
@@ -729,14 +729,14 @@
   /// During [TransitionDelegate.resolve], this can be called on an exiting
   /// route to indicate that the route should be popped off the [Navigator] with
   /// an animated transition.
-  void markForPop([Object? result]);
+  void markForPop([dynamic result]);
 
   /// Marks the [route] to be completed without transition.
   ///
   /// During [TransitionDelegate.resolve], this can be called on an exiting
   /// route to indicate that the route should be completed with the provided
   /// result and removed from the [Navigator] without an animated transition.
-  void markForComplete([Object? result]);
+  void markForComplete([dynamic result]);
 
   /// Marks the [route] to be removed without transition.
   ///
@@ -1467,13 +1467,13 @@
   /// If the [pages] is not empty, the [onPopPage] must not be null.
   const Navigator({
     Key? key,
-    this.pages = const <Page<Object?>>[],
+    this.pages = const <Page<dynamic>>[],
     this.onPopPage,
     this.initialRoute,
     this.onGenerateInitialRoutes = Navigator.defaultGenerateInitialRoutes,
     this.onGenerateRoute,
     this.onUnknownRoute,
-    this.transitionDelegate = const DefaultTransitionDelegate<Object?>(),
+    this.transitionDelegate = const DefaultTransitionDelegate<dynamic>(),
     this.reportsRouteUpdateToEngine = false,
     this.observers = const <NavigatorObserver>[],
     this.restorationScopeId,
@@ -1512,7 +1512,7 @@
   /// If [initialRoute] is non-null when the widget is first created, then
   /// [onGenerateInitialRoutes] is used to generate routes that are above those
   /// corresponding to [pages] in the initial history.
-  final List<Page<Object?>> pages;
+  final List<Page<dynamic>> pages;
 
   /// Called when [pop] is invoked but the current [Route] corresponds to a
   /// [Page] found in the [pages] list.
@@ -1533,7 +1533,7 @@
   /// during the [pages] updates.
   ///
   /// Defaults to [DefaultTransitionDelegate] if not specified, cannot be null.
-  final TransitionDelegate<Object?> transitionDelegate;
+  final TransitionDelegate<dynamic> transitionDelegate;
 
   /// The name of the first route to show.
   ///
@@ -1994,7 +1994,7 @@
   /// [RoutePredicate] returned from [ModalRoute.withName].
   ///
   /// To remove all the routes below the pushed route, use a [RoutePredicate]
-  /// that always returns false (e.g. `(Route<Object?> route) => false`).
+  /// that always returns false (e.g. `(Route<dynamic> route) => false`).
   ///
   /// The removed routes are removed without being completed, so this method
   /// does not take a return value argument.
@@ -2297,7 +2297,7 @@
   /// [RoutePredicate] returned from [ModalRoute.withName].
   ///
   /// To remove all the routes below the pushed route, use a [RoutePredicate]
-  /// that always returns false (e.g. `(Route<Object?> route) => false`).
+  /// that always returns false (e.g. `(Route<dynamic> route) => false`).
   ///
   /// The removed routes are removed without being completed, so this method
   /// does not take a return value argument.
@@ -2429,7 +2429,7 @@
   ///  * [restorableReplace], which adds a replacement route that can be
   ///    restored during state restoration.
   @optionalTypeArgs
-  static void replace<T extends Object?>(BuildContext context, { required Route<Object?> oldRoute, required Route<T> newRoute }) {
+  static void replace<T extends Object?>(BuildContext context, { required Route<dynamic> oldRoute, required Route<T> newRoute }) {
     return Navigator.of(context).replace<T>(oldRoute: oldRoute, newRoute: newRoute);
   }
 
@@ -2448,7 +2448,7 @@
   ///
   /// {@macro flutter.widgets.Navigator.restorablePushNamed.returnValue}
   @optionalTypeArgs
-  static String restorableReplace<T extends Object?>(BuildContext context, { required Route<Object?> oldRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
+  static String restorableReplace<T extends Object?>(BuildContext context, { required Route<dynamic> oldRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
     return Navigator.of(context).restorableReplace<T>(oldRoute: oldRoute, newRouteBuilder: newRouteBuilder, arguments: arguments);
   }
 
@@ -2484,7 +2484,7 @@
   ///  * [restorableReplaceRouteBelow], which adds a replacement route that can
   ///    be restored during state restoration.
   @optionalTypeArgs
-  static void replaceRouteBelow<T extends Object?>(BuildContext context, { required Route<Object?> anchorRoute, required Route<T> newRoute }) {
+  static void replaceRouteBelow<T extends Object?>(BuildContext context, { required Route<dynamic> anchorRoute, required Route<T> newRoute }) {
     return Navigator.of(context).replaceRouteBelow<T>(anchorRoute: anchorRoute, newRoute: newRoute);
   }
 
@@ -2504,7 +2504,7 @@
   ///
   /// {@macro flutter.widgets.Navigator.restorablePushNamed.returnValue}
   @optionalTypeArgs
-  static String restorableReplaceRouteBelow<T extends Object?>(BuildContext context, { required Route<Object?> anchorRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
+  static String restorableReplaceRouteBelow<T extends Object?>(BuildContext context, { required Route<dynamic> anchorRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
     return Navigator.of(context).restorableReplaceRouteBelow<T>(anchorRoute: anchorRoute, newRouteBuilder: newRouteBuilder, arguments: arguments);
   }
 
@@ -2548,7 +2548,7 @@
   /// Android it's called by the binding for the system's back button.
   ///
   /// The `T` type argument is the type of the return value of the current
-  /// route. (Typically this isn't known; consider specifying `Object?` or
+  /// route. (Typically this isn't known; consider specifying `dynamic` or
   /// `Null`.)
   /// {@endtemplate}
   ///
@@ -2665,7 +2665,7 @@
   ///
   /// This method is used, for example, to instantly dismiss dropdown menus that
   /// are up when the screen's orientation changes.
-  static void removeRoute(BuildContext context, Route<Object?> route) {
+  static void removeRoute(BuildContext context, Route<dynamic> route) {
     return Navigator.of(context).removeRoute(route);
   }
 
@@ -2690,7 +2690,7 @@
   ///
   /// Ongoing gestures within the current route are canceled.
   /// {@endtemplate}
-  static void removeRouteBelow(BuildContext context, Route<Object?> anchorRoute) {
+  static void removeRouteBelow(BuildContext context, Route<dynamic> anchorRoute) {
     return Navigator.of(context).removeRouteBelow(anchorRoute);
   }
 
@@ -2791,8 +2791,8 @@
   /// then the [Navigator] would push the following routes on startup: `/`,
   /// `/stocks`, `/stocks/HOOLI`. This enables deep linking while allowing the
   /// application to maintain a predictable route history.
-  static List<Route<Object?>> defaultGenerateInitialRoutes(NavigatorState navigator, String initialRouteName) {
-    final List<Route<Object?>?> result = <Route<Object?>?>[];
+  static List<Route<dynamic>> defaultGenerateInitialRoutes(NavigatorState navigator, String initialRouteName) {
+    final List<Route<dynamic>?> result = <Route<dynamic>?>[];
     if (initialRouteName.startsWith('/') && initialRouteName.length > 1) {
       initialRouteName = initialRouteName.substring(1); // strip leading '/'
       assert(Navigator.defaultRouteName == '/');
@@ -2801,7 +2801,7 @@
         debugRouteNames = <String>[ Navigator.defaultRouteName ];
         return true;
       }());
-      result.add(navigator._routeNamed<Object?>(Navigator.defaultRouteName, arguments: null, allowNull: true));
+      result.add(navigator._routeNamed<dynamic>(Navigator.defaultRouteName, arguments: null, allowNull: true));
       final List<String> routeParts = initialRouteName.split('/');
       if (initialRouteName.isNotEmpty) {
         String routeName = '';
@@ -2811,7 +2811,7 @@
             debugRouteNames!.add(routeName);
             return true;
           }());
-          result.add(navigator._routeNamed<Object?>(routeName, arguments: null, allowNull: true));
+          result.add(navigator._routeNamed<dynamic>(routeName, arguments: null, allowNull: true));
         }
       }
       if (result.last == null) {
@@ -2832,7 +2832,7 @@
     } else if (initialRouteName != Navigator.defaultRouteName) {
       // If initialRouteName wasn't '/', then we try to get it with allowNull:true, so that if that fails,
       // we fall back to '/' (without allowNull:true, see below).
-      result.add(navigator._routeNamed<Object?>(initialRouteName, arguments: null, allowNull: true));
+      result.add(navigator._routeNamed<dynamic>(initialRouteName, arguments: null, allowNull: true));
     }
     // Null route might be a result of gap in initialRouteName
     //
@@ -2840,10 +2840,10 @@
     // This should result in result = ['A', null,'A/B/C'] where 'A/B' produces
     // the null. In this case, we want to filter out the null and return
     // result = ['A', 'A/B/C'].
-    result.removeWhere((Route<Object?>? route) => route == null);
+    result.removeWhere((Route<dynamic>? route) => route == null);
     if (result.isEmpty)
-      result.add(navigator._routeNamed<Object?>(Navigator.defaultRouteName, arguments: null));
-    return result.cast<Route<Object?>>();
+      result.add(navigator._routeNamed<dynamic>(Navigator.defaultRouteName, arguments: null));
+    return result.cast<Route<dynamic>>();
   }
 
   @override
@@ -2946,15 +2946,15 @@
          currentState = initialState;
 
   @override
-  final Route<Object?> route;
+  final Route<dynamic> route;
   final _RestorationInformation? restorationInformation;
 
-  static Route<Object?> notAnnounced = _NotAnnounced();
+  static Route<dynamic> notAnnounced = _NotAnnounced();
 
   _RouteLifecycle currentState;
-  Route<Object?>? lastAnnouncedPreviousRoute = notAnnounced; // last argument to Route.didChangePrevious
-  Route<Object?> lastAnnouncedPoppedNextRoute = notAnnounced; // last argument to Route.didPopNext
-  Route<Object?>? lastAnnouncedNextRoute = notAnnounced; // last argument to Route.didChangeNext
+  Route<dynamic>? lastAnnouncedPreviousRoute = notAnnounced; // last argument to Route.didChangePrevious
+  Route<dynamic> lastAnnouncedPoppedNextRoute = notAnnounced; // last argument to Route.didPopNext
+  Route<dynamic>? lastAnnouncedNextRoute = notAnnounced; // last argument to Route.didChangeNext
 
   /// Restoration ID to be used for the encapsulating route when restoration is
   /// enabled for it or null if restoration cannot be enabled for it.
@@ -2973,16 +2973,16 @@
 
   bool get hasPage => route.settings is Page;
 
-  bool canUpdateFrom(Page<Object?> page) {
+  bool canUpdateFrom(Page<dynamic> page) {
     if (currentState.index > _RouteLifecycle.idle.index)
       return false;
     if (!hasPage)
       return false;
-    final Page<Object?> routePage = route.settings as Page<Object?>;
+    final Page<dynamic> routePage = route.settings as Page<dynamic>;
     return page.canUpdate(routePage);
   }
 
-  void handleAdd({ required NavigatorState navigator, required Route<Object?>? previousPresent }) {
+  void handleAdd({ required NavigatorState navigator, required Route<dynamic>? previousPresent }) {
     assert(currentState == _RouteLifecycle.add);
     assert(navigator != null);
     assert(navigator._debugLocked);
@@ -2996,7 +2996,7 @@
     );
   }
 
-  void handlePush({ required NavigatorState navigator, required bool isNewFirst, required Route<Object?>? previous, required Route<Object?>? previousPresent }) {
+  void handlePush({ required NavigatorState navigator, required bool isNewFirst, required Route<dynamic>? previous, required Route<dynamic>? previousPresent }) {
     assert(currentState == _RouteLifecycle.push || currentState == _RouteLifecycle.pushReplace || currentState == _RouteLifecycle.replace);
     assert(navigator != null);
     assert(navigator._debugLocked);
@@ -3042,12 +3042,12 @@
     }
   }
 
-  void handleDidPopNext(Route<Object?> poppedRoute) {
+  void handleDidPopNext(Route<dynamic> poppedRoute) {
     route.didPopNext(poppedRoute);
     lastAnnouncedPoppedNextRoute = poppedRoute;
   }
 
-  void handlePop({ required NavigatorState navigator, required Route<Object?>? previousPresent }) {
+  void handlePop({ required NavigatorState navigator, required Route<dynamic>? previousPresent }) {
     assert(navigator != null);
     assert(navigator._debugLocked);
     assert(route._navigator == navigator);
@@ -3057,7 +3057,7 @@
     );
   }
 
-  void handleRemoval({ required NavigatorState navigator, required Route<Object?>? previousPresent }) {
+  void handleRemoval({ required NavigatorState navigator, required Route<dynamic>? previousPresent }) {
     assert(navigator != null);
     assert(navigator._debugLocked);
     assert(route._navigator == navigator);
@@ -3181,7 +3181,7 @@
            currentState.index >= _RouteLifecycle.push.index;
   }
 
-  bool shouldAnnounceChangeToNext(Route<Object?>? nextRoute) {
+  bool shouldAnnounceChangeToNext(Route<dynamic>? nextRoute) {
     assert(nextRoute != lastAnnouncedNextRoute);
     // Do not announce if `next` changes from a just popped route to null. We
     // already announced this change by calling didPopNext.
@@ -3196,7 +3196,7 @@
   static bool suitableForTransitionAnimationPredicate(_RouteEntry entry) => entry.suitableForTransitionAnimation;
   static bool willBePresentPredicate(_RouteEntry entry) => entry.willBePresent;
 
-  static _RouteEntryPredicate isRoutePredicate(Route<Object?> route) {
+  static _RouteEntryPredicate isRoutePredicate(Route<dynamic> route) {
     return (_RouteEntry entry) => entry.route == route;
   }
 
@@ -3230,25 +3230,25 @@
   }
 
   @override
-  void markForPop([Object? result]) {
+  void markForPop([dynamic result]) {
     assert(
       !isWaitingForEnteringDecision && isWaitingForExitingDecision && isPresent,
       'This route cannot be marked for pop. Either a decision has already been '
       'made or it does not require an explicit decision on how to transition out.',
     );
-    pop<Object?>(result);
+    pop<dynamic>(result);
     _isWaitingForExitingDecision = false;
   }
 
   @override
-  void markForComplete([Object? result]) {
+  void markForComplete([dynamic result]) {
     assert(
       !isWaitingForEnteringDecision && isWaitingForExitingDecision && isPresent,
       'This route cannot be marked for complete. Either a decision has already '
       'been made or it does not require an explicit decision on how to transition '
       'out.',
     );
-    complete<Object?>(result);
+    complete<dynamic>(result);
     _isWaitingForExitingDecision = false;
   }
 
@@ -3276,16 +3276,16 @@
     this.primaryRoute,
     this.secondaryRoute,
   );
-  final Route<Object?> primaryRoute;
-  final Route<Object?>? secondaryRoute;
+  final Route<dynamic> primaryRoute;
+  final Route<dynamic>? secondaryRoute;
 
   void notify(NavigatorObserver observer);
 }
 
 class _NavigatorPushObservation extends _NavigatorObservation {
   _NavigatorPushObservation(
-    Route<Object?> primaryRoute,
-    Route<Object?>? secondaryRoute,
+    Route<dynamic> primaryRoute,
+    Route<dynamic>? secondaryRoute,
   ) : super(primaryRoute, secondaryRoute);
 
   @override
@@ -3296,8 +3296,8 @@
 
 class _NavigatorPopObservation extends _NavigatorObservation {
   _NavigatorPopObservation(
-    Route<Object?> primaryRoute,
-    Route<Object?>? secondaryRoute,
+    Route<dynamic> primaryRoute,
+    Route<dynamic>? secondaryRoute,
   ) : super(primaryRoute, secondaryRoute);
 
   @override
@@ -3308,8 +3308,8 @@
 
 class _NavigatorRemoveObservation extends _NavigatorObservation {
   _NavigatorRemoveObservation(
-    Route<Object?> primaryRoute,
-    Route<Object?>? secondaryRoute,
+    Route<dynamic> primaryRoute,
+    Route<dynamic>? secondaryRoute,
   ) : super(primaryRoute, secondaryRoute);
 
   @override
@@ -3320,8 +3320,8 @@
 
 class _NavigatorReplaceObservation extends _NavigatorObservation {
   _NavigatorReplaceObservation(
-    Route<Object?> primaryRoute,
-    Route<Object?>? secondaryRoute,
+    Route<dynamic> primaryRoute,
+    Route<dynamic>? secondaryRoute,
   ) : super(primaryRoute, secondaryRoute);
 
   @override
@@ -3353,7 +3353,7 @@
   void initState() {
     super.initState();
     assert((){
-      if (widget.pages != const <Page<Object?>>[]) {
+      if (widget.pages != const <Page<dynamic>>[]) {
         // This navigator uses page API.
         if (widget.pages.isEmpty) {
           FlutterError.reportError(
@@ -3414,7 +3414,7 @@
 
     // Populate the new history from restoration data.
     _history.addAll(_serializableHistory.restoreEntriesForPage(null, this));
-    for (final Page<Object?> page in widget.pages) {
+    for (final Page<dynamic> page in widget.pages) {
       final _RouteEntry entry = _RouteEntry(
         page.createRoute(context),
         initialState: _RouteLifecycle.add,
@@ -3439,7 +3439,7 @@
           widget.onGenerateInitialRoutes(
             this,
             widget.initialRoute ?? Navigator.defaultRouteName,
-          ).map((Route<Object?> route) => _RouteEntry(
+          ).map((Route<dynamic> route) => _RouteEntry(
               route,
               initialState: _RouteLifecycle.add,
               restorationInformation: route.settings.name != null
@@ -3550,7 +3550,7 @@
   void didUpdateWidget(Navigator oldWidget) {
     super.didUpdateWidget(oldWidget);
     assert((){
-      if (widget.pages != const <Page<Object?>>[]) {
+      if (widget.pages != const <Page<dynamic>>[]) {
         // This navigator uses page API.
         if (widget.pages.isEmpty) {
           FlutterError.reportError(
@@ -3613,7 +3613,7 @@
   void _debugCheckDuplicatedPageKeys() {
     assert((){
       final Set<Key> keyReservation = <Key>{};
-      for (final Page<Object?> page in widget.pages) {
+      for (final Page<dynamic> page in widget.pages) {
         final LocalKey? key = page.key;
         if (key != null) {
           assert(!keyReservation.contains(key));
@@ -3726,7 +3726,7 @@
       }
       if (newPagesBottom > newPagesTop)
         break;
-      final Page<Object?> newPage = widget.pages[newPagesBottom];
+      final Page<dynamic> newPage = widget.pages[newPagesBottom];
       if (!oldEntry.canUpdateFrom(newPage))
         break;
       previousOldPageRouteEntry = oldEntry;
@@ -3748,7 +3748,7 @@
         oldEntriesTop -= 1;
         continue;
       }
-      final Page<Object?> newPage = widget.pages[newPagesTop];
+      final Page<dynamic> newPage = widget.pages[newPagesTop];
       if (!oldEntry.canUpdateFrom(newPage))
         break;
       // We found the page for all the consecutive pageless routes below. Those
@@ -3777,7 +3777,7 @@
 
       assert(oldEntry.hasPage);
 
-      final Page<Object?> page = oldEntry.route.settings as Page<Object?>;
+      final Page<dynamic> page = oldEntry.route.settings as Page<dynamic>;
       if (page.key == null)
         continue;
 
@@ -3787,7 +3787,7 @@
 
     // Updates the middle of the list.
     while (newPagesBottom <= newPagesTop) {
-      final Page<Object?> nextPage = widget.pages[newPagesBottom];
+      final Page<dynamic> nextPage = widget.pages[newPagesBottom];
       newPagesBottom += 1;
       if (
         nextPage.key == null ||
@@ -3836,7 +3836,7 @@
         continue;
       }
 
-      final Page<Object?> potentialPageToRemove = potentialEntryToRemove.route.settings as Page<Object?>;
+      final Page<dynamic> potentialPageToRemove = potentialEntryToRemove.route.settings as Page<dynamic>;
       // Marks for transition delegate to remove if this old page does not have
       // a key or was not taken during updating the middle of new page.
       if (
@@ -3882,7 +3882,7 @@
         continue;
       }
       previousOldPageRouteEntry = oldEntry;
-      final Page<Object?> newPage = widget.pages[newPagesBottom];
+      final Page<dynamic> newPage = widget.pages[newPagesBottom];
       assert(oldEntry.canUpdateFrom(newPage));
       oldEntry.route._updateSettings(newPage);
       newHistory.add(oldEntry);
@@ -3928,7 +3928,7 @@
     _RouteEntry? entry = _history[index];
     _RouteEntry? previous = index > 0 ? _history[index - 1] : null;
     bool canRemoveOrAdd = false; // Whether there is a fully opaque route on top to silently remove or add route underneath.
-    Route<Object?>? poppedRoute; // The route that should trigger didPopNext on the top active route.
+    Route<dynamic>? poppedRoute; // The route that should trigger didPopNext on the top active route.
     bool seenTopActiveRoute = false; // Whether we've seen the route that would get didPopNext.
     final List<_RouteEntry> toBeDisposed = <_RouteEntry>[];
     while (index >= 0) {
@@ -4481,7 +4481,7 @@
     return route.popped;
   }
 
-  bool _debugCheckIsPagelessRoute(Route<Object?> route) {
+  bool _debugCheckIsPagelessRoute(Route<dynamic> route) {
     assert((){
       if (route.settings is Page) {
         FlutterError.reportError(
@@ -4578,19 +4578,19 @@
     _afterNavigation(entry.route);
   }
 
-  void _afterNavigation(Route<Object?>? route) {
+  void _afterNavigation(Route<dynamic>? route) {
     if (!kReleaseMode) {
       // Among other uses, performance tools use this event to ensure that perf
       // stats reflect the time interval since the last navigation event
       // occurred, ensuring that stats only reflect the current page.
 
-      Map<String, Object?>? routeJsonable;
+      Map<String, dynamic>? routeJsonable;
       if (route != null) {
-        routeJsonable = <String, Object?>{};
+        routeJsonable = <String, dynamic>{};
 
         final String description;
-        if (route is TransitionRoute<Object?>) {
-          final TransitionRoute<Object?> transitionRoute = route;
+        if (route is TransitionRoute<dynamic>) {
+          final TransitionRoute<dynamic> transitionRoute = route;
           description = transitionRoute.debugLabel;
         } else {
           description = '$route';
@@ -4598,7 +4598,7 @@
         routeJsonable['description'] = description;
 
         final RouteSettings settings = route.settings;
-        final Map<String, Object?> settingsJsonable = <String, Object?> {
+        final Map<String, dynamic> settingsJsonable = <String, dynamic> {
           'name': settings.name,
         };
         if (settings.arguments != null) {
@@ -4610,7 +4610,7 @@
         routeJsonable['settings'] = settingsJsonable;
       }
 
-      developer.postEvent('Flutter.Navigation', <String, Object?>{
+      developer.postEvent('Flutter.Navigation', <String, dynamic>{
         'route': routeJsonable,
       });
     }
@@ -4852,7 +4852,7 @@
   ///  * [restorableReplace], which adds a replacement route that can be
   ///    restored during state restoration.
   @optionalTypeArgs
-  void replace<T extends Object?>({ required Route<Object?> oldRoute, required Route<T> newRoute }) {
+  void replace<T extends Object?>({ required Route<dynamic> oldRoute, required Route<T> newRoute }) {
     assert(!_debugLocked);
     assert(oldRoute != null);
     assert(oldRoute._navigator == this);
@@ -4870,7 +4870,7 @@
   ///
   /// {@macro flutter.widgets.Navigator.restorablePushNamed.returnValue}
   @optionalTypeArgs
-  String restorableReplace<T extends Object?>({ required Route<Object?> oldRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
+  String restorableReplace<T extends Object?>({ required Route<dynamic> oldRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
     assert(oldRoute != null);
     assert(oldRoute._navigator == this);
     assert(newRouteBuilder != null);
@@ -4886,7 +4886,7 @@
     return entry.restorationId!;
   }
 
-  void _replaceEntry(_RouteEntry entry, Route<Object?> oldRoute) {
+  void _replaceEntry(_RouteEntry entry, Route<dynamic> oldRoute) {
     assert(!_debugLocked);
     if (oldRoute == entry.route)
       return;
@@ -4923,7 +4923,7 @@
   ///  * [restorableReplaceRouteBelow], which adds a replacement route that can
   ///    be restored during state restoration.
   @optionalTypeArgs
-  void replaceRouteBelow<T extends Object?>({ required Route<Object?> anchorRoute, required Route<T> newRoute }) {
+  void replaceRouteBelow<T extends Object?>({ required Route<dynamic> anchorRoute, required Route<T> newRoute }) {
     assert(newRoute != null);
     assert(newRoute._navigator == null);
     assert(anchorRoute != null);
@@ -4942,7 +4942,7 @@
   ///
   /// {@macro flutter.widgets.Navigator.restorablePushNamed.returnValue}
   @optionalTypeArgs
-  String restorableReplaceRouteBelow<T extends Object?>({ required Route<Object?> anchorRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
+  String restorableReplaceRouteBelow<T extends Object?>({ required Route<dynamic> anchorRoute, required RestorableRouteBuilder<T> newRouteBuilder, Object? arguments }) {
     assert(anchorRoute != null);
     assert(anchorRoute._navigator == this);
     assert(newRouteBuilder != null);
@@ -4958,7 +4958,7 @@
     return entry.restorationId!;
   }
 
-  void _replaceEntryBelow(_RouteEntry entry, Route<Object?> anchorRoute) {
+  void _replaceEntryBelow(_RouteEntry entry, Route<dynamic> anchorRoute) {
     assert(!_debugLocked);
     assert(() { _debugLocked = true; return true; }());
     final int anchorIndex = _history.indexWhere(_RouteEntry.isRoutePredicate(anchorRoute));
@@ -5122,7 +5122,7 @@
   /// Immediately remove `route` from the navigator, and [Route.dispose] it.
   ///
   /// {@macro flutter.widgets.navigator.removeRoute}
-  void removeRoute(Route<Object?> route) {
+  void removeRoute(Route<dynamic> route) {
     assert(route != null);
     assert(!_debugLocked);
     assert(() {
@@ -5152,7 +5152,7 @@
   /// route to be removed is the one below the given `anchorRoute`.
   ///
   /// {@macro flutter.widgets.navigator.removeRouteBelow}
-  void removeRouteBelow(Route<Object?> anchorRoute) {
+  void removeRouteBelow(Route<dynamic> anchorRoute) {
     assert(!_debugLocked);
     assert(() {
       _debugLocked = true;
@@ -5189,7 +5189,7 @@
   /// The given `route` must have already received a call to [Route.didPop].
   /// This function may be called directly from [Route.didPop] if [Route.didPop]
   /// will return true.
-  void finalizeRoute(Route<Object?> route) {
+  void finalizeRoute(Route<dynamic> route) {
     // FinalizeRoute may have been called while we were already locked as a
     // responds to route.didPop(). Make sure to leave in the state we were in
     // before the call.
@@ -5250,8 +5250,8 @@
         _RouteEntry.willBePresentPredicate,
       );
       assert(routeIndex != null);
-      final Route<Object?> route = _history[routeIndex].route;
-      Route<Object?>? previousRoute;
+      final Route<dynamic> route = _history[routeIndex].route;
+      Route<dynamic>? previousRoute;
       if (!route.willHandlePopInternally && routeIndex > 0) {
         previousRoute = _getRouteBefore(
           routeIndex - 1,
@@ -5382,7 +5382,7 @@
   }
 
   @protected
-  Route<Object?> createRoute(NavigatorState navigator);
+  Route<dynamic> createRoute(NavigatorState navigator);
 
   _RouteEntry toRouteEntry(NavigatorState navigator, {_RouteLifecycle initialState = _RouteLifecycle.add}) {
     assert(navigator != null);
@@ -5429,8 +5429,8 @@
   final Object? arguments;
 
   @override
-  Route<Object?> createRoute(NavigatorState navigator) {
-    final Route<Object?> route = navigator._routeNamed<Object?>(name, arguments: arguments, allowNull: false)!;
+  Route<dynamic> createRoute(NavigatorState navigator) {
+    final Route<dynamic> route = navigator._routeNamed<dynamic>(name, arguments: arguments, allowNull: false)!;
     assert(route != null);
     return route;
   }
@@ -5476,8 +5476,8 @@
   final Object? arguments;
 
   @override
-  Route<Object?> createRoute(NavigatorState navigator) {
-    final Route<Object?> result = routeBuilder(navigator.context, arguments);
+  Route<dynamic> createRoute(NavigatorState navigator) {
+    final Route<dynamic> result = routeBuilder(navigator.context, arguments);
     assert(result != null);
     return result;
   }
@@ -5621,10 +5621,10 @@
 
   @override
   Map<String?, List<Object>>? fromPrimitives(Object? data) {
-    final Map<Object?, Object?> casted = data! as Map<Object?, Object?>;
-    return casted.map<String?, List<Object>>((Object? key, Object? value) => MapEntry<String?, List<Object>>(
+    final Map<dynamic, dynamic> casted = data! as Map<dynamic, dynamic>;
+    return casted.map<String?, List<Object>>((dynamic key, dynamic value) => MapEntry<String?, List<Object>>(
       key as String?,
-      List<Object>.from(value! as List<Object?>, growable: true),
+      List<Object>.from(value as List<dynamic>, growable: true),
     ));
   }
 
@@ -5962,7 +5962,7 @@
     _route = _navigator._getRouteById<T>(id);
     assert(_route != null);
     route!.restorationScopeId.addListener(notifyListeners);
-    route!.popped.then((Object? result) {
+    route!.popped.then((dynamic result) {
       if (_disposed) {
         return;
       }
diff --git a/packages/flutter/lib/src/widgets/routes.dart b/packages/flutter/lib/src/widgets/routes.dart
index 1824bce..c277826 100644
--- a/packages/flutter/lib/src/widgets/routes.dart
+++ b/packages/flutter/lib/src/widgets/routes.dart
@@ -225,7 +225,7 @@
   }
 
   @override
-  void didReplace(Route<Object?>? oldRoute) {
+  void didReplace(Route<dynamic>? oldRoute) {
     assert(_controller != null, '$runtimeType.didReplace called before calling install() or after calling dispose().');
     assert(!_transitionCompleter.isCompleted, 'Cannot reuse a $runtimeType after disposing it.');
     if (oldRoute is TransitionRoute)
@@ -243,7 +243,7 @@
   }
 
   @override
-  void didPopNext(Route<Object?> nextRoute) {
+  void didPopNext(Route<dynamic> nextRoute) {
     assert(_controller != null, '$runtimeType.didPopNext called before calling install() or after calling dispose().');
     assert(!_transitionCompleter.isCompleted, 'Cannot reuse a $runtimeType after disposing it.');
     _updateSecondaryAnimation(nextRoute);
@@ -251,7 +251,7 @@
   }
 
   @override
-  void didChangeNext(Route<Object?>? nextRoute) {
+  void didChangeNext(Route<dynamic>? nextRoute) {
     assert(_controller != null, '$runtimeType.didChangeNext called before calling install() or after calling dispose().');
     assert(!_transitionCompleter.isCompleted, 'Cannot reuse a $runtimeType after disposing it.');
     _updateSecondaryAnimation(nextRoute);
@@ -265,14 +265,14 @@
   // caller must reset this property to null after it is called.
   VoidCallback? _trainHoppingListenerRemover;
 
-  void _updateSecondaryAnimation(Route<Object?>? nextRoute) {
+  void _updateSecondaryAnimation(Route<dynamic>? nextRoute) {
     // There is an existing train hopping in progress. Unfortunately, we cannot
     // dispose current train hopping animation until we replace it with a new
     // animation.
     final VoidCallback? previousTrainHoppingListenerRemover = _trainHoppingListenerRemover;
     _trainHoppingListenerRemover = null;
 
-    if (nextRoute is TransitionRoute<Object?> && canTransitionTo(nextRoute) && nextRoute.canTransitionFrom(this)) {
+    if (nextRoute is TransitionRoute<dynamic> && canTransitionTo(nextRoute) && nextRoute.canTransitionFrom(this)) {
       final Animation<double>? current = _secondaryAnimation.parent;
       if (current != null) {
         final Animation<double> currentTrain = (current is TrainHoppingAnimation ? current.currentTrain : current)!;
@@ -348,11 +348,11 @@
     }
   }
 
-  void _setSecondaryAnimation(Animation<double>? animation, [Future<Object?>? disposed]) {
+  void _setSecondaryAnimation(Animation<double>? animation, [Future<dynamic>? disposed]) {
     _secondaryAnimation.parent = animation;
     // Releases the reference to the next route's animation when that route
     // is disposed.
-    disposed?.then((Object? _) {
+    disposed?.then((dynamic _) {
       if (_secondaryAnimation.parent == animation) {
         _secondaryAnimation.parent = kAlwaysDismissedAnimation;
         if (animation is TrainHoppingAnimation) {
@@ -386,7 +386,7 @@
   ///
   ///  * [canTransitionFrom], which must be true for [nextRoute] for the
   ///    [ModalRoute.buildTransitions] `secondaryAnimation` to run.
-  bool canTransitionTo(TransitionRoute<Object?> nextRoute) => true;
+  bool canTransitionTo(TransitionRoute<dynamic> nextRoute) => true;
 
   /// Returns true if [previousRoute] should animate when this route
   /// is pushed on top of it or when then this route is popped off of it.
@@ -411,7 +411,7 @@
   ///
   ///  * [canTransitionTo], which must be true for [previousRoute] for its
   ///    [ModalRoute.buildTransitions] `secondaryAnimation` to run.
-  bool canTransitionFrom(TransitionRoute<Object?> previousRoute) => true;
+  bool canTransitionFrom(TransitionRoute<dynamic> previousRoute) => true;
 
   @override
   void dispose() {
@@ -437,7 +437,7 @@
   /// Called when this entry is removed from the history of its associated [LocalHistoryRoute].
   final VoidCallback? onRemove;
 
-  LocalHistoryRoute<Object?>? _owner;
+  LocalHistoryRoute<dynamic>? _owner;
 
   /// Remove this entry from the history of its associated [LocalHistoryRoute].
   void remove() {
@@ -660,7 +660,7 @@
 
   @override
   bool isEnabled(DismissIntent intent) {
-    final ModalRoute<Object?> route = ModalRoute.of<Object?>(context)!;
+    final ModalRoute<dynamic> route = ModalRoute.of<dynamic>(context)!;
     return route.barrierDismissible;
   }
 
@@ -685,7 +685,7 @@
 
   final bool isCurrent;
   final bool canPop;
-  final Route<Object?> route;
+  final Route<dynamic> route;
 
   @override
   bool updateShouldNotify(_ModalScopeStatus old) {
@@ -934,7 +934,7 @@
   ///
   /// This function is typically used with [Navigator.popUntil()].
   static RoutePredicate withName(String name) {
-    return (Route<Object?> route) {
+    return (Route<dynamic> route) {
       return !route.willHandlePopInternally
           && route is ModalRoute
           && route.settings.name == name;
@@ -1391,7 +1391,7 @@
   /// [State.didChangeDependencies] callback:
   ///
   /// ```dart
-  /// ModalRoute<Object?> _route;
+  /// ModalRoute<dynamic> _route;
   ///
   /// @override
   /// void didChangeDependencies() {
@@ -1464,7 +1464,7 @@
   }
 
   @override
-  void didChangePrevious(Route<Object?>? previousRoute) {
+  void didChangePrevious(Route<dynamic>? previousRoute) {
     super.didChangePrevious(previousRoute);
     changedInternalState();
   }
@@ -1613,9 +1613,9 @@
 /// as `always_specify_types`, the Dart analyzer will require that certain types
 /// be given with their type arguments. Since the [Route] class and its
 /// subclasses have a type argument, this includes the arguments passed to this
-/// class. Consider using `Object?` to specify the entire class of routes rather
+/// class. Consider using `dynamic` to specify the entire class of routes rather
 /// than only specific subtypes. For example, to watch for all [ModalRoute]
-/// variants, the `RouteObserver<ModalRoute<Object?>>` type may be used.
+/// variants, the `RouteObserver<ModalRoute<dynamic>>` type may be used.
 ///
 /// {@tool snippet}
 ///
@@ -1670,7 +1670,7 @@
 /// }
 /// ```
 /// {@end-tool}
-class RouteObserver<R extends Route<Object?>> extends NavigatorObserver {
+class RouteObserver<R extends Route<dynamic>> extends NavigatorObserver {
   final Map<R, Set<RouteAware>> _listeners = <R, Set<RouteAware>>{};
 
   /// Subscribe [routeAware] to be informed about changes to [route].
@@ -1700,7 +1700,7 @@
   }
 
   @override
-  void didPop(Route<Object?> route, Route<Object?>? previousRoute) {
+  void didPop(Route<dynamic> route, Route<dynamic>? previousRoute) {
     if (route is R && previousRoute is R) {
       final List<RouteAware>? previousSubscribers = _listeners[previousRoute]?.toList();
 
@@ -1721,7 +1721,7 @@
   }
 
   @override
-  void didPush(Route<Object?> route, Route<Object?>? previousRoute) {
+  void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
     if (route is R && previousRoute is R) {
       final Set<RouteAware>? previousSubscribers = _listeners[previousRoute];
 
diff --git a/packages/flutter/lib/src/widgets/will_pop_scope.dart b/packages/flutter/lib/src/widgets/will_pop_scope.dart
index da37265..5985fa8 100644
--- a/packages/flutter/lib/src/widgets/will_pop_scope.dart
+++ b/packages/flutter/lib/src/widgets/will_pop_scope.dart
@@ -117,7 +117,7 @@
 }
 
 class _WillPopScopeState extends State<WillPopScope> {
-  ModalRoute<Object?>? _route;
+  ModalRoute<dynamic>? _route;
 
   @override
   void didChangeDependencies() {
diff --git a/packages/flutter_driver/pubspec.yaml b/packages/flutter_driver/pubspec.yaml
index ca9a27e..c86d724 100644
--- a/packages/flutter_driver/pubspec.yaml
+++ b/packages/flutter_driver/pubspec.yaml
@@ -44,8 +44,8 @@
   fake_async: 1.2.0
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   cli_util: 0.3.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   convert: 3.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -74,4 +74,4 @@
   webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: 45d6
+# PUBSPEC CHECKSUM: 7fd8
diff --git a/packages/flutter_tools/pubspec.yaml b/packages/flutter_tools/pubspec.yaml
index 847ce39..2592cde 100644
--- a/packages/flutter_tools/pubspec.yaml
+++ b/packages/flutter_tools/pubspec.yaml
@@ -57,8 +57,8 @@
 
   vm_service: 6.1.0+1
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   browser_launcher: 0.1.10 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   built_collection: 4.3.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -108,4 +108,4 @@
   # Exclude this package from the hosted API docs.
   nodoc: true
 
-# PUBSPEC CHECKSUM: 0d53
+# PUBSPEC CHECKSUM: 8355
diff --git a/packages/fuchsia_remote_debug_protocol/pubspec.yaml b/packages/fuchsia_remote_debug_protocol/pubspec.yaml
index 01a9c74..6fcfae7 100644
--- a/packages/fuchsia_remote_debug_protocol/pubspec.yaml
+++ b/packages/fuchsia_remote_debug_protocol/pubspec.yaml
@@ -18,8 +18,8 @@
 dev_dependencies:
   test: 1.16.8
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   boolean_selector: 2.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -61,4 +61,4 @@
   webkit_inspection_protocol: 1.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   yaml: 3.1.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
 
-# PUBSPEC CHECKSUM: fb50
+# PUBSPEC CHECKSUM: 7c52
diff --git a/packages/integration_test/example/pubspec.yaml b/packages/integration_test/example/pubspec.yaml
index 868a20b..db20b9f 100644
--- a/packages/integration_test/example/pubspec.yaml
+++ b/packages/integration_test/example/pubspec.yaml
@@ -33,8 +33,8 @@
 # For information on the generic Dart part of this file, see the
 # following page: https://dart.dev/tools/pub/pubspec
 
-  _fe_analyzer_shared: 20.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
-  analyzer: 1.4.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  _fe_analyzer_shared: 21.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
+  analyzer: 1.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   archive: 3.1.2 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   args: 2.0.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
   async: 2.5.0 # THIS LINE IS AUTOGENERATED - TO UPDATE USE "flutter update-packages --force-upgrade"
@@ -84,4 +84,4 @@
 flutter:
   uses-material-design: true
 
-# PUBSPEC CHECKSUM: a978
+# PUBSPEC CHECKSUM: c77a