diff --git a/DEPS b/DEPS
index e1d4793..a5a4e52 100644
--- a/DEPS
+++ b/DEPS
@@ -44,7 +44,7 @@
   # co19 is a cipd package. Use update.sh in tests/co19[_2] to update these
   # hashes. It requires access to the dart-build-access group, which EngProd
   # has.
-  "co19_rev": "6604c07f70757e9d081f64a08ab36f5b9aeaf937",
+  "co19_rev": "8f22acf210970dfe32750351031281af88b41708",
   # This line prevents conflicts when both packages are rolled simultaneously.
   "co19_2_rev": "b2034a17609472e374623f3dbe0efd9f5cb258af",
 
diff --git a/pkg/_fe_analyzer_shared/lib/src/macros/bootstrap.dart b/pkg/_fe_analyzer_shared/lib/src/macros/bootstrap.dart
index fddd932..59b7a26 100644
--- a/pkg/_fe_analyzer_shared/lib/src/macros/bootstrap.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/macros/bootstrap.dart
@@ -170,7 +170,7 @@
 }
 
 /// Maps libraries by uri to macros by name, and then constructors by name.
-final _macroConstructors = <Uri, Map<String, Map<String, Macro Function()>>>{
+final _macroConstructors = <Uri, Map<String, Map<String, Function>>>{
   $_macroConstructorEntriesMarker
 };
 
diff --git a/pkg/analysis_server/lib/protocol/protocol.dart b/pkg/analysis_server/lib/protocol/protocol.dart
index c1d6da7..bea052b 100644
--- a/pkg/analysis_server/lib/protocol/protocol.dart
+++ b/pkg/analysis_server/lib/protocol/protocol.dart
@@ -8,7 +8,7 @@
 
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/protocol/protocol_internal.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 export 'package:analyzer_plugin/protocol/protocol.dart' show Enum;
 
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index ba6dc60..f91ecc5 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -42,7 +42,6 @@
 import 'package:analysis_server/src/services/execution/execution_context.dart';
 import 'package:analysis_server/src/services/flutter/widget_descriptions.dart';
 import 'package:analysis_server/src/utilities/process.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analysis_server/src/utilities/request_statistics.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/dart/analysis/session.dart';
@@ -56,6 +55,7 @@
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
 import 'package:analyzer_plugin/src/utilities/navigation/navigation.dart';
 import 'package:analyzer_plugin/utilities/navigation/navigation_dart.dart';
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index cfd19e2..e51f5bb 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -18,8 +18,8 @@
 import 'package:analysis_server/src/handler/legacy/unsupported_request.dart';
 import 'package:analysis_server/src/plugin/request_converter.dart';
 import 'package:analysis_server/src/protocol_server.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/src/generated/engine.dart' as engine;
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Instances of the class [AnalysisDomainHandler] implement a [RequestHandler]
 /// that handles requests in the `analysis` domain.
diff --git a/pkg/analysis_server/lib/src/domain_analytics.dart b/pkg/analysis_server/lib/src/domain_analytics.dart
index 1460410..caebdc3 100644
--- a/pkg/analysis_server/lib/src/domain_analytics.dart
+++ b/pkg/analysis_server/lib/src/domain_analytics.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/handler/legacy/analytics_is_enabled.dart';
 import 'package:analysis_server/src/handler/legacy/analytics_send_event.dart';
 import 'package:analysis_server/src/handler/legacy/analytics_send_timing.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Instances of the class [AnalyticsDomainHandler] implement a [RequestHandler]
 /// that handles requests in the `analytics` domain.
diff --git a/pkg/analysis_server/lib/src/domain_completion.dart b/pkg/analysis_server/lib/src/domain_completion.dart
index 3db8862..20b1829 100644
--- a/pkg/analysis_server/lib/src/domain_completion.dart
+++ b/pkg/analysis_server/lib/src/domain_completion.dart
@@ -23,11 +23,11 @@
 import 'package:analysis_server/src/services/completion/yaml/fix_data_generator.dart';
 import 'package:analysis_server/src/services/completion/yaml/pubspec_generator.dart';
 import 'package:analysis_server/src/services/completion/yaml/yaml_completion_generator.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/exception/exception.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
 import 'package:analyzer/src/util/performance/operation_performance.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
diff --git a/pkg/analysis_server/lib/src/domain_diagnostic.dart b/pkg/analysis_server/lib/src/domain_diagnostic.dart
index 35a41d6..e3d2eb8 100644
--- a/pkg/analysis_server/lib/src/domain_diagnostic.dart
+++ b/pkg/analysis_server/lib/src/domain_diagnostic.dart
@@ -7,7 +7,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/diagnostic_get_diagnostics.dart';
 import 'package:analysis_server/src/handler/legacy/diagnostic_get_server_port.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Instances of the class [DiagnosticDomainHandler] implement a
 /// [RequestHandler] that handles requests in the `diagnostic` domain.
diff --git a/pkg/analysis_server/lib/src/domain_execution.dart b/pkg/analysis_server/lib/src/domain_execution.dart
index 43f7db0..cdedc79 100644
--- a/pkg/analysis_server/lib/src/domain_execution.dart
+++ b/pkg/analysis_server/lib/src/domain_execution.dart
@@ -11,7 +11,7 @@
 import 'package:analysis_server/src/handler/legacy/execution_set_subscriptions.dart';
 import 'package:analysis_server/src/protocol_server.dart';
 import 'package:analysis_server/src/services/execution/execution_context.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Instances of the class [ExecutionDomainHandler] implement a [RequestHandler]
 /// that handles requests in the `execution` domain.
diff --git a/pkg/analysis_server/lib/src/domain_kythe.dart b/pkg/analysis_server/lib/src/domain_kythe.dart
index afa3c9e..9b62c45 100644
--- a/pkg/analysis_server/lib/src/domain_kythe.dart
+++ b/pkg/analysis_server/lib/src/domain_kythe.dart
@@ -7,7 +7,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/domain_abstract.dart';
 import 'package:analysis_server/src/handler/legacy/kythe_get_kythe_entries.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Instances of the class [KytheDomainHandler] implement a [RequestHandler]
 /// that handles requests in the `kythe` domain.
diff --git a/pkg/analysis_server/lib/src/domain_server.dart b/pkg/analysis_server/lib/src/domain_server.dart
index a5b7b83..0c23f50 100644
--- a/pkg/analysis_server/lib/src/domain_server.dart
+++ b/pkg/analysis_server/lib/src/domain_server.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/handler/legacy/server_get_version.dart';
 import 'package:analysis_server/src/handler/legacy/server_set_subscriptions.dart';
 import 'package:analysis_server/src/handler/legacy/server_shutdown.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Instances of the class [ServerDomainHandler] implement a [RequestHandler]
 /// that handles requests in the server domain.
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index 3b7e4a3..3210578 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -25,10 +25,10 @@
 import 'package:analysis_server/src/services/correction/status.dart';
 import 'package:analysis_server/src/services/refactoring/refactoring.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/ast/utilities.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 int test_resetCount = 0;
 
diff --git a/pkg/analysis_server/lib/src/flutter/flutter_domain.dart b/pkg/analysis_server/lib/src/flutter/flutter_domain.dart
index 66bce33..0979104 100644
--- a/pkg/analysis_server/lib/src/flutter/flutter_domain.dart
+++ b/pkg/analysis_server/lib/src/flutter/flutter_domain.dart
@@ -7,8 +7,8 @@
 import 'package:analysis_server/src/domain_abstract.dart';
 import 'package:analysis_server/src/protocol/protocol_internal.dart';
 import 'package:analysis_server/src/protocol_server.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// A [RequestHandler] that handles requests in the `flutter` domain.
 class FlutterDomainHandler extends AbstractRequestHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_errors.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_errors.dart
index ffad95d..5548458 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_errors.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_errors.dart
@@ -7,7 +7,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/protocol_server.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.getErrors` request.
 class AnalysisGetErrorsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_hover.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_hover.dart
index b3a4cc2..471bcfb 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_hover.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_hover.dart
@@ -9,8 +9,8 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/computer/computer_hover.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/results.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.getHover` request.
 class AnalysisGetHoverHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_imported_elements.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_imported_elements.dart
index f7b299a..349d72d 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_imported_elements.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_imported_elements.dart
@@ -10,7 +10,7 @@
 import 'package:analysis_server/src/computer/imported_elements_computer.dart';
 import 'package:analysis_server/src/domain_analysis_flags.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.getImportedElements` request.
 class AnalysisGetImportedElementsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_navigation.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_navigation.dart
index 060bc16..4205723 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_navigation.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_navigation.dart
@@ -10,7 +10,7 @@
 import 'package:analysis_server/src/domain_abstract.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/plugin/result_merger.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
 import 'package:analyzer_plugin/src/utilities/navigation/navigation.dart';
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_signature.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_signature.dart
index 4b093bb..fd1f9be 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_get_signature.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_get_signature.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/computer/computer_signature.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.getSignature` request.
 class AnalysisGetSignatureHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_reanalyze.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_reanalyze.dart
index 0473c34..0838db8 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_reanalyze.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_reanalyze.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.reanalyze` request.
 class AnalysisReanalyzeHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_analysis_roots.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_analysis_roots.dart
index 5eafdf0..089929b 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_analysis_roots.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_analysis_roots.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.setAnalysisRoots` request.
 class AnalysisSetAnalysisRootsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_general_subscriptions.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_general_subscriptions.dart
index 1d02f73..8117b7c 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_general_subscriptions.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_general_subscriptions.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.setGeneralSubscriptions` request.
 class AnalysisSetGeneralSubscriptionsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_priority_files.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_priority_files.dart
index 9cbe6bd..8ad5cce 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_priority_files.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_priority_files.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/plugin/request_converter.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.setPriorityFiles` request.
 class AnalysisSetPriorityFilesHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_subscriptions.dart b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_subscriptions.dart
index bce48cf..af96fb0 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analysis_set_subscriptions.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analysis_set_subscriptions.dart
@@ -10,7 +10,7 @@
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/plugin/request_converter.dart';
 import 'package:analysis_server/src/protocol/protocol_internal.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analysis.setSubscriptions` request.
 class AnalysisSetSubscriptionsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analytics_enable.dart b/pkg/analysis_server/lib/src/handler/legacy/analytics_enable.dart
index 5b5a927..32b85c6 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analytics_enable.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analytics_enable.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analytics.enable` request.
 class AnalyticsEnableHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analytics_is_enabled.dart b/pkg/analysis_server/lib/src/handler/legacy/analytics_is_enabled.dart
index a4d3bfb..3d0fb9e 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analytics_is_enabled.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analytics_is_enabled.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analytics.isEnabled` request.
 class AnalyticsIsEnabledHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analytics_send_event.dart b/pkg/analysis_server/lib/src/handler/legacy/analytics_send_event.dart
index ea1aee4..9e86fb6 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analytics_send_event.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analytics_send_event.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analytics.sendEvent` request.
 class AnalyticsSendEventHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/analytics_send_timing.dart b/pkg/analysis_server/lib/src/handler/legacy/analytics_send_timing.dart
index bb9961e..61c90ab 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/analytics_send_timing.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/analytics_send_timing.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `analytics.sendTiming` request.
 class AnalyticsSendTimingHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details.dart b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details.dart
index e531347..436db66 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details.dart
@@ -8,8 +8,8 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
 
 /// The handler for the `completion.getSuggestionDetails` request.
diff --git a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details2.dart b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details2.dart
index 2cdf656..fa00df1 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details2.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/completion_get_suggestion_details2.dart
@@ -9,8 +9,8 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/session.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
 
 /// The handler for the `completion.getSuggestionDetails2` request.
diff --git a/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_diagnostics.dart b/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_diagnostics.dart
index 678db0f..c5305af 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_diagnostics.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_diagnostics.dart
@@ -8,8 +8,8 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `diagnostic.getDiagnostics` request.
 class DiagnosticGetDiagnosticsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_server_port.dart b/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_server_port.dart
index e76abac..1fd807b 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_server_port.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/diagnostic_get_server_port.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `diagnostic.getServerPort` request.
 class DiagnosticGetServerPortHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_bulk_fixes.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_bulk_fixes.dart
index 6e2a361..4950883 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_bulk_fixes.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_bulk_fixes.dart
@@ -10,9 +10,9 @@
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/correction/bulk_fix_processor.dart';
 import 'package:analysis_server/src/services/correction/change_workspace.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/exception/exception.dart';
 import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `edit.bulkFixes` request.
 class EditBulkFixes extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_format.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_format.dart
index ca6d691..bf1879c 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_format.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_format.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:dart_style/src/dart_formatter.dart';
 import 'package:dart_style/src/exceptions.dart';
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_format_if_enabled.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_format_if_enabled.dart
index 5e404d4..c276376 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_format_if_enabled.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_format_if_enabled.dart
@@ -7,10 +7,10 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/protocol_server.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
 import 'package:analyzer/src/dart/analysis/driver_based_analysis_context.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:dart_style/src/dart_formatter.dart';
 import 'package:dart_style/src/exceptions.dart';
 import 'package:dart_style/src/source_code.dart';
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_get_assists.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_get_assists.dart
index 5d76278..d306123 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_get_assists.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_get_assists.dart
@@ -15,9 +15,9 @@
 import 'package:analysis_server/src/services/correction/assist.dart';
 import 'package:analysis_server/src/services/correction/assist_internal.dart';
 import 'package:analysis_server/src/services/correction/change_workspace.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/src/exception/exception.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart
index 50595a1..7abcecb 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_get_fixes.dart
@@ -17,7 +17,6 @@
 import 'package:analysis_server/src/services/correction/fix/manifest/fix_generator.dart';
 import 'package:analysis_server/src/services/correction/fix/pubspec/fix_generator.dart';
 import 'package:analysis_server/src/services/correction/fix_internal.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/analysis_options/analysis_options_provider.dart';
@@ -29,6 +28,7 @@
 import 'package:analyzer/src/pubspec/pubspec_validator.dart';
 import 'package:analyzer/src/task/options.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
 import 'package:html/parser.dart';
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_get_postfix_completion.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_get_postfix_completion.dart
index c8d6bfb..4510a62 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_get_postfix_completion.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_get_postfix_completion.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/completion/postfix/postfix_completion.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 
 /// The handler for the `edit.getPostfixCompletion` request.
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_get_statement_completion.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_get_statement_completion.dart
index 50ace41..c274249 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_get_statement_completion.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_get_statement_completion.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/completion/statement/statement_completion.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 
 /// The handler for the `edit.getStatementCompletion` request.
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_import_elements.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_import_elements.dart
index 1dd1079..70bf12d 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_import_elements.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_import_elements.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/computer/import_elements_computer.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `edit.importElements` request.
 class EditImportElementsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_is_postfix_completion_applicable.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_is_postfix_completion_applicable.dart
index 7c9fd50..1a8e683 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_is_postfix_completion_applicable.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_is_postfix_completion_applicable.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/completion/postfix/postfix_completion.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `edit.isPostfixCompletionApplicable` request.
 class EditIsPostfixCompletionApplicableHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_list_postfix_completion_templates.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_list_postfix_completion_templates.dart
index b990eea..856e4db 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_list_postfix_completion_templates.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_list_postfix_completion_templates.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/completion/postfix/postfix_completion.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `edit.listPostfixCompletionTemplates` request.
 class EditListPostfixCompletionTemplatesHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_organize_directives.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_organize_directives.dart
index 9a8dbc1..7c16673 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_organize_directives.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_organize_directives.dart
@@ -9,8 +9,8 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/correction/organize_imports.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 
 /// The handler for the `edit.organizeDirectives` request.
diff --git a/pkg/analysis_server/lib/src/handler/legacy/edit_sort_members.dart b/pkg/analysis_server/lib/src/handler/legacy/edit_sort_members.dart
index 2aa4aa6..1b404a107 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/edit_sort_members.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/edit_sort_members.dart
@@ -9,8 +9,8 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/correction/sort_members.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/src/util/file_paths.dart' as file_paths;
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 
 /// The handler for the `edit.sortMembers` request.
diff --git a/pkg/analysis_server/lib/src/handler/legacy/execution_create_context.dart b/pkg/analysis_server/lib/src/handler/legacy/execution_create_context.dart
index 3c29df2..40ca6e1 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/execution_create_context.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/execution_create_context.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/execution/execution_context.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `execution.createContext` request.
 class ExecutionCreateContextHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/execution_delete_context.dart b/pkg/analysis_server/lib/src/handler/legacy/execution_delete_context.dart
index 5802dde..e4b7aae 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/execution_delete_context.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/execution_delete_context.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/execution/execution_context.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `execution.deleteContext` request.
 class ExecutionDeleteContextHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/execution_get_suggestions.dart b/pkg/analysis_server/lib/src/handler/legacy/execution_get_suggestions.dart
index d7413f2..f986c9e 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/execution_get_suggestions.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/execution_get_suggestions.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 
 /// The handler for the `execution.getSuggestions` request.
diff --git a/pkg/analysis_server/lib/src/handler/legacy/execution_map_uri.dart b/pkg/analysis_server/lib/src/handler/legacy/execution_map_uri.dart
index 0e84b04..a33a85a 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/execution_map_uri.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/execution_map_uri.dart
@@ -9,8 +9,8 @@
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/services/execution/execution_context.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/file_system/file_system.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `execution.mapUri` request.
 class ExecutionMapUriHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/execution_set_subscriptions.dart b/pkg/analysis_server/lib/src/handler/legacy/execution_set_subscriptions.dart
index 480f100a..da2d2e7 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/execution_set_subscriptions.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/execution_set_subscriptions.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `execution.setSubscriptions` request.
 class ExecutionSetSubscriptionsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/kythe_get_kythe_entries.dart b/pkg/analysis_server/lib/src/handler/legacy/kythe_get_kythe_entries.dart
index e9a57e8..3ff4695 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/kythe_get_kythe_entries.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/kythe_get_kythe_entries.dart
@@ -11,8 +11,8 @@
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
 import 'package:analysis_server/src/plugin/result_merger.dart';
 import 'package:analysis_server/src/services/kythe/kythe_visitors.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
 
diff --git a/pkg/analysis_server/lib/src/handler/legacy/legacy_handler.dart b/pkg/analysis_server/lib/src/handler/legacy/legacy_handler.dart
index 7e9094e..cc96821 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/legacy_handler.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/legacy_handler.dart
@@ -8,9 +8,9 @@
 import 'package:analysis_server/protocol/protocol.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/protocol/protocol_internal.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/src/dart/error/syntactic_errors.g.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// A request handler for the legacy protocol.
 abstract class LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/server_cancel_request.dart b/pkg/analysis_server/lib/src/handler/legacy/server_cancel_request.dart
index 5702aba..43b1707 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/server_cancel_request.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/server_cancel_request.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `server.cancelRequest` request.
 class ServerCancelRequestHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/server_get_version.dart b/pkg/analysis_server/lib/src/handler/legacy/server_get_version.dart
index 21eb232..0ea83dc 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/server_get_version.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/server_get_version.dart
@@ -9,7 +9,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `server.getVersion` request.
 class ServerGetVersionHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/server_set_subscriptions.dart b/pkg/analysis_server/lib/src/handler/legacy/server_set_subscriptions.dart
index 67633bf..0ebe036 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/server_set_subscriptions.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/server_set_subscriptions.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `server.setSubscriptions` request.
 class ServerSetSubscriptionsHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/server_shutdown.dart b/pkg/analysis_server/lib/src/handler/legacy/server_shutdown.dart
index 93689a6..a582920 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/server_shutdown.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/server_shutdown.dart
@@ -8,7 +8,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler for the `server.shutdown` request.
 class ServerShutdownHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/handler/legacy/unsupported_request.dart b/pkg/analysis_server/lib/src/handler/legacy/unsupported_request.dart
index 03dc5a5..b8134f6 100644
--- a/pkg/analysis_server/lib/src/handler/legacy/unsupported_request.dart
+++ b/pkg/analysis_server/lib/src/handler/legacy/unsupported_request.dart
@@ -7,7 +7,7 @@
 import 'package:analysis_server/protocol/protocol.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/handler/legacy/legacy_handler.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// The handler used for the request that are no longer supported.
 class UnsupportedRequestHandler extends LegacyHandler {
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handler_workspace_symbols.dart b/pkg/analysis_server/lib/src/lsp/handlers/handler_workspace_symbols.dart
index 31ea25d..2475623 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handler_workspace_symbols.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handler_workspace_symbols.dart
@@ -54,8 +54,16 @@
     var workspaceSymbols = search.WorkspaceSymbols();
     var analysisDrivers = server.driverMap.values.toList();
     for (var analysisDriver in analysisDrivers) {
-      await analysisDriver.search
-          .declarations(workspaceSymbols, regex, remainingResults);
+      await analysisDriver.search.declarations(
+        workspaceSymbols,
+        regex,
+        remainingResults,
+        cancellationToken: token,
+      );
+
+      if (workspaceSymbols.cancelled) {
+        return cancelled();
+      }
     }
 
     // Map the results to SymbolInformations and flatten the list of lists.
diff --git a/pkg/analysis_server/lib/src/lsp/handlers/handlers.dart b/pkg/analysis_server/lib/src/lsp/handlers/handlers.dart
index 9d3225d..1880af3 100644
--- a/pkg/analysis_server/lib/src/lsp/handlers/handlers.dart
+++ b/pkg/analysis_server/lib/src/lsp/handlers/handlers.dart
@@ -14,13 +14,13 @@
 import 'package:analysis_server/src/lsp/json_parsing.dart';
 import 'package:analysis_server/src/lsp/lsp_analysis_server.dart';
 import 'package:analysis_server/src/lsp/progress.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/source/line_info.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol.dart';
 import 'package:analyzer_plugin/src/protocol/protocol_internal.dart';
 
-export 'package:analysis_server/src/utilities/progress.dart';
+export 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Converts an iterable using the provided function and skipping over any
 /// null values.
diff --git a/pkg/analysis_server/lib/src/search/search_domain.dart b/pkg/analysis_server/lib/src/search/search_domain.dart
index f854cc4..da23c1a 100644
--- a/pkg/analysis_server/lib/src/search/search_domain.dart
+++ b/pkg/analysis_server/lib/src/search/search_domain.dart
@@ -11,9 +11,9 @@
 import 'package:analysis_server/src/search/element_references.dart';
 import 'package:analysis_server/src/search/type_hierarchy.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/dart/analysis/search.dart' as search;
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Instances of the class [SearchDomainHandler] implement a [RequestHandler]
 /// that handles requests in the search domain.
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart b/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
index efe3880..08e544a 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/refactoring.dart
@@ -20,7 +20,6 @@
 import 'package:analysis_server/src/services/refactoring/rename_local.dart';
 import 'package:analysis_server/src/services/refactoring/rename_unit_member.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/dart/analysis/session.dart';
 import 'package:analyzer/dart/ast/ast.dart';
@@ -28,6 +27,7 @@
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/dart/analysis/index.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart'
     show RefactoringMethodParameter, SourceChange;
 
diff --git a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart b/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
index d969475..6fb1f3b 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/refactoring_internal.dart
@@ -8,9 +8,9 @@
 import 'package:analysis_server/src/services/correction/status.dart';
 import 'package:analysis_server/src/services/refactoring/refactoring.dart';
 import 'package:analysis_server/src/services/search/search_engine.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 
 /// Return a new [SourceReference] instance for the given [match].
 SourceReference getSourceReference(SearchMatch match) {
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/dart_snippet_producers.dart b/pkg/analysis_server/lib/src/services/snippets/dart/dart_snippet_producers.dart
index 19b2fc3c..6fd4e15 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/dart_snippet_producers.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/dart_snippet_producers.dart
@@ -5,6 +5,9 @@
 import 'package:analysis_server/src/services/correction/util.dart';
 import 'package:analysis_server/src/services/linter/lint_names.dart';
 import 'package:analysis_server/src/services/snippets/dart/snippet_manager.dart';
+import 'package:analyzer/dart/analysis/features.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/nullability_suffix.dart';
 import 'package:analyzer/src/dart/analysis/session_helper.dart';
 import 'package:analyzer/src/dart/element/type.dart';
 import 'package:analyzer/src/lint/linter.dart' show LinterContextImpl;
@@ -300,10 +303,15 @@
 abstract class DartSnippetProducer extends SnippetProducer {
   final AnalysisSessionHelper sessionHelper;
   final CorrectionUtils utils;
+  final LibraryElement libraryElement;
+  final bool useSuperParams;
 
   DartSnippetProducer(DartSnippetRequest request)
       : sessionHelper = AnalysisSessionHelper(request.analysisSession),
         utils = CorrectionUtils(request.unit),
+        libraryElement = request.unit.libraryElement,
+        useSuperParams = request.unit.libraryElement.featureSet
+            .isEnabled(Feature.super_parameters),
         super(request);
 
   bool get isInTestDirectory {
@@ -312,6 +320,11 @@
         .any((testDir) => path.contains(testDir));
   }
 
+  /// The nullable suffix to use in this library.
+  NullabilitySuffix get nullableSuffix => libraryElement.isNonNullableByDefault
+      ? NullabilitySuffix.question
+      : NullabilitySuffix.none;
+
   bool isLintEnabled(String name) {
     var analysisOptions = sessionHelper.session.analysisContext.analysisOptions;
     return analysisOptions.isLintEnabled(name);
diff --git a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart
index 90b520d..9f0f654 100644
--- a/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart
+++ b/pkg/analysis_server/lib/src/services/snippets/dart/flutter_snippet_producers.dart
@@ -10,6 +10,7 @@
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/element/type.dart';
 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
+import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart';
 import 'package:meta/meta.dart';
 
 abstract class FlutterSnippetProducer extends DartSnippetProducer {
@@ -44,13 +45,16 @@
 
 /// Produces a [Snippet] that creates a Flutter StatefulWidget and related State
 /// class.
-class FlutterStatefulWidgetSnippetProducer extends FlutterSnippetProducer {
+class FlutterStatefulWidgetSnippetProducer extends FlutterSnippetProducer
+    with FlutterWidgetSnippetProducerMixin {
   static const prefix = 'stful';
   static const label = 'Flutter Stateful Widget';
 
   late ClassElement? classStatefulWidget;
   late ClassElement? classState;
+  @override
   late ClassElement? classBuildContext;
+  @override
   late ClassElement? classKey;
 
   FlutterStatefulWidgetSnippetProducer._(DartSnippetRequest request)
@@ -63,50 +67,20 @@
     // Checked by isValid().
     final classStatefulWidget = this.classStatefulWidget!;
     final classState = this.classState!;
-    final classWidget = this.classWidget!;
-    final classBuildContext = this.classBuildContext!;
-    final classKey = this.classKey!;
 
-    // Only include `?` for nulable types like Key? if in a null-safe library.
-    final nullableSuffix = request.unit.libraryElement.isNonNullableByDefault
-        ? NullabilitySuffix.question
-        : NullabilitySuffix.none;
-
-    final className = 'MyWidget';
     await builder.addDartFileEdit(request.filePath, (builder) {
       builder.addReplacement(request.replacementRange, (builder) {
         // Write the StatefulWidget class
         builder.writeClassDeclaration(
-          className,
+          widgetClassName,
           nameGroupName: 'name',
           superclass: _getType(classStatefulWidget),
           membersWriter: () {
-            // Add the constructor.
-            builder.write('  ');
-            builder.writeConstructorDeclaration(
-              className,
-              classNameGroupName: 'name',
-              isConst: true,
-              parameterWriter: () {
-                builder.write('{');
-                builder.writeParameter(
-                  'key',
-                  type: _getType(classKey, nullableSuffix),
-                );
-                builder.write('}');
-              },
-              initializerWriter: () => builder.write('super(key: key)'),
-            );
+            writeWidgetConstructor(builder);
             builder.writeln();
             builder.writeln();
 
-            // Add the createState method.
-            builder.writeln('  @override');
-            builder.write('  State<');
-            builder.addSimpleLinkedEdit('name', className);
-            builder.write('> createState() => _');
-            builder.addSimpleLinkedEdit('name', className);
-            builder.writeln('State();');
+            writeCreateStateMethod(builder);
           },
         );
         builder.writeln();
@@ -114,33 +88,14 @@
 
         // Write the State class.
         builder.write('class _');
-        builder.addSimpleLinkedEdit('name', className);
+        builder.addSimpleLinkedEdit('name', widgetClassName);
         builder.write('State extends ');
         builder.writeReference(classState);
         builder.write('<');
-        builder.addSimpleLinkedEdit('name', className);
+        builder.addSimpleLinkedEdit('name', widgetClassName);
         builder.writeln('> {');
         {
-          // Add the build method.
-          builder.writeln('  @override');
-          builder.write('  ');
-          builder.writeFunctionDeclaration(
-            'build',
-            returnType: _getType(classWidget),
-            parameterWriter: () {
-              builder.writeParameter(
-                'context',
-                type: _getType(classBuildContext),
-              );
-            },
-            bodyWriter: () {
-              builder.writeln('{');
-              builder.write('    ');
-              builder.selectHere();
-              builder.writeln();
-              builder.writeln('  }');
-            },
-          );
+          writeBuildMethod(builder);
         }
         builder.write('}');
       });
@@ -178,13 +133,15 @@
 /// Produces a [Snippet] that creates a Flutter StatefulWidget with a
 /// AnimationController and related State class.
 class FlutterStatefulWidgetWithAnimationControllerSnippetProducer
-    extends FlutterSnippetProducer {
+    extends FlutterSnippetProducer with FlutterWidgetSnippetProducerMixin {
   static const prefix = 'stanim';
   static const label = 'Flutter Widget with AnimationController';
 
   late ClassElement? classStatefulWidget;
   late ClassElement? classState;
+  @override
   late ClassElement? classBuildContext;
+  @override
   late ClassElement? classKey;
   late ClassElement? classAnimationController;
   late ClassElement? classSingleTickerProviderStateMixin;
@@ -200,53 +157,23 @@
     // Checked by isValid().
     final classStatefulWidget = this.classStatefulWidget!;
     final classState = this.classState!;
-    final classWidget = this.classWidget!;
-    final classBuildContext = this.classBuildContext!;
-    final classKey = this.classKey!;
     final classAnimationController = this.classAnimationController!;
     final classSingleTickerProviderStateMixin =
         this.classSingleTickerProviderStateMixin!;
 
-    // Only include `?` for nulable types like Key? if in a null-safe library.
-    final nullableSuffix = request.unit.libraryElement.isNonNullableByDefault
-        ? NullabilitySuffix.question
-        : NullabilitySuffix.none;
-
-    final className = 'MyWidget';
     await builder.addDartFileEdit(request.filePath, (builder) {
       builder.addReplacement(request.replacementRange, (builder) {
         // Write the StatefulWidget class
         builder.writeClassDeclaration(
-          className,
+          widgetClassName,
           nameGroupName: 'name',
           superclass: _getType(classStatefulWidget),
           membersWriter: () {
-            // Add the constructor.
-            builder.write('  ');
-            builder.writeConstructorDeclaration(
-              className,
-              classNameGroupName: 'name',
-              isConst: true,
-              parameterWriter: () {
-                builder.write('{');
-                builder.writeParameter(
-                  'key',
-                  type: _getType(classKey, nullableSuffix),
-                );
-                builder.write('}');
-              },
-              initializerWriter: () => builder.write('super(key: key)'),
-            );
+            writeWidgetConstructor(builder);
             builder.writeln();
             builder.writeln();
 
-            // Add the createState method.
-            builder.writeln('  @override');
-            builder.write('  State<');
-            builder.addSimpleLinkedEdit('name', className);
-            builder.write('> createState() => _');
-            builder.addSimpleLinkedEdit('name', className);
-            builder.writeln('State();');
+            writeCreateStateMethod(builder);
           },
         );
         builder.writeln();
@@ -254,11 +181,11 @@
 
         // Write the State class.
         builder.write('class _');
-        builder.addSimpleLinkedEdit('name', className);
+        builder.addSimpleLinkedEdit('name', widgetClassName);
         builder.write('State extends ');
         builder.writeReference(classState);
         builder.write('<');
-        builder.addSimpleLinkedEdit('name', className);
+        builder.addSimpleLinkedEdit('name', widgetClassName);
         builder.writeln('>');
         builder.write('    with ');
         builder.writeReference(classSingleTickerProviderStateMixin);
@@ -302,26 +229,7 @@
         }
         builder.writeln();
         {
-          // Add the build method.
-          builder.writeln('  @override');
-          builder.write('  ');
-          builder.writeFunctionDeclaration(
-            'build',
-            returnType: _getType(classWidget),
-            parameterWriter: () {
-              builder.writeParameter(
-                'context',
-                type: _getType(classBuildContext),
-              );
-            },
-            bodyWriter: () {
-              builder.writeln('{');
-              builder.write('    ');
-              builder.selectHere();
-              builder.writeln();
-              builder.writeln('  }');
-            },
-          );
+          writeBuildMethod(builder);
         }
         builder.write('}');
       });
@@ -363,12 +271,15 @@
 }
 
 /// Produces a [Snippet] that creates a Flutter StatelessWidget.
-class FlutterStatelessWidgetSnippetProducer extends FlutterSnippetProducer {
+class FlutterStatelessWidgetSnippetProducer extends FlutterSnippetProducer
+    with FlutterWidgetSnippetProducerMixin {
   static const prefix = 'stless';
   static const label = 'Flutter Stateless Widget';
 
   late ClassElement? classStatelessWidget;
+  @override
   late ClassElement? classBuildContext;
+  @override
   late ClassElement? classKey;
 
   FlutterStatelessWidgetSnippetProducer._(DartSnippetRequest request)
@@ -380,62 +291,19 @@
 
     // Checked by isValid().
     final classStatelessWidget = this.classStatelessWidget!;
-    final classWidget = this.classWidget!;
-    final classBuildContext = this.classBuildContext!;
-    final classKey = this.classKey!;
 
-    // Only include `?` for nulable types like Key? if in a null-safe library.
-    final nullableSuffix = request.unit.libraryElement.isNonNullableByDefault
-        ? NullabilitySuffix.question
-        : NullabilitySuffix.none;
-
-    final className = 'MyWidget';
     await builder.addDartFileEdit(request.filePath, (builder) {
       builder.addReplacement(request.replacementRange, (builder) {
         builder.writeClassDeclaration(
-          className,
+          widgetClassName,
           nameGroupName: 'name',
           superclass: _getType(classStatelessWidget),
           membersWriter: () {
-            // Add the constructor.
-            builder.write('  ');
-            builder.writeConstructorDeclaration(
-              className,
-              classNameGroupName: 'name',
-              isConst: true,
-              parameterWriter: () {
-                builder.write('{');
-                builder.writeParameter(
-                  'key',
-                  type: _getType(classKey, nullableSuffix),
-                );
-                builder.write('}');
-              },
-              initializerWriter: () => builder.write('super(key: key)'),
-            );
+            writeWidgetConstructor(builder);
             builder.writeln();
             builder.writeln();
 
-            // Add the build method.
-            builder.writeln('  @override');
-            builder.write('  ');
-            builder.writeFunctionDeclaration(
-              'build',
-              returnType: _getType(classWidget),
-              parameterWriter: () {
-                builder.writeParameter(
-                  'context',
-                  type: _getType(classBuildContext),
-                );
-              },
-              bodyWriter: () {
-                builder.writeln('{');
-                builder.write('    ');
-                builder.selectHere();
-                builder.writeln();
-                builder.writeln('  }');
-              },
-            );
+            writeBuildMethod(builder);
           },
         );
       });
@@ -468,3 +336,76 @@
           DartSnippetRequest request) =>
       FlutterStatelessWidgetSnippetProducer._(request);
 }
+
+/// A mixin that provides some common methods for producers that build snippets
+/// for Flutter widget classes.
+mixin FlutterWidgetSnippetProducerMixin on FlutterSnippetProducer {
+  ClassElement? get classBuildContext;
+  ClassElement? get classKey;
+  String get widgetClassName => 'MyWidget';
+
+  void writeBuildMethod(DartEditBuilder builder) {
+    // Checked by isValid() before this will be called.
+    final classBuildContext = this.classBuildContext!;
+    final classWidget = this.classWidget!;
+
+    // Add the build method.
+    builder.writeln('  @override');
+    builder.write('  ');
+    builder.writeFunctionDeclaration(
+      'build',
+      returnType: _getType(classWidget),
+      parameterWriter: () {
+        builder.writeParameter(
+          'context',
+          type: _getType(classBuildContext),
+        );
+      },
+      bodyWriter: () {
+        builder.writeln('{');
+        builder.write('    ');
+        builder.selectHere();
+        builder.writeln();
+        builder.writeln('  }');
+      },
+    );
+  }
+
+  void writeCreateStateMethod(DartEditBuilder builder) {
+    builder.writeln('  @override');
+    builder.write('  State<');
+    builder.addSimpleLinkedEdit('name', widgetClassName);
+    builder.write('> createState() => _');
+    builder.addSimpleLinkedEdit('name', widgetClassName);
+    builder.writeln('State();');
+  }
+
+  void writeWidgetConstructor(DartEditBuilder builder) {
+    // Checked by isValid() before this will be called.
+    final classKey = this.classKey!;
+
+    String keyName;
+    DartType? keyType;
+    void Function()? keyInitializer;
+    if (useSuperParams) {
+      keyName = 'super.key';
+    } else {
+      keyName = 'key';
+      keyType = _getType(classKey, nullableSuffix);
+      keyInitializer = () => builder.write('super(key: key)');
+    }
+
+    builder.write('  ');
+    builder.writeConstructorDeclaration(
+      widgetClassName,
+      classNameGroupName: 'name',
+      isConst: true,
+      parameterWriter: () {
+        builder.write('{');
+        builder.writeParameter(keyName, type: keyType);
+        builder.write('}');
+      },
+      initializerWriter: keyInitializer,
+    );
+  }
+}
diff --git a/pkg/analysis_server/test/analysis_abstract.dart b/pkg/analysis_server/test/analysis_abstract.dart
index 1bf61f7..8a06015 100644
--- a/pkg/analysis_server/test/analysis_abstract.dart
+++ b/pkg/analysis_server/test/analysis_abstract.dart
@@ -10,13 +10,13 @@
 import 'package:analysis_server/src/domain_analysis.dart';
 import 'package:analysis_server/src/server/crash_reporting_attachments.dart';
 import 'package:analysis_server/src/utilities/mocks.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
 import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/sdk.dart';
 import 'package:analyzer/src/test_utilities/mock_sdk.dart';
 import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:meta/meta.dart';
 import 'package:test/test.dart';
 
diff --git a/pkg/analysis_server/test/analysis_server_test.dart b/pkg/analysis_server/test/analysis_server_test.dart
index 58ac7dd..31c0a79 100644
--- a/pkg/analysis_server/test/analysis_server_test.dart
+++ b/pkg/analysis_server/test/analysis_server_test.dart
@@ -9,7 +9,6 @@
 import 'package:analysis_server/src/domain_server.dart';
 import 'package:analysis_server/src/server/crash_reporting_attachments.dart';
 import 'package:analysis_server/src/utilities/mocks.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/file_system/memory_file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
@@ -17,6 +16,7 @@
 import 'package:analyzer/src/test_utilities/mock_sdk.dart';
 import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
 import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/lsp/completion_dart_test.dart b/pkg/analysis_server/test/lsp/completion_dart_test.dart
index 2387349..484434a 100644
--- a/pkg/analysis_server/test/lsp/completion_dart_test.dart
+++ b/pkg/analysis_server/test/lsp/completion_dart_test.dart
@@ -23,7 +23,8 @@
     defineReflectiveTests(CompletionTest);
     defineReflectiveTests(DartSnippetCompletionTest);
     defineReflectiveTests(FlutterSnippetCompletionTest);
-    defineReflectiveTests(FlutterSnippetCompletionWithNullSafetyTest);
+    defineReflectiveTests(
+        FlutterSnippetCompletionWithLatestLanguageVersionTest);
     defineReflectiveTests(CompletionTestWithNullSafetyTest);
   });
 }
@@ -2793,12 +2794,20 @@
 
 @reflectiveTest
 class FlutterSnippetCompletionTest extends SnippetCompletionTest {
+  /// Standard import statements expected for basic Widgets.
+  String get expectedImports => '''
+import 'package:flutter/src/foundation/key.dart';
+import 'package:flutter/src/widgets/framework.dart';''';
+
   /// Nullability suffix expected in this test class.
   ///
   /// Used to allow all tests to be run in both modes without having to
-  /// duplicate all tests ([FlutterSnippetCompletionWithNullSafetyTest]
+  /// duplicate all tests ([FlutterSnippetCompletionWithLatestLanguageVersionTest]
   /// overrides this).
-  String get questionSuffix => '';
+  String get expectedNullableSuffix => '';
+
+  /// Constructor params expected on Widget classes.
+  String get expectedWidgetConstructorParams => '({Key key}) : super(key: key)';
 
   @override
   void setUp() {
@@ -2833,7 +2842,7 @@
 class A {}
 
 class \${1:MyWidget} extends StatefulWidget {
-  const \${1:MyWidget}({Key$questionSuffix key}) : super(key: key);
+  const \${1:MyWidget}$expectedWidgetConstructorParams;
 
   @override
   State<\${1:MyWidget}> createState() => _\${1:MyWidget}State();
@@ -2875,7 +2884,7 @@
 class A {}
 
 class \${1:MyWidget} extends StatefulWidget {
-  const \${1:MyWidget}({Key$questionSuffix key}) : super(key: key);
+  const \${1:MyWidget}$expectedWidgetConstructorParams;
 
   @override
   State<\${1:MyWidget}> createState() => _\${1:MyWidget}State();
@@ -2931,7 +2940,7 @@
 class A {}
 
 class \${1:MyWidget} extends StatelessWidget {
-  const \${1:MyWidget}({Key$questionSuffix key}) : super(key: key);
+  const \${1:MyWidget}$expectedWidgetConstructorParams;
 
   @override
   Widget build(BuildContext context) {
@@ -2960,13 +2969,12 @@
     );
 
     expect(updated, '''
-import 'package:flutter/src/foundation/key.dart';
-import 'package:flutter/src/widgets/framework.dart';
+$expectedImports
 
 class A {}
 
 class \${1:MyWidget} extends StatelessWidget {
-  const \${1:MyWidget}({Key$questionSuffix key}) : super(key: key);
+  const \${1:MyWidget}$expectedWidgetConstructorParams;
 
   @override
   Widget build(BuildContext context) {
@@ -2991,11 +2999,10 @@
     );
 
     expect(updated, '''
-import 'package:flutter/src/foundation/key.dart';
-import 'package:flutter/src/widgets/framework.dart';
+$expectedImports
 
 class \${1:MyWidget} extends StatelessWidget {
-  const \${1:MyWidget}({Key$questionSuffix key}) : super(key: key);
+  const \${1:MyWidget}$expectedWidgetConstructorParams;
 
   @override
   Widget build(BuildContext context) {
@@ -3018,11 +3025,10 @@
     );
 
     expect(updated, '''
-import 'package:flutter/src/foundation/key.dart';
-import 'package:flutter/src/widgets/framework.dart';
+$expectedImports
 
 class \${1:MyWidget} extends StatelessWidget {
-  const \${1:MyWidget}({Key$questionSuffix key}) : super(key: key);
+  const \${1:MyWidget}$expectedWidgetConstructorParams;
 
   @override
   Widget build(BuildContext context) {
@@ -3063,10 +3069,17 @@
 }
 
 @reflectiveTest
-class FlutterSnippetCompletionWithNullSafetyTest
+class FlutterSnippetCompletionWithLatestLanguageVersionTest
     extends FlutterSnippetCompletionTest {
   @override
-  String get questionSuffix => '?';
+  String get expectedImports => '''
+import 'package:flutter/src/widgets/framework.dart';''';
+
+  @override
+  String get expectedNullableSuffix => '?';
+
+  @override
+  String get expectedWidgetConstructorParams => '({super.key})';
 
   @override
   String get testPackageLanguageVersion => latestLanguageVersion;
diff --git a/pkg/analysis_server/test/lsp/workspace_symbols_test.dart b/pkg/analysis_server/test/lsp/workspace_symbols_test.dart
index 3af1f88..1806765 100644
--- a/pkg/analysis_server/test/lsp/workspace_symbols_test.dart
+++ b/pkg/analysis_server/test/lsp/workspace_symbols_test.dart
@@ -7,6 +7,7 @@
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
+import '../tool/lsp_spec/matchers.dart';
 import 'server_abstract.dart';
 
 void main() {
@@ -17,6 +18,45 @@
 
 @reflectiveTest
 class WorkspaceSymbolsTest extends AbstractLspAnalysisServerTest {
+  Future<void> test_cancellation() async {
+    const content = '''
+    void f() {}
+    ''';
+    newFile2(mainFilePath, withoutMarkers(content));
+    await initialize();
+
+    final symbolsRequest1 = makeRequest(
+      Method.workspace_symbol,
+      WorkspaceSymbolParams(query: 'f'),
+    );
+    final symbolsCancellation1 = makeNotification(
+        Method.cancelRequest, CancelParams(id: symbolsRequest1.id));
+    final symbolsRequest2 = makeRequest(
+      Method.workspace_symbol,
+      WorkspaceSymbolParams(query: 'f'),
+    );
+
+    final responses = await Future.wait([
+      sendRequestToServer(symbolsRequest1),
+      sendNotificationToServer(symbolsCancellation1),
+      sendRequestToServer(symbolsRequest2),
+    ]);
+
+    // Expect the first response was cancelled.
+    final symbolsResponse1 = responses[0] as ResponseMessage;
+    expect(symbolsResponse1.result, isNull);
+    expect(symbolsResponse1.error, isNotNull);
+    expect(
+      symbolsResponse1.error,
+      isResponseError(ErrorCodes.RequestCancelled),
+    );
+
+    // But second to complete normally.
+    final symbolsResponse2 = responses[2] as ResponseMessage;
+    expect(symbolsResponse2.result, hasLength(greaterThanOrEqualTo(1)));
+    expect(symbolsResponse2.error, isNull);
+  }
+
   Future<void> test_extensions() async {
     const content = '''
     extension StringExtensions on String {}
diff --git a/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart b/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart
index d082f0b..8cd7dbc 100644
--- a/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart
+++ b/pkg/analysis_server/test/services/snippets/dart/flutter_snippet_producers_test.dart
@@ -78,14 +78,8 @@
   @override
   String get prefix => FlutterStatefulWidgetSnippetProducer.prefix;
 
-  Future<void> test_notValid_notFlutterProject() async {
-    writeTestPackageConfig();
-
-    await expectNotValidSnippet('^');
-  }
-
-  Future<void> test_valid() async {
-    writeTestPackageConfig(flutter: true);
+  Future<void> test_noSuperParams() async {
+    writeTestPackageConfig(flutter: true, languageVersion: '2.16');
 
     final snippet = await expectValidSnippet('^');
     expect(snippet.prefix, prefix);
@@ -111,17 +105,51 @@
     
   }
 }''');
+  }
+
+  Future<void> test_notValid_notFlutterProject() async {
+    writeTestPackageConfig();
+
+    await expectNotValidSnippet('^');
+  }
+
+  Future<void> test_valid() async {
+    writeTestPackageConfig(flutter: true);
+
+    final snippet = await expectValidSnippet('^');
+    expect(snippet.prefix, prefix);
+    expect(snippet.label, label);
+    var code = '';
+    expect(snippet.change.edits, hasLength(1));
+    snippet.change.edits
+        .forEach((edit) => code = SourceEdit.applySequence(code, edit.edits));
+    expect(code, '''
+import 'package:flutter/src/widgets/framework.dart';
+
+class MyWidget extends StatefulWidget {
+  const MyWidget({super.key});
+
+  @override
+  State<MyWidget> createState() => _MyWidgetState();
+}
+
+class _MyWidgetState extends State<MyWidget> {
+  @override
+  Widget build(BuildContext context) {
+    
+  }
+}''');
     expect(snippet.change.selection!.file, testFile);
-    expect(snippet.change.selection!.offset, 363);
+    expect(snippet.change.selection!.offset, 296);
     expect(snippet.change.linkedEditGroups.map((group) => group.toJson()), [
       {
         'positions': [
-          {'file': testFile, 'offset': 110},
-          {'file': testFile, 'offset': 152},
-          {'file': testFile, 'offset': 213},
-          {'file': testFile, 'offset': 241},
-          {'file': testFile, 'offset': 268},
-          {'file': testFile, 'offset': 296},
+          {'file': testFile, 'offset': 60},
+          {'file': testFile, 'offset': 102},
+          {'file': testFile, 'offset': 146},
+          {'file': testFile, 'offset': 174},
+          {'file': testFile, 'offset': 201},
+          {'file': testFile, 'offset': 229},
         ],
         'length': 8,
         'suggestions': []
@@ -145,14 +173,8 @@
   String get prefix =>
       FlutterStatefulWidgetWithAnimationControllerSnippetProducer.prefix;
 
-  Future<void> test_notValid_notFlutterProject() async {
-    writeTestPackageConfig();
-
-    await expectNotValidSnippet('^');
-  }
-
-  Future<void> test_valid() async {
-    writeTestPackageConfig(flutter: true);
+  Future<void> test_noSuperParams() async {
+    writeTestPackageConfig(flutter: true, languageVersion: '2.16');
 
     final snippet = await expectValidSnippet('^');
     expect(snippet.prefix, prefix);
@@ -195,17 +217,68 @@
     
   }
 }''');
+  }
+
+  Future<void> test_notValid_notFlutterProject() async {
+    writeTestPackageConfig();
+
+    await expectNotValidSnippet('^');
+  }
+
+  Future<void> test_valid() async {
+    writeTestPackageConfig(flutter: true);
+
+    final snippet = await expectValidSnippet('^');
+    expect(snippet.prefix, prefix);
+    expect(snippet.label, label);
+    var code = '';
+    expect(snippet.change.edits, hasLength(1));
+    snippet.change.edits
+        .forEach((edit) => code = SourceEdit.applySequence(code, edit.edits));
+    expect(code, '''
+import 'package:flutter/src/animation/animation_controller.dart';
+import 'package:flutter/src/widgets/framework.dart';
+import 'package:flutter/src/widgets/ticker_provider.dart';
+
+class MyWidget extends StatefulWidget {
+  const MyWidget({super.key});
+
+  @override
+  State<MyWidget> createState() => _MyWidgetState();
+}
+
+class _MyWidgetState extends State<MyWidget>
+    with SingleTickerProviderStateMixin {
+  late AnimationController _controller;
+
+  @override
+  void initState() {
+    super.initState();
+    _controller = AnimationController(vsync: this);
+  }
+
+  @override
+  void dispose() {
+    super.dispose();
+    _controller.dispose();
+  }
+
+  @override
+  Widget build(BuildContext context) {
+    
+  }
+}''');
     expect(snippet.change.selection!.file, testFile);
-    expect(snippet.change.selection!.offset, 766);
+    expect(snippet.change.selection!.offset, 699);
     expect(snippet.change.linkedEditGroups.map((group) => group.toJson()), [
       {
         'positions': [
-          {'file': testFile, 'offset': 235},
-          {'file': testFile, 'offset': 277},
-          {'file': testFile, 'offset': 338},
-          {'file': testFile, 'offset': 366},
-          {'file': testFile, 'offset': 393},
-          {'file': testFile, 'offset': 421},
+          {'file': testFile, 'offset': 185},
+          {'file': testFile, 'offset': 227},
+          {'file': testFile, 'offset': 271},
+          {'file': testFile, 'offset': 299},
+          {'file': testFile, 'offset': 326},
+          {'file': testFile, 'offset': 354},
         ],
         'length': 8,
         'suggestions': []
@@ -226,14 +299,8 @@
   @override
   String get prefix => FlutterStatelessWidgetSnippetProducer.prefix;
 
-  Future<void> test_notValid_notFlutterProject() async {
-    writeTestPackageConfig();
-
-    await expectNotValidSnippet('^');
-  }
-
-  Future<void> test_valid() async {
-    writeTestPackageConfig(flutter: true);
+  Future<void> test_noSuperParams() async {
+    writeTestPackageConfig(flutter: true, languageVersion: '2.16');
 
     final snippet = await expectValidSnippet('^');
     expect(snippet.prefix, prefix);
@@ -254,13 +321,42 @@
     
   }
 }''');
+  }
+
+  Future<void> test_notValid_notFlutterProject() async {
+    writeTestPackageConfig();
+
+    await expectNotValidSnippet('^');
+  }
+
+  Future<void> test_valid() async {
+    writeTestPackageConfig(flutter: true);
+
+    final snippet = await expectValidSnippet('^');
+    expect(snippet.prefix, prefix);
+    expect(snippet.label, label);
+    var code = '';
+    expect(snippet.change.edits, hasLength(1));
+    snippet.change.edits
+        .forEach((edit) => code = SourceEdit.applySequence(code, edit.edits));
+    expect(code, '''
+import 'package:flutter/src/widgets/framework.dart';
+
+class MyWidget extends StatelessWidget {
+  const MyWidget({super.key});
+
+  @override
+  Widget build(BuildContext context) {
+    
+  }
+}''');
     expect(snippet.change.selection!.file, testFile);
-    expect(snippet.change.selection!.offset, 249);
+    expect(snippet.change.selection!.offset, 182);
     expect(snippet.change.linkedEditGroups.map((group) => group.toJson()), [
       {
         'positions': [
-          {'file': testFile, 'offset': 110},
-          {'file': testFile, 'offset': 153},
+          {'file': testFile, 'offset': 60},
+          {'file': testFile, 'offset': 103},
         ],
         'length': 8,
         'suggestions': []
diff --git a/pkg/analysis_server/test/socket_server_test.dart b/pkg/analysis_server/test/socket_server_test.dart
index 1fbf2a5..cfc2ead 100644
--- a/pkg/analysis_server/test/socket_server_test.dart
+++ b/pkg/analysis_server/test/socket_server_test.dart
@@ -10,9 +10,9 @@
 import 'package:analysis_server/src/server/error_notifier.dart';
 import 'package:analysis_server/src/socket_server.dart';
 import 'package:analysis_server/src/utilities/mocks.dart';
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/src/generated/engine.dart';
 import 'package:analyzer/src/generated/sdk.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:test/test.dart';
 
 void main() {
diff --git a/pkg/analysis_server/test/src/domain_abstract_test.dart b/pkg/analysis_server/test/src/domain_abstract_test.dart
index 5a64d54..33c09fa 100644
--- a/pkg/analysis_server/test/src/domain_abstract_test.dart
+++ b/pkg/analysis_server/test/src/domain_abstract_test.dart
@@ -6,8 +6,8 @@
 import 'package:analysis_server/src/domain_abstract.dart';
 import 'package:analysis_server/src/plugin/plugin_manager.dart';
 import 'package:analysis_server/src/protocol_server.dart' hide Element;
-import 'package:analysis_server/src/utilities/progress.dart';
 import 'package:analyzer/instrumentation/service.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:analyzer_plugin/protocol/protocol.dart' as plugin;
 import 'package:analyzer_plugin/protocol/protocol_generated.dart' as plugin;
 import 'package:test/test.dart';
diff --git a/pkg/analyzer/lib/src/dart/analysis/search.dart b/pkg/analyzer/lib/src/dart/analysis/search.dart
index 988d60f..f6af5ab 100644
--- a/pkg/analyzer/lib/src/dart/analysis/search.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/search.dart
@@ -15,6 +15,7 @@
 import 'package:analyzer/src/dart/ast/utilities.dart';
 import 'package:analyzer/src/dart/element/element.dart';
 import 'package:analyzer/src/summary/idl.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:collection/collection.dart';
 
 Element _getEnclosingElement(CompilationUnitElement unitElement, int offset) {
@@ -165,7 +166,7 @@
   /// Add matching declarations to the [result].
   Future<void> declarations(
       WorkspaceSymbols result, RegExp? regExp, int? maxResults,
-      {String? onlyForFile}) async {
+      {String? onlyForFile, CancellationToken? cancellationToken}) async {
     if (result.hasMoreDeclarationsThan(maxResults)) {
       return;
     }
@@ -251,7 +252,14 @@
     }
 
     await _driver.discoverAvailableFiles();
+
+    if (cancellationToken?.isCancellationRequested ?? false) {
+      result.cancelled = true;
+      return;
+    }
+
     var knownFiles = _driver.fsState.knownFiles.toList();
+    var filesProcessed = 0;
     for (var file in knownFiles) {
       var libraryElement = _driver.getLibraryByFile(file);
       if (libraryElement != null) {
@@ -267,6 +275,16 @@
           }
         }
       }
+      filesProcessed++;
+
+      // Periodically yield and check cancellation token.
+      if (cancellationToken != null && filesProcessed % 20 == 0) {
+        await null; // allow cancellation requests to be processed.
+        if (cancellationToken.isCancellationRequested) {
+          result.cancelled = true;
+          return;
+        }
+      }
     }
   }
 
@@ -820,6 +838,9 @@
   final List<String> files = [];
   final Map<String, int> _pathToIndex = {};
 
+  /// Whether this search was marked cancelled before it completed.
+  bool cancelled = false;
+
   bool hasMoreDeclarationsThan(int? maxResults) {
     return maxResults != null && declarations.length >= maxResults;
   }
diff --git a/pkg/analysis_server/lib/src/utilities/progress.dart b/pkg/analyzer/lib/src/utilities/cancellation.dart
similarity index 100%
rename from pkg/analysis_server/lib/src/utilities/progress.dart
rename to pkg/analyzer/lib/src/utilities/cancellation.dart
diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
index 55c4c67..234a6ec 100644
--- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
@@ -8,6 +8,7 @@
 import 'package:analyzer/src/dart/analysis/driver.dart';
 import 'package:analyzer/src/dart/analysis/search.dart';
 import 'package:analyzer/src/test_utilities/find_element.dart';
+import 'package:analyzer/src/utilities/cancellation.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
@@ -137,6 +138,26 @@
         unorderedEquals([a.methods[0], b.fields[0]]));
   }
 
+  test_declarations_cancel() async {
+    await resolveTestCode('''
+class C {
+  int f;
+  C();
+  C.named();
+  int get g => 0;
+  void set s(_) {}
+  void m() {}
+}
+''');
+    var results = WorkspaceSymbols();
+    var token = CancelableToken();
+    var searchFuture = driver.search
+        .declarations(results, null, null, cancellationToken: token);
+    token.cancel();
+    await searchFuture;
+    expect(results.cancelled, isTrue);
+  }
+
   test_declarations_class() async {
     await resolveTestCode('''
 class C {
diff --git a/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart b/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart
index 30b4631..79a2d15 100644
--- a/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart
@@ -132,16 +132,18 @@
     }
     // If the bound is not set yet, the actual value is not important yet as it
     // will be set later.
-    bool needsPostUpdate = false;
+    bool needsPostUpdate = nullabilityBuilder.isOmitted &&
+            identical(parameter.bound, TypeParameter.unsetBoundSentinel) ||
+        library is SourceLibraryBuilder &&
+            library.hasPendingNullability(parameter.bound);
     Nullability nullability;
     if (nullabilityBuilder.isOmitted) {
-      if (!identical(parameter.bound, TypeParameter.unsetBoundSentinel)) {
+      if (needsPostUpdate) {
+        nullability = Nullability.legacy;
+      } else {
         nullability = library.isNonNullableByDefault
             ? TypeParameterType.computeNullabilityFromBound(parameter)
             : Nullability.legacy;
-      } else {
-        nullability = Nullability.legacy;
-        needsPostUpdate = true;
       }
     } else {
       nullability = nullabilityBuilder.build(library);
diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
index 51bf903..e3481a8 100644
--- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart
@@ -3421,26 +3421,33 @@
         // of the depth-first search.  Continue to the next one.
         continue;
       }
-      if (type.parameter.bound is TypeParameterType) {
+      DartType peeledBound = _peelOffFutureOr(type.parameter.bound);
+      if (peeledBound is TypeParameterType) {
         TypeParameterType current = type;
-        TypeParameterType? next = current.parameter.bound as TypeParameterType;
+        TypeParameterType? next = peeledBound;
+        bool isDirectDependency = identical(type.parameter.bound, peeledBound);
         while (next != null && getDeclaredNullability(next) == null) {
           stack[stackTop++] = current;
           setDeclaredNullability(current, marker);
 
           current = next;
-          if (current.parameter.bound is TypeParameterType) {
-            next = current.parameter.bound as TypeParameterType;
+          peeledBound = _peelOffFutureOr(current.parameter.bound);
+          isDirectDependency = isDirectDependency &&
+              identical(current.parameter.bound, peeledBound);
+          if (peeledBound is TypeParameterType) {
+            next = peeledBound;
             if (getDeclaredNullability(next) == marker) {
               setDeclaredNullability(next, Nullability.undetermined);
-              current.parameter.bound = const InvalidType();
-              current.parameter.defaultType = const InvalidType();
-              addProblem(
-                  templateCycleInTypeVariables.withArguments(
-                      next.parameter.name!, current.parameter.name!),
-                  pendingNullability.charOffset,
-                  next.parameter.name!.length,
-                  pendingNullability.fileUri);
+              if (isDirectDependency) {
+                current.parameter.bound = const InvalidType();
+                current.parameter.defaultType = const InvalidType();
+                addProblem(
+                    templateCycleInTypeVariables.withArguments(
+                        next.parameter.name!, current.parameter.name!),
+                    pendingNullability.charOffset,
+                    next.parameter.name!.length,
+                    pendingNullability.fileUri);
+              }
               next = null;
             }
           } else {
@@ -4865,6 +4872,25 @@
         .add(new PendingNullability(fileUri, charOffset, type));
   }
 
+  bool hasPendingNullability(DartType type) {
+    type = _peelOffFutureOr(type);
+    if (type is TypeParameterType) {
+      for (PendingNullability pendingNullability in _pendingNullabilities) {
+        if (pendingNullability.type == type) {
+          return true;
+        }
+      }
+    }
+    return false;
+  }
+
+  static DartType _peelOffFutureOr(DartType type) {
+    while (type is FutureOrType) {
+      type = type.typeArgument;
+    }
+    return type;
+  }
+
   /// Performs delayed bounds checks on [TypedefType]s for the library
   ///
   /// As [TypedefType]s are built, they are eagerly unaliased, making it
@@ -5409,6 +5435,11 @@
   final TypeParameterType type;
 
   PendingNullability(this.fileUri, this.charOffset, this.type);
+
+  @override
+  String toString() {
+    return "PendingNullability(${fileUri}, ${charOffset}, ${type})";
+  }
 }
 
 class UncheckedTypedefType {
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart
new file mode 100644
index 0000000..5c1f12a
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart
@@ -0,0 +1,14 @@
+// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:async';
+
+class A {
+  foo<T1 extends FutureOr<S1>, S1 extends FutureOr<T1>>(T1 t, S1 s) {}
+  bar<T2 extends FutureOr<S2>, S2 extends FutureOr<Object>>(T2 t, S2 s) {}
+  baz<U3 extends FutureOr<T3>, T3 extends FutureOr<S3>, S3 extends FutureOr<Object>>(U3 u, T3 t, S3 s) {}
+
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.strong.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.strong.expect
new file mode 100644
index 0000000..ab25a3d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.strong.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo<T1 extends FutureOr<self::A::foo::S1%> = FutureOr<dynamic>, S1 extends FutureOr<self::A::foo::T1%> = FutureOr<dynamic>>(self::A::foo::T1% t, self::A::foo::S1% s) → dynamic {}
+  method bar<T2 extends FutureOr<self::A::bar::S2> = FutureOr<FutureOr<core::Object>>, S2 extends FutureOr<core::Object>>(self::A::bar::T2 t, self::A::bar::S2 s) → dynamic {}
+  method baz<U3 extends FutureOr<self::A::baz::T3> = FutureOr<FutureOr<FutureOr<core::Object>>>, T3 extends FutureOr<self::A::baz::S3> = FutureOr<FutureOr<core::Object>>, S3 extends FutureOr<core::Object>>(self::A::baz::U3 u, self::A::baz::T3 t, self::A::baz::S3 s) → dynamic {}
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.strong.transformed.expect
new file mode 100644
index 0000000..ab25a3d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.strong.transformed.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo<T1 extends FutureOr<self::A::foo::S1%> = FutureOr<dynamic>, S1 extends FutureOr<self::A::foo::T1%> = FutureOr<dynamic>>(self::A::foo::T1% t, self::A::foo::S1% s) → dynamic {}
+  method bar<T2 extends FutureOr<self::A::bar::S2> = FutureOr<FutureOr<core::Object>>, S2 extends FutureOr<core::Object>>(self::A::bar::T2 t, self::A::bar::S2 s) → dynamic {}
+  method baz<U3 extends FutureOr<self::A::baz::T3> = FutureOr<FutureOr<FutureOr<core::Object>>>, T3 extends FutureOr<self::A::baz::S3> = FutureOr<FutureOr<core::Object>>, S3 extends FutureOr<core::Object>>(self::A::baz::U3 u, self::A::baz::T3 t, self::A::baz::S3 s) → dynamic {}
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.textual_outline.expect
new file mode 100644
index 0000000..03d81d4
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.textual_outline.expect
@@ -0,0 +1,10 @@
+import 'dart:async';
+
+class A {
+  foo<T1 extends FutureOr<S1>, S1 extends FutureOr<T1>>(T1 t, S1 s) {}
+  bar<T2 extends FutureOr<S2>, S2 extends FutureOr<Object>>(T2 t, S2 s) {}
+  baz<U3 extends FutureOr<T3>, T3 extends FutureOr<S3>,
+      S3 extends FutureOr<Object>>(U3 u, T3 t, S3 s) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..1a2e67d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.textual_outline_modelled.expect
@@ -0,0 +1,10 @@
+import 'dart:async';
+
+class A {
+  bar<T2 extends FutureOr<S2>, S2 extends FutureOr<Object>>(T2 t, S2 s) {}
+  baz<U3 extends FutureOr<T3>, T3 extends FutureOr<S3>,
+      S3 extends FutureOr<Object>>(U3 u, T3 t, S3 s) {}
+  foo<T1 extends FutureOr<S1>, S1 extends FutureOr<T1>>(T1 t, S1 s) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.expect
new file mode 100644
index 0000000..ab25a3d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo<T1 extends FutureOr<self::A::foo::S1%> = FutureOr<dynamic>, S1 extends FutureOr<self::A::foo::T1%> = FutureOr<dynamic>>(self::A::foo::T1% t, self::A::foo::S1% s) → dynamic {}
+  method bar<T2 extends FutureOr<self::A::bar::S2> = FutureOr<FutureOr<core::Object>>, S2 extends FutureOr<core::Object>>(self::A::bar::T2 t, self::A::bar::S2 s) → dynamic {}
+  method baz<U3 extends FutureOr<self::A::baz::T3> = FutureOr<FutureOr<FutureOr<core::Object>>>, T3 extends FutureOr<self::A::baz::S3> = FutureOr<FutureOr<core::Object>>, S3 extends FutureOr<core::Object>>(self::A::baz::U3 u, self::A::baz::T3 t, self::A::baz::S3 s) → dynamic {}
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.modular.expect
new file mode 100644
index 0000000..ab25a3d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.modular.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo<T1 extends FutureOr<self::A::foo::S1%> = FutureOr<dynamic>, S1 extends FutureOr<self::A::foo::T1%> = FutureOr<dynamic>>(self::A::foo::T1% t, self::A::foo::S1% s) → dynamic {}
+  method bar<T2 extends FutureOr<self::A::bar::S2> = FutureOr<FutureOr<core::Object>>, S2 extends FutureOr<core::Object>>(self::A::bar::T2 t, self::A::bar::S2 s) → dynamic {}
+  method baz<U3 extends FutureOr<self::A::baz::T3> = FutureOr<FutureOr<FutureOr<core::Object>>>, T3 extends FutureOr<self::A::baz::S3> = FutureOr<FutureOr<core::Object>>, S3 extends FutureOr<core::Object>>(self::A::baz::U3 u, self::A::baz::T3 t, self::A::baz::S3 s) → dynamic {}
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.outline.expect
new file mode 100644
index 0000000..243cf41
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.outline.expect
@@ -0,0 +1,18 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    ;
+  method foo<T1 extends FutureOr<self::A::foo::S1%> = FutureOr<dynamic>, S1 extends FutureOr<self::A::foo::T1%> = FutureOr<dynamic>>(self::A::foo::T1% t, self::A::foo::S1% s) → dynamic
+    ;
+  method bar<T2 extends FutureOr<self::A::bar::S2> = FutureOr<FutureOr<core::Object>>, S2 extends FutureOr<core::Object>>(self::A::bar::T2 t, self::A::bar::S2 s) → dynamic
+    ;
+  method baz<U3 extends FutureOr<self::A::baz::T3> = FutureOr<FutureOr<FutureOr<core::Object>>>, T3 extends FutureOr<self::A::baz::S3> = FutureOr<FutureOr<core::Object>>, S3 extends FutureOr<core::Object>>(self::A::baz::U3 u, self::A::baz::T3 t, self::A::baz::S3 s) → dynamic
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.transformed.expect
new file mode 100644
index 0000000..ab25a3d
--- /dev/null
+++ b/pkg/front_end/testcases/nnbd/pending_nullabilities.dart.weak.transformed.expect
@@ -0,0 +1,15 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method foo<T1 extends FutureOr<self::A::foo::S1%> = FutureOr<dynamic>, S1 extends FutureOr<self::A::foo::T1%> = FutureOr<dynamic>>(self::A::foo::T1% t, self::A::foo::S1% s) → dynamic {}
+  method bar<T2 extends FutureOr<self::A::bar::S2> = FutureOr<FutureOr<core::Object>>, S2 extends FutureOr<core::Object>>(self::A::bar::T2 t, self::A::bar::S2 s) → dynamic {}
+  method baz<U3 extends FutureOr<self::A::baz::T3> = FutureOr<FutureOr<FutureOr<core::Object>>>, T3 extends FutureOr<self::A::baz::S3> = FutureOr<FutureOr<core::Object>>, S3 extends FutureOr<core::Object>>(self::A::baz::U3 u, self::A::baz::T3 t, self::A::baz::S3 s) → dynamic {}
+}
+static method main() → dynamic {}
diff --git a/tools/VERSION b/tools/VERSION
index eaf4277..8d5cf70 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 275
+PRERELEASE 276
 PRERELEASE_PATCH 0
\ No newline at end of file
