diff --git a/pkg/analysis_server/lib/src/g3/fixes.dart b/pkg/analysis_server/lib/src/g3/fixes.dart
index 17f045c..72fd698 100644
--- a/pkg/analysis_server/lib/src/g3/fixes.dart
+++ b/pkg/analysis_server/lib/src/g3/fixes.dart
@@ -7,6 +7,7 @@
 import 'package:analysis_server/src/services/correction/change_workspace.dart';
 import 'package:analysis_server/src/services/correction/fix.dart';
 import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/file_system/file_system.dart';
diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart
index 455422a..4fa2df5 100644
--- a/pkg/analysis_server/lib/src/server/driver.dart
+++ b/pkg/analysis_server/lib/src/server/driver.dart
@@ -24,6 +24,7 @@
 import 'package:analysis_server/src/server/lsp_stdio_server.dart';
 import 'package:analysis_server/src/server/sdk_configuration.dart';
 import 'package:analysis_server/src/server/stdio_server.dart';
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
 import 'package:analysis_server/src/socket_server.dart';
 import 'package:analysis_server/src/utilities/request_statistics.dart';
 import 'package:analysis_server/starter.dart';
@@ -388,10 +389,8 @@
         return;
       }
     }
-    //
-    // Register lint rules.
-    //
     linter.registerLintRules();
+    registerBuiltInProducers();
 
     var diagnosticServer = _DiagnosticServerImpl();
 
@@ -500,6 +499,7 @@
         : _captureExceptions;
 
     linter.registerLintRules();
+    registerBuiltInProducers();
 
     var diagnosticServer = _DiagnosticServerImpl();
 
diff --git a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
index 4d9e7a2..a16a3d9 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist_internal.dart
@@ -73,7 +73,7 @@
 import 'package:analysis_server/src/services/correction/dart/split_variable_declaration.dart';
 import 'package:analysis_server/src/services/correction/dart/surround_with.dart';
 import 'package:analysis_server/src/services/correction/dart/use_curly_braces.dart';
-import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:analyzer/src/generated/java_core.dart';
 import 'package:analyzer_plugin/utilities/assist/assist.dart'
     hide AssistContributor;
diff --git a/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart b/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart
index 62b2835..936c665 100644
--- a/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart
+++ b/pkg/analysis_server/lib/src/services/correction/bulk_fix_processor.dart
@@ -14,7 +14,7 @@
 import 'package:analysis_server/src/services/correction/dart/organize_imports.dart';
 import 'package:analysis_server/src/services/correction/dart/remove_unused_import.dart';
 import 'package:analysis_server/src/services/correction/fix.dart';
-import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:analysis_server/src/services/linter/lint_names.dart';
 import 'package:analyzer/dart/analysis/analysis_context.dart';
 import 'package:analyzer/dart/analysis/results.dart';
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index a15a80e..8a5f0ef 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -4,8 +4,6 @@
 
 import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
 import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
-import 'package:analysis_server/src/services/correction/base_processor.dart';
-import 'package:analysis_server/src/services/correction/bulk_fix_processor.dart';
 import 'package:analysis_server/src/services/correction/dart/abstract_producer.dart';
 import 'package:analysis_server/src/services/correction/dart/add_async.dart';
 import 'package:analysis_server/src/services/correction/dart/add_await.dart';
@@ -99,7 +97,6 @@
 import 'package:analysis_server/src/services/correction/dart/extend_class_for_mixin.dart';
 import 'package:analysis_server/src/services/correction/dart/extract_local_variable.dart';
 import 'package:analysis_server/src/services/correction/dart/flutter_remove_widget.dart';
-import 'package:analysis_server/src/services/correction/dart/ignore_diagnostic.dart';
 import 'package:analysis_server/src/services/correction/dart/import_library.dart';
 import 'package:analysis_server/src/services/correction/dart/inline_invocation.dart';
 import 'package:analysis_server/src/services/correction/dart/inline_typedef.dart';
@@ -231,23 +228,1362 @@
 import 'package:analysis_server/src/services/correction/dart/wrap_in_text.dart';
 import 'package:analysis_server/src/services/correction/dart/wrap_in_unawaited.dart';
 import 'package:analysis_server/src/services/correction/fix.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:analysis_server/src/services/correction/util.dart';
 import 'package:analysis_server/src/services/linter/lint_names.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/src/dart/error/ffi_code.g.dart';
 import 'package:analyzer/src/error/codes.dart';
-import 'package:analyzer/src/generated/java_core.dart';
 import 'package:analyzer/src/generated/parser.dart';
 import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core.dart';
 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
 import 'package:analyzer_plugin/utilities/change_builder/conflicting_edit_exception.dart';
 import 'package:analyzer_plugin/utilities/fixes/fixes.dart' hide FixContributor;
 
-/// A function that can be executed to create a multi-correction producer.
-typedef MultiProducerGenerator = MultiCorrectionProducer Function();
+final _builtInLintMultiProducers = {
+  LintNames.deprecated_member_use_from_same_package: [
+    DataDriven.new,
+  ],
+  LintNames.deprecated_member_use_from_same_package_with_message: [
+    DataDriven.new,
+  ],
+  LintNames.comment_references: [
+    ImportLibrary.forType,
+  ],
+};
 
-/// A function that can be executed to create a correction producer.
-typedef ProducerGenerator = CorrectionProducer Function();
+final _builtInLintProducers = <String, List<ProducerGenerator>>{
+  LintNames.always_declare_return_types: [
+    AddReturnType.new,
+  ],
+  LintNames.always_put_control_body_on_new_line: [
+    UseCurlyBraces.nonBulk,
+  ],
+  LintNames.always_put_required_named_parameters_first: [
+    MakeRequiredNamedParametersFirst.new,
+  ],
+  LintNames.always_specify_types: [
+    AddTypeAnnotation.bulkFixable,
+  ],
+  LintNames.always_use_package_imports: [
+    ConvertToPackageImport.new,
+  ],
+  LintNames.annotate_overrides: [
+    AddOverride.new,
+  ],
+  LintNames.annotate_redeclares: [
+    AddRedeclare.new,
+  ],
+  LintNames.avoid_annotating_with_dynamic: [
+    RemoveTypeAnnotation.other,
+  ],
+  LintNames.avoid_empty_else: [
+    RemoveEmptyElse.new,
+  ],
+  LintNames.avoid_escaping_inner_quotes: [
+    ConvertQuotes.new,
+  ],
+  LintNames.avoid_function_literals_in_foreach_calls: [
+    ConvertForEachToForLoop.new,
+  ],
+  LintNames.avoid_init_to_null: [
+    RemoveInitializer.bulkFixable,
+  ],
+  LintNames.avoid_multiple_declarations_per_line: [
+    SplitMultipleDeclarations.new,
+  ],
+  LintNames.avoid_null_checks_in_equality_operators: [
+    RemoveComparison.new,
+  ],
+  LintNames.avoid_print: [
+    MakeConditionalOnDebugMode.new,
+    RemovePrint.new,
+  ],
+  LintNames.avoid_private_typedef_functions: [
+    InlineTypedef.new,
+  ],
+  LintNames.avoid_redundant_argument_values: [
+    RemoveArgument.new,
+  ],
+  LintNames.avoid_relative_lib_imports: [
+    ConvertToPackageImport.new,
+  ],
+  LintNames.avoid_renaming_method_parameters: [
+    RenameMethodParameter.new,
+  ],
+  LintNames.avoid_return_types_on_setters: [
+    RemoveTypeAnnotation.other,
+  ],
+  LintNames.avoid_returning_null_for_void: [
+    RemoveReturnedValue.new,
+  ],
+  LintNames.avoid_single_cascade_in_expression_statements: [
+    // TODO(brianwilkerson): This fix should be applied to some non-lint
+    //  diagnostics and should also be available as an assist.
+    ReplaceCascadeWithDot.new,
+  ],
+  LintNames.avoid_types_as_parameter_names: [
+    ConvertToOnType.new,
+  ],
+  LintNames.avoid_types_on_closure_parameters: [
+    ReplaceWithIdentifier.new,
+    RemoveTypeAnnotation.other,
+  ],
+  LintNames.avoid_unused_constructor_parameters: [
+    RemoveUnusedParameter.new,
+  ],
+  LintNames.avoid_unnecessary_containers: [
+    FlutterRemoveWidget.new,
+  ],
+  LintNames.avoid_void_async: [
+    ReplaceReturnTypeFuture.new,
+  ],
+  LintNames.await_only_futures: [
+    RemoveAwait.new,
+  ],
+  LintNames.cascade_invocations: [
+    ConvertToCascade.new,
+  ],
+  LintNames.cast_nullable_to_non_nullable: [
+    AddNullCheck.withoutAssignabilityCheck,
+  ],
+  LintNames.combinators_ordering: [
+    SortCombinators.new,
+  ],
+  LintNames.constant_identifier_names: [
+    RenameToCamelCase.new,
+  ],
+  LintNames.curly_braces_in_flow_control_structures: [
+    UseCurlyBraces.new,
+  ],
+  LintNames.dangling_library_doc_comments: [
+    MoveDocCommentToLibraryDirective.new,
+  ],
+  LintNames.diagnostic_describe_all_properties: [
+    AddDiagnosticPropertyReference.new,
+  ],
+  LintNames.directives_ordering: [
+    OrganizeImports.new,
+  ],
+  LintNames.discarded_futures: [
+    AddAsync.new,
+    WrapInUnawaited.new,
+  ],
+  LintNames.empty_catches: [
+    RemoveEmptyCatch.new,
+  ],
+  LintNames.empty_constructor_bodies: [
+    RemoveEmptyConstructorBody.new,
+  ],
+  LintNames.empty_statements: [
+    RemoveEmptyStatement.new,
+    ReplaceWithBrackets.new,
+  ],
+  LintNames.eol_at_end_of_file: [
+    AddEolAtEndOfFile.new,
+  ],
+  LintNames.exhaustive_cases: [
+    AddMissingEnumLikeCaseClauses.new,
+  ],
+  LintNames.flutter_style_todos: [
+    ConvertToFlutterStyleTodo.new,
+  ],
+  LintNames.hash_and_equals: [
+    CreateMethod.equalsOrHashCode,
+  ],
+  LintNames.implicit_call_tearoffs: [
+    AddExplicitCall.new,
+  ],
+  LintNames.implicit_reopen: [
+    AddReopen.new,
+  ],
+  LintNames.invalid_case_patterns: [
+    AddConst.new,
+  ],
+  LintNames.leading_newlines_in_multiline_strings: [
+    AddLeadingNewlineToString.new,
+  ],
+  LintNames.library_annotations: [
+    MoveAnnotationToLibraryDirective.new,
+  ],
+  LintNames.no_duplicate_case_values: [
+    RemoveDuplicateCase.new,
+  ],
+  LintNames.no_leading_underscores_for_library_prefixes: [
+    RemoveLeadingUnderscore.new,
+  ],
+  LintNames.no_literal_bool_comparisons: [
+    ConvertToBooleanExpression.new,
+  ],
+  LintNames.no_leading_underscores_for_local_identifiers: [
+    RemoveLeadingUnderscore.new,
+  ],
+  LintNames.non_constant_identifier_names: [
+    RenameToCamelCase.new,
+  ],
+  LintNames.noop_primitive_operations: [
+    RemoveInvocation.new,
+  ],
+  LintNames.null_check_on_nullable_type_parameter: [
+    ReplaceNullCheckWithCast.new,
+  ],
+  LintNames.null_closures: [
+    ReplaceNullWithClosure.new,
+  ],
+  LintNames.omit_local_variable_types: [
+    ReplaceWithVar.new,
+  ],
+  LintNames.prefer_adjacent_string_concatenation: [
+    RemoveOperator.new,
+  ],
+  LintNames.prefer_collection_literals: [
+    ConvertToMapLiteral.new,
+    ConvertToSetLiteral.new,
+  ],
+  LintNames.prefer_conditional_assignment: [
+    ReplaceWithConditionalAssignment.new,
+  ],
+  LintNames.prefer_const_constructors: [
+    AddConst.new,
+    ReplaceNewWithConst.new,
+  ],
+  LintNames.prefer_const_constructors_in_immutables: [
+    AddConst.new,
+  ],
+  LintNames.prefer_const_declarations: [
+    ReplaceFinalWithConst.new,
+  ],
+  LintNames.prefer_const_literals_to_create_immutables: [
+    AddConst.new,
+  ],
+  LintNames.prefer_contains: [
+    ConvertToContains.new,
+  ],
+  LintNames.prefer_double_quotes: [
+    ConvertToDoubleQuotes.new,
+  ],
+  LintNames.prefer_expression_function_bodies: [
+    ConvertToExpressionFunctionBody.new,
+  ],
+  LintNames.prefer_final_fields: [
+    MakeFinal.new,
+  ],
+  LintNames.prefer_final_in_for_each: [
+    MakeFinal.new,
+  ],
+  LintNames.prefer_final_locals: [
+    MakeFinal.new,
+  ],
+  LintNames.prefer_final_parameters: [
+    MakeFinal.new,
+  ],
+  LintNames.prefer_for_elements_to_map_fromIterable: [
+    ConvertMapFromIterableToForLiteral.new,
+  ],
+  LintNames.prefer_function_declarations_over_variables: [
+    ConvertToFunctionDeclaration.new,
+  ],
+  LintNames.prefer_generic_function_type_aliases: [
+    ConvertToGenericFunctionSyntax.new,
+  ],
+  LintNames.prefer_if_elements_to_conditional_expressions: [
+    ConvertConditionalExpressionToIfElement.new,
+  ],
+  LintNames.prefer_if_null_operators: [
+    ConvertToIfNull.new,
+  ],
+  LintNames.prefer_initializing_formals: [
+    ConvertToInitializingFormal.new,
+  ],
+  LintNames.prefer_inlined_adds: [
+    ConvertAddAllToSpread.new,
+    InlineInvocation.new,
+  ],
+  LintNames.prefer_int_literals: [
+    ConvertToIntLiteral.new,
+  ],
+  LintNames.prefer_interpolation_to_compose_strings: [
+    ReplaceWithInterpolation.new,
+  ],
+  LintNames.prefer_is_empty: [
+    ReplaceWithIsEmpty.new,
+  ],
+  LintNames.prefer_is_not_empty: [
+    UseIsNotEmpty.new,
+  ],
+  LintNames.prefer_is_not_operator: [
+    ConvertIntoIsNot.new,
+  ],
+  LintNames.prefer_iterable_whereType: [
+    ConvertToWhereType.new,
+  ],
+  LintNames.prefer_null_aware_operators: [
+    ConvertToNullAware.new,
+  ],
+  LintNames.prefer_relative_imports: [
+    ConvertToRelativeImport.new,
+  ],
+  LintNames.prefer_single_quotes: [
+    ConvertToSingleQuotes.new,
+  ],
+  LintNames.prefer_spread_collections: [
+    ConvertAddAllToSpread.new,
+  ],
+  LintNames.prefer_typing_uninitialized_variables: [
+    AddTypeAnnotation.bulkFixable,
+  ],
+  LintNames.prefer_void_to_null: [
+    ReplaceNullWithVoid.new,
+  ],
+  LintNames.require_trailing_commas: [
+    AddTrailingComma.new,
+  ],
+  LintNames.sized_box_for_whitespace: [
+    ReplaceContainerWithSizedBox.new,
+  ],
+  LintNames.slash_for_doc_comments: [
+    ConvertDocumentationIntoLine.new,
+  ],
+  LintNames.sort_child_properties_last: [
+    SortChildPropertyLast.new,
+  ],
+  LintNames.sort_constructors_first: [
+    SortConstructorFirst.new,
+  ],
+  LintNames.sort_unnamed_constructors_first: [
+    SortUnnamedConstructorFirst.new,
+  ],
+  LintNames.type_annotate_public_apis: [
+    AddTypeAnnotation.bulkFixable,
+  ],
+  LintNames.type_init_formals: [
+    RemoveTypeAnnotation.other,
+  ],
+  LintNames.type_literal_in_constant_pattern: [
+    ConvertToConstantPattern.new,
+    ConvertToWildcardPattern.new,
+  ],
+  LintNames.unawaited_futures: [
+    AddAwait.unawaited,
+    WrapInUnawaited.new,
+  ],
+  LintNames.unnecessary_brace_in_string_interps: [
+    RemoveInterpolationBraces.new,
+  ],
+  LintNames.unnecessary_breaks: [
+    RemoveBreak.new,
+  ],
+  LintNames.unnecessary_const: [
+    RemoveUnnecessaryConst.new,
+  ],
+  LintNames.unnecessary_constructor_name: [
+    RemoveConstructorName.new,
+  ],
+  LintNames.unnecessary_final: [
+    ReplaceFinalWithVar.new,
+  ],
+  LintNames.unnecessary_getters_setters: [
+    MakeFieldPublic.new,
+  ],
+  LintNames.unnecessary_lambdas: [
+    ReplaceWithTearOff.new,
+  ],
+  LintNames.unnecessary_late: [
+    RemoveUnnecessaryLate.new,
+  ],
+  LintNames.unnecessary_library_directive: [
+    RemoveUnnecessaryLibraryDirective.new,
+  ],
+  LintNames.unnecessary_new: [
+    RemoveUnnecessaryNew.new,
+  ],
+  LintNames.unnecessary_null_aware_assignments: [
+    RemoveAssignment.new,
+  ],
+  LintNames.unnecessary_null_checks: [
+    RemoveNonNullAssertion.new,
+  ],
+  LintNames.unnecessary_null_in_if_null_operators: [
+    RemoveIfNullOperator.new,
+  ],
+  LintNames.unnecessary_nullable_for_final_variable_declarations: [
+    RemoveQuestionMark.new,
+  ],
+  LintNames.unnecessary_overrides: [
+    RemoveMethodDeclaration.new,
+  ],
+  LintNames.unnecessary_parenthesis: [
+    RemoveUnnecessaryParentheses.new,
+  ],
+  LintNames.unnecessary_raw_strings: [
+    RemoveUnnecessaryRawString.new,
+  ],
+  LintNames.unnecessary_string_escapes: [
+    RemoveUnnecessaryStringEscape.new,
+  ],
+  LintNames.unnecessary_string_interpolations: [
+    RemoveUnnecessaryStringInterpolation.new,
+  ],
+  LintNames.unnecessary_to_list_in_spreads: [
+    RemoveToList.new,
+  ],
+  LintNames.unnecessary_this: [
+    RemoveThisExpression.new,
+  ],
+  LintNames.unreachable_from_main: [
+    RemoveUnusedElement.new,
+  ],
+  LintNames.use_decorated_box: [
+    ReplaceWithDecoratedBox.new,
+  ],
+  LintNames.use_enums: [
+    ConvertClassToEnum.new,
+  ],
+  LintNames.use_full_hex_values_for_flutter_colors: [
+    ReplaceWithEightDigitHex.new,
+  ],
+  LintNames.use_function_type_syntax_for_parameters: [
+    ConvertToGenericFunctionSyntax.new,
+  ],
+  LintNames.use_key_in_widget_constructors: [
+    AddKeyToConstructors.new,
+  ],
+  LintNames.use_raw_strings: [
+    ConvertToRawString.new,
+  ],
+  LintNames.use_rethrow_when_possible: [
+    UseRethrow.new,
+  ],
+  LintNames.use_string_in_part_of_directives: [
+    ReplaceWithPartOrUriEmpty.new,
+  ],
+  LintNames.use_super_parameters: [
+    ConvertToSuperParameters.new,
+  ],
+};
+
+final _builtInNonLintMultiProducers = {
+  CompileTimeErrorCode.AMBIGUOUS_EXTENSION_MEMBER_ACCESS: [
+    AddExtensionOverride.new,
+  ],
+  CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.CAST_TO_NON_TYPE: [
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.CONST_WITH_NON_TYPE: [
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.EXTENDS_NON_CLASS: [
+    DataDriven.new,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS: [
+    AddMissingParameter.new,
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED: [
+    AddMissingParameter.new,
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.IMPLEMENTS_NON_CLASS: [
+    DataDriven.new,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.IMPLICIT_SUPER_INITIALIZER_MISSING_ARGUMENTS: [
+    AddSuperConstructorInvocation.new,
+  ],
+  CompileTimeErrorCode.INVALID_ANNOTATION: [
+    ImportLibrary.forTopLevelVariable,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.INVALID_OVERRIDE: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.INVALID_OVERRIDE_SETTER: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.MIXIN_OF_NON_CLASS: [
+    DataDriven.new,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.NEW_WITH_NON_TYPE: [
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.NEW_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT: [
+    AddSuperConstructorInvocation.new,
+  ],
+  CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT: [
+    AddSuperConstructorInvocation.new,
+    CreateConstructorSuper.new,
+  ],
+  CompileTimeErrorCode.NON_TYPE_IN_CATCH_CLAUSE: [
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.NON_TYPE_AS_TYPE_ARGUMENT: [
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.NOT_A_TYPE: [
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_NAME_PLURAL: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_NAME_SINGULAR: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_PLURAL: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_SINGULAR: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.TYPE_TEST_WITH_UNDEFINED_NAME: [
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.UNDEFINED_ANNOTATION: [
+    ImportLibrary.forTopLevelVariable,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.UNDEFINED_CLASS: [
+    DataDriven.new,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT: [
+    AddSuperConstructorInvocation.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_EXTENSION_GETTER: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_FUNCTION: [
+    DataDriven.new,
+    ImportLibrary.forExtension,
+    ImportLibrary.forFunction,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.UNDEFINED_GETTER: [
+    DataDriven.new,
+    ImportLibrary.forExtensionMember,
+    ImportLibrary.forTopLevelVariable,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.UNDEFINED_IDENTIFIER: [
+    DataDriven.new,
+    ImportLibrary.forExtension,
+    ImportLibrary.forExtensionMember,
+    ImportLibrary.forFunction,
+    ImportLibrary.forTopLevelVariable,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.UNDEFINED_METHOD: [
+    DataDriven.new,
+    ImportLibrary.forExtensionMember,
+    ImportLibrary.forFunction,
+    ImportLibrary.forType,
+  ],
+  CompileTimeErrorCode.UNDEFINED_NAMED_PARAMETER: [
+    ChangeArgumentName.new,
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_OPERATOR: [
+    ImportLibrary.forExtensionMember,
+  ],
+  CompileTimeErrorCode.UNDEFINED_PREFIXED_NAME: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_SETTER: [
+    DataDriven.new,
+    // TODO(brianwilkerson): Support ImportLibrary for non-extension members.
+    ImportLibrary.forExtensionMember,
+  ],
+  CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_EXTENSION: [
+    DataDriven.new,
+  ],
+  CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD: [
+    DataDriven.new,
+  ],
+  WarningCode.DEPRECATED_EXPORT_USE: [
+    DataDriven.new,
+  ],
+  HintCode.DEPRECATED_MEMBER_USE: [
+    DataDriven.new,
+  ],
+  HintCode.DEPRECATED_MEMBER_USE_WITH_MESSAGE: [
+    DataDriven.new,
+  ],
+  WarningCode.OVERRIDE_ON_NON_OVERRIDING_METHOD: [
+    DataDriven.new,
+  ],
+};
+
+final _builtInNonLintProducers = <ErrorCode, List<ProducerGenerator>>{
+  CompileTimeErrorCode.ABSTRACT_FIELD_INITIALIZER: [
+    RemoveAbstract.new,
+    RemoveInitializer.new,
+  ],
+  CompileTimeErrorCode.ABSTRACT_FIELD_CONSTRUCTOR_INITIALIZER: [
+    RemoveAbstract.new,
+    RemoveInitializer.new,
+  ],
+  CompileTimeErrorCode.ASSERT_IN_REDIRECTING_CONSTRUCTOR: [
+    RemoveAssertion.new,
+  ],
+  CompileTimeErrorCode.ASSIGNMENT_TO_FINAL: [
+    MakeFieldNotFinal.new,
+    AddLate.new,
+  ],
+  CompileTimeErrorCode.ASSIGNMENT_TO_FINAL_LOCAL: [
+    MakeVariableNotFinal.new,
+  ],
+  CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE: [
+    AddExplicitCast.new,
+    AddNullCheck.new,
+    WrapInText.new,
+  ],
+  CompileTimeErrorCode.ASYNC_FOR_IN_WRONG_CONTEXT: [
+    AddAsync.new,
+  ],
+  CompileTimeErrorCode.AWAIT_IN_WRONG_CONTEXT: [
+    AddAsync.new,
+  ],
+  CompileTimeErrorCode.BODY_MIGHT_COMPLETE_NORMALLY: [
+    AddAsync.missingReturn,
+  ],
+  CompileTimeErrorCode.CAST_TO_NON_TYPE: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+    CreateMixin.new,
+  ],
+  CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER: [
+    ConvertIntoBlockBody.missingBody,
+    CreateNoSuchMethod.new,
+    MakeClassAbstract.new,
+  ],
+  CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE: [
+    RemoveConst.new,
+    RemoveNew.new,
+  ],
+  CompileTimeErrorCode.CONST_INSTANCE_FIELD: [
+    AddStatic.new,
+  ],
+  CompileTimeErrorCode.CONST_WITH_NON_CONST: [
+    RemoveConst.new,
+  ],
+  CompileTimeErrorCode.CONST_WITH_NON_TYPE: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+  ],
+  CompileTimeErrorCode.CONSTANT_PATTERN_WITH_NON_CONSTANT_EXPRESSION: [
+    AddConst.new,
+  ],
+  CompileTimeErrorCode.DEFAULT_VALUE_ON_REQUIRED_PARAMETER: [
+    RemoveDefaultValue.new,
+    RemoveRequired.new,
+  ],
+  CompileTimeErrorCode.EMPTY_MAP_PATTERN: [
+    ReplaceEmptyMapPattern.any,
+    ReplaceEmptyMapPattern.empty,
+  ],
+  CompileTimeErrorCode.ENUM_WITH_ABSTRACT_MEMBER: [
+    ConvertIntoBlockBody.missingBody,
+  ],
+  CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.EXTENDS_NON_CLASS: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.EXTENDS_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.EXTENSION_OVERRIDE_ACCESS_TO_STATIC_MEMBER: [
+    ReplaceWithExtensionName.new,
+  ],
+  CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS: [
+    CreateConstructor.new,
+  ],
+  CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED: [
+    CreateConstructor.new,
+    ConvertToNamedArguments.new,
+  ],
+  CompileTimeErrorCode.FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.FINAL_CLASS_IMPLEMENTED_OUTSIDE_OF_LIBRARY: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.FINAL_NOT_INITIALIZED: [
+    AddLate.new,
+    CreateConstructorForFinalFields.requiredNamed,
+    CreateConstructorForFinalFields.requiredPositional,
+  ],
+  CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_1: [
+    AddFieldFormalParameters.new,
+  ],
+  CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_2: [
+    AddFieldFormalParameters.new,
+  ],
+  CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_3_PLUS: [
+    AddFieldFormalParameters.new,
+  ],
+  CompileTimeErrorCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE: [
+    ReplaceReturnTypeStream.new,
+  ],
+  CompileTimeErrorCode.ILLEGAL_ASYNC_RETURN_TYPE: [
+    ReplaceReturnTypeFuture.new,
+  ],
+  CompileTimeErrorCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE: [
+    ReplaceReturnTypeIterable.new,
+  ],
+  CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.IMPLEMENTS_NON_CLASS: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+  ],
+  CompileTimeErrorCode.IMPLEMENTS_REPEATED: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.IMPLEMENTS_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.IMPLICIT_SUPER_INITIALIZER_MISSING_ARGUMENTS: [
+    AddSuperParameter.new,
+  ],
+  CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTENT_FIELD: [
+    ChangeTo.field,
+    CreateField.new,
+  ],
+  CompileTimeErrorCode.INSTANCE_ACCESS_TO_STATIC_MEMBER: [
+    ChangeToStaticAccess.new,
+  ],
+  CompileTimeErrorCode.INTEGER_LITERAL_IMPRECISE_AS_DOUBLE: [
+    ChangeToNearestPreciseValue.new,
+  ],
+  CompileTimeErrorCode.INVALID_ANNOTATION: [
+    ChangeTo.annotation,
+    CreateClass.new,
+  ],
+  CompileTimeErrorCode.INVALID_ASSIGNMENT: [
+    AddExplicitCast.new,
+    AddNullCheck.new,
+    ChangeTypeAnnotation.new,
+    MakeVariableNullable.new,
+  ],
+  CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION: [
+    RemoveParenthesesInGetterInvocation.new,
+  ],
+  CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER: [
+    AddRequiredKeyword.new,
+    MakeVariableNullable.new,
+  ],
+  CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER_POSITIONAL: [
+    MakeVariableNullable.new,
+  ],
+  CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER_WITH_ANNOTATION: [
+    AddRequiredKeyword.new,
+  ],
+  CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT: [
+    AddMissingRequiredArgument.new,
+  ],
+  CompileTimeErrorCode.MIXIN_APPLICATION_NOT_IMPLEMENTED_INTERFACE: [
+    ExtendClassForMixin.new,
+  ],
+  CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.MIXIN_OF_NON_CLASS: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+  ],
+  CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_DISALLOWED_CLASS: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_NON_INTERFACE: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  CompileTimeErrorCode.NEW_WITH_NON_TYPE: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+  ],
+  CompileTimeErrorCode.NEW_WITH_UNDEFINED_CONSTRUCTOR: [
+    CreateConstructor.new,
+  ],
+  CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FIVE_PLUS: [
+    CreateMissingOverrides.new,
+    CreateNoSuchMethod.new,
+    MakeClassAbstract.new,
+  ],
+  CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FOUR: [
+    CreateMissingOverrides.new,
+    CreateNoSuchMethod.new,
+    MakeClassAbstract.new,
+  ],
+  CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE: [
+    CreateMissingOverrides.new,
+    CreateNoSuchMethod.new,
+    MakeClassAbstract.new,
+  ],
+  CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE: [
+    CreateMissingOverrides.new,
+    CreateNoSuchMethod.new,
+    MakeClassAbstract.new,
+  ],
+  CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO: [
+    CreateMissingOverrides.new,
+    CreateNoSuchMethod.new,
+    MakeClassAbstract.new,
+  ],
+  CompileTimeErrorCode.NON_BOOL_CONDITION: [
+    AddNeNull.new,
+    AddAwait.nonBool,
+  ],
+  CompileTimeErrorCode.NON_CONST_GENERATIVE_ENUM_CONSTRUCTOR: [
+    AddConst.new,
+  ],
+  CompileTimeErrorCode.NON_CONSTANT_MAP_PATTERN_KEY: [
+    AddConst.new,
+  ],
+  CompileTimeErrorCode.NON_CONSTANT_RELATIONAL_PATTERN_EXPRESSION: [
+    AddConst.new,
+  ],
+  CompileTimeErrorCode.NON_EXHAUSTIVE_SWITCH_EXPRESSION: [
+    AddMissingSwitchCases.new,
+  ],
+  CompileTimeErrorCode.NON_EXHAUSTIVE_SWITCH_STATEMENT: [
+    AddMissingSwitchCases.new,
+  ],
+  CompileTimeErrorCode.NON_FINAL_FIELD_IN_ENUM: [
+    MakeFinal.new,
+  ],
+  CompileTimeErrorCode.NON_TYPE_AS_TYPE_ARGUMENT: [
+    CreateClass.new,
+    CreateMixin.new,
+  ],
+  CompileTimeErrorCode.NOT_A_TYPE: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+    CreateMixin.new,
+  ],
+  CompileTimeErrorCode.NOT_INITIALIZED_NON_NULLABLE_INSTANCE_FIELD: [
+    AddLate.new,
+  ],
+  CompileTimeErrorCode.NULLABLE_TYPE_IN_EXTENDS_CLAUSE: [
+    RemoveQuestionMark.new,
+  ],
+  CompileTimeErrorCode.NULLABLE_TYPE_IN_IMPLEMENTS_CLAUSE: [
+    RemoveQuestionMark.new,
+  ],
+  CompileTimeErrorCode.NULLABLE_TYPE_IN_ON_CLAUSE: [
+    RemoveQuestionMark.new,
+  ],
+  CompileTimeErrorCode.NULLABLE_TYPE_IN_WITH_CLAUSE: [
+    RemoveQuestionMark.new,
+  ],
+  CompileTimeErrorCode.OBSOLETE_COLON_FOR_DEFAULT_VALUE: [
+    ReplaceColonWithEquals.new
+  ],
+  CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_FUNCTION: [
+    MakeReturnTypeNullable.new,
+    ReplaceReturnType.new,
+  ],
+  CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_METHOD: [
+    MakeReturnTypeNullable.new,
+    ReplaceReturnType.new,
+  ],
+  CompileTimeErrorCode.SUPER_FORMAL_PARAMETER_TYPE_IS_NOT_SUBTYPE_OF_ASSOCIATED:
+      [
+    RemoveTypeAnnotation.other,
+  ],
+  CompileTimeErrorCode.SUPER_FORMAL_PARAMETER_WITHOUT_ASSOCIATED_NAMED: [
+    ChangeTo.superFormalParameter,
+  ],
+  CompileTimeErrorCode.SUPER_INVOCATION_NOT_LAST: [
+    MakeSuperInvocationLast.new,
+  ],
+  CompileTimeErrorCode.SWITCH_CASE_COMPLETES_NORMALLY: [
+    AddSwitchCaseBreak.new,
+  ],
+  CompileTimeErrorCode.TYPE_TEST_WITH_UNDEFINED_NAME: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+    CreateMixin.new,
+  ],
+  CompileTimeErrorCode.UNCHECKED_INVOCATION_OF_NULLABLE_VALUE: [
+    AddNullCheck.new,
+  ],
+  CompileTimeErrorCode.UNCHECKED_METHOD_INVOCATION_OF_NULLABLE_VALUE: [
+    AddNullCheck.new,
+    ExtractLocalVariable.new,
+    ReplaceWithNullAware.single,
+  ],
+  CompileTimeErrorCode.UNCHECKED_OPERATOR_INVOCATION_OF_NULLABLE_VALUE: [
+    AddNullCheck.new,
+  ],
+  CompileTimeErrorCode.UNCHECKED_PROPERTY_ACCESS_OF_NULLABLE_VALUE: [
+    AddNullCheck.new,
+    ExtractLocalVariable.new,
+    ReplaceWithNullAware.single,
+  ],
+  CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_AS_CONDITION: [
+    AddNullCheck.new,
+  ],
+  CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_AS_ITERATOR: [
+    AddNullCheck.new,
+  ],
+  CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_IN_SPREAD: [
+    AddNullCheck.new,
+    ConvertToNullAwareSpread.new,
+  ],
+  CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_IN_YIELD_EACH: [
+    AddNullCheck.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_ANNOTATION: [
+    ChangeTo.annotation,
+    CreateClass.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_CLASS: [
+    ChangeTo.classOrMixin,
+    CreateClass.new,
+    CreateMixin.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_CLASS_BOOLEAN: [
+    ReplaceBooleanWithBool.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_ENUM_CONSTANT: [
+    AddEnumConstant.new,
+    ChangeTo.getterOrSetter,
+  ],
+  CompileTimeErrorCode.UNDEFINED_ENUM_CONSTRUCTOR_NAMED: [
+    CreateConstructor.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_ENUM_CONSTRUCTOR_UNNAMED: [
+    CreateConstructor.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_EXTENSION_GETTER: [
+    ChangeTo.getterOrSetter,
+    CreateGetter.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_EXTENSION_METHOD: [
+    ChangeTo.method,
+    CreateMethod.method,
+  ],
+  CompileTimeErrorCode.UNDEFINED_EXTENSION_SETTER: [
+    ChangeTo.getterOrSetter,
+    CreateSetter.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_FUNCTION: [
+    ChangeTo.function,
+    CreateClass.new,
+    CreateFunction.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_GETTER: [
+    ChangeTo.getterOrSetter,
+    CreateClass.new,
+    CreateField.new,
+    CreateGetter.new,
+    CreateLocalVariable.new,
+    CreateMethodOrFunction.new,
+    CreateMixin.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_IDENTIFIER: [
+    ChangeTo.getterOrSetter,
+    CreateClass.new,
+    CreateField.new,
+    CreateGetter.new,
+    CreateLocalVariable.new,
+    CreateMethodOrFunction.new,
+    CreateMixin.new,
+    CreateSetter.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_IDENTIFIER_AWAIT: [
+    AddAsync.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_METHOD: [
+    ChangeTo.method,
+    CreateClass.new,
+    CreateFunction.new,
+    CreateMethod.method,
+  ],
+  CompileTimeErrorCode.UNDEFINED_NAMED_PARAMETER: [
+    AddMissingParameterNamed.new,
+    ConvertFlutterChild.new,
+    ConvertFlutterChildren.new,
+  ],
+  CompileTimeErrorCode.UNDEFINED_SETTER: [
+    ChangeTo.getterOrSetter,
+    CreateField.new,
+    CreateSetter.new,
+  ],
+  CompileTimeErrorCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER: [
+    // TODO(brianwilkerson): Consider adding fixes to create a field, getter,
+    //  method or setter. The existing _addFix methods would need to be
+    //  updated so that only the appropriate subset is generated.
+    QualifyReference.new,
+  ],
+  CompileTimeErrorCode.UNQUALIFIED_REFERENCE_TO_STATIC_MEMBER_OF_EXTENDED_TYPE:
+      [
+    // TODO(brianwilkerson): Consider adding fixes to create a field, getter,
+    //  method or setter. The existing producers would need to be updated so
+    //  that only the appropriate subset is generated.
+    QualifyReference.new,
+  ],
+  CompileTimeErrorCode.URI_DOES_NOT_EXIST: [
+    CreateFile.new,
+  ],
+  ParserErrorCode.VARIABLE_PATTERN_KEYWORD_IN_DECLARATION_CONTEXT: [
+    RemoveVar.new,
+  ],
+  CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR: [
+    MoveTypeArgumentsToClass.new,
+    RemoveTypeArguments.new,
+  ],
+  CompileTimeErrorCode.YIELD_OF_INVALID_TYPE: [
+    MakeReturnTypeNullable.new,
+  ],
+  FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_EXTENDS: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_IMPLEMENTS: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_WITH: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  HintCode.DEPRECATED_COLON_FOR_DEFAULT_VALUE: [
+    ReplaceColonWithEquals.new,
+  ],
+  HintCode.DIVISION_OPTIMIZATION: [
+    UseEffectiveIntegerDivision.new,
+  ],
+  HintCode.UNNECESSARY_IMPORT: [
+    RemoveUnusedImport.new,
+  ],
+  ParserErrorCode.ABSTRACT_CLASS_MEMBER: [
+    RemoveAbstract.bulkFixable,
+  ],
+  ParserErrorCode.DEFAULT_IN_SWITCH_EXPRESSION: [
+    ReplaceWithWildcard.new,
+  ],
+  ParserErrorCode.EXPECTED_TOKEN: [
+    InsertSemicolon.new,
+    ReplaceWithArrow.new,
+  ],
+  ParserErrorCode.EXTENSION_DECLARES_CONSTRUCTOR: [
+    RemoveConstructor.new,
+  ],
+  ParserErrorCode.GETTER_WITH_PARAMETERS: [
+    RemoveParametersInGetterDeclaration.new,
+  ],
+  ParserErrorCode.INVALID_CONSTANT_PATTERN_BINARY: [
+    AddConst.new,
+  ],
+  ParserErrorCode.INVALID_CONSTANT_PATTERN_GENERIC: [
+    AddConst.new,
+  ],
+  ParserErrorCode.INVALID_CONSTANT_PATTERN_NEGATION: [
+    AddConst.new,
+  ],
+  ParserErrorCode.INVALID_INSIDE_UNARY_PATTERN: [
+    SurroundWithParentheses.new,
+  ],
+  ParserErrorCode.LATE_PATTERN_VARIABLE_DECLARATION: [
+    RemoveLate.new,
+  ],
+  ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE: [
+    AddTypeAnnotation.new,
+  ],
+  ParserErrorCode.MISSING_FUNCTION_BODY: [
+    ConvertIntoBlockBody.missingBody,
+  ],
+  ParserErrorCode.MIXIN_DECLARES_CONSTRUCTOR: [
+    RemoveConstructor.new,
+  ],
+  ParserErrorCode.PATTERN_ASSIGNMENT_DECLARES_VARIABLE: [
+    RemoveVarKeyword.new,
+  ],
+  ParserErrorCode.RECORD_LITERAL_ONE_POSITIONAL_NO_TRAILING_COMMA: [
+    AddTrailingComma.new,
+  ],
+  ParserErrorCode.RECORD_TYPE_ONE_POSITIONAL_NO_TRAILING_COMMA: [
+    AddTrailingComma.new,
+  ],
+  ParserErrorCode.VAR_AND_TYPE: [
+    RemoveTypeAnnotation.fixVarAndType,
+    RemoveVar.new,
+  ],
+  ParserErrorCode.VAR_AS_TYPE_NAME: [
+    ReplaceVarWithDynamic.new,
+  ],
+  ParserErrorCode.VAR_RETURN_TYPE: [
+    RemoveVar.new,
+  ],
+  StaticWarningCode.DEAD_NULL_AWARE_EXPRESSION: [
+    RemoveDeadIfNull.new,
+  ],
+  StaticWarningCode.INVALID_NULL_AWARE_OPERATOR: [
+    ReplaceWithNotNullAware.new,
+  ],
+  StaticWarningCode.INVALID_NULL_AWARE_OPERATOR_AFTER_SHORT_CIRCUIT: [
+    ReplaceWithNotNullAware.new,
+  ],
+  StaticWarningCode.MISSING_ENUM_CONSTANT_IN_SWITCH: [
+    AddMissingEnumCaseClauses.new,
+  ],
+  StaticWarningCode.UNNECESSARY_NON_NULL_ASSERTION: [
+    RemoveNonNullAssertion.new,
+  ],
+  StaticWarningCode.UNNECESSARY_NULL_CHECK_PATTERN: [
+    RemoveQuestionMark.new,
+  ],
+  StaticWarningCode.UNNECESSARY_NULL_ASSERT_PATTERN: [
+    RemoveNonNullAssertion.new,
+  ],
+  WarningCode.BODY_MIGHT_COMPLETE_NORMALLY_NULLABLE: [
+    AddReturnNull.new,
+  ],
+  WarningCode.DEAD_CODE: [
+    RemoveDeadCode.new,
+  ],
+  WarningCode.DEAD_CODE_CATCH_FOLLOWING_CATCH: [
+    // TODO(brianwilkerson): Add a fix to move the unreachable catch clause to
+    //  a place where it can be reached (when possible).
+    RemoveDeadCode.new,
+  ],
+  WarningCode.DEAD_CODE_ON_CATCH_SUBTYPE: [
+    // TODO(brianwilkerson): Add a fix to move the unreachable catch clause to
+    //  a place where it can be reached (when possible).
+    RemoveDeadCode.new,
+  ],
+  WarningCode.DEPRECATED_IMPLEMENTS_FUNCTION: [
+    RemoveNameFromDeclarationClause.new,
+  ],
+  WarningCode.DEPRECATED_NEW_IN_COMMENT_REFERENCE: [
+    RemoveDeprecatedNewInCommentReference.new,
+  ],
+  WarningCode.DUPLICATE_HIDDEN_NAME: [
+    RemoveNameFromCombinator.new,
+  ],
+  WarningCode.DUPLICATE_IMPORT: [
+    RemoveUnusedImport.new,
+  ],
+  WarningCode.DUPLICATE_SHOWN_NAME: [
+    RemoveNameFromCombinator.new,
+  ],
+  WarningCode.INVALID_ANNOTATION_TARGET: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_FACTORY_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_IMMUTABLE_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_INTERNAL_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_LITERAL_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_NON_VIRTUAL_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_REQUIRED_NAMED_PARAM: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_REQUIRED_OPTIONAL_POSITIONAL_PARAM: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_REQUIRED_POSITIONAL_PARAM: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_SEALED_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_VISIBILITY_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.INVALID_VISIBLE_FOR_OVERRIDING_ANNOTATION: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_ONE: [
+    CreateMissingOverrides.new,
+  ],
+  WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_TWO: [
+    CreateMissingOverrides.new,
+  ],
+  WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_THREE_PLUS: [
+    CreateMissingOverrides.new,
+  ],
+  WarningCode.MISSING_REQUIRED_PARAM: [
+    AddMissingRequiredArgument.new,
+  ],
+  WarningCode.MISSING_REQUIRED_PARAM_WITH_DETAILS: [
+    AddMissingRequiredArgument.new,
+  ],
+  WarningCode.MUST_CALL_SUPER: [
+    AddCallSuper.new,
+  ],
+  WarningCode.NULLABLE_TYPE_IN_CATCH_CLAUSE: [
+    RemoveQuestionMark.new,
+  ],
+  WarningCode.OVERRIDE_ON_NON_OVERRIDING_FIELD: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.OVERRIDE_ON_NON_OVERRIDING_GETTER: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.OVERRIDE_ON_NON_OVERRIDING_METHOD: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.OVERRIDE_ON_NON_OVERRIDING_SETTER: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.RECORD_LITERAL_ONE_POSITIONAL_NO_TRAILING_COMMA: [
+    AddTrailingComma.new,
+  ],
+  WarningCode.REDECLARE_ON_NON_REDECLARING_MEMBER: [
+    RemoveAnnotation.new,
+  ],
+  WarningCode.SDK_VERSION_GT_GT_GT_OPERATOR: [
+    UpdateSdkConstraints.version_2_14_0,
+  ],
+  WarningCode.TEXT_DIRECTION_CODE_POINT_IN_COMMENT: [
+    RemoveCharacter.new,
+    ReplaceWithUnicodeEscape.new,
+  ],
+  WarningCode.TEXT_DIRECTION_CODE_POINT_IN_LITERAL: [
+    RemoveCharacter.new,
+    ReplaceWithUnicodeEscape.new,
+  ],
+  WarningCode.TYPE_CHECK_IS_NOT_NULL: [
+    UseNotEqNull.new,
+  ],
+  WarningCode.TYPE_CHECK_IS_NULL: [
+    UseEqEqNull.new,
+  ],
+  WarningCode.UNDEFINED_HIDDEN_NAME: [
+    RemoveNameFromCombinator.new,
+  ],
+  WarningCode.UNDEFINED_SHOWN_NAME: [
+    RemoveNameFromCombinator.new,
+  ],
+  WarningCode.UNNECESSARY_CAST: [
+    RemoveUnnecessaryCast.new,
+  ],
+  WarningCode.UNNECESSARY_FINAL: [
+    RemoveUnnecessaryFinal.new,
+  ],
+  WarningCode.UNNECESSARY_NAN_COMPARISON_FALSE: [
+    RemoveComparison.new,
+    ReplaceWithIsNan.new,
+  ],
+  WarningCode.UNNECESSARY_NAN_COMPARISON_TRUE: [
+    RemoveComparison.new,
+    ReplaceWithIsNan.new,
+  ],
+  WarningCode.UNNECESSARY_NULL_COMPARISON_FALSE: [
+    RemoveComparison.new,
+  ],
+  WarningCode.UNNECESSARY_NULL_COMPARISON_TRUE: [
+    RemoveComparison.new,
+  ],
+  WarningCode.UNNECESSARY_QUESTION_MARK: [
+    RemoveQuestionMark.new,
+  ],
+  WarningCode.UNNECESSARY_SET_LITERAL: [
+    ConvertIntoBlockBody.setLiteral,
+  ],
+  WarningCode.UNNECESSARY_TYPE_CHECK_FALSE: [
+    RemoveComparison.typeCheck,
+  ],
+  WarningCode.UNNECESSARY_TYPE_CHECK_TRUE: [
+    RemoveComparison.typeCheck,
+  ],
+  WarningCode.UNNECESSARY_WILDCARD_PATTERN: [
+    RemoveUnnecessaryWildcardPattern.new,
+  ],
+  WarningCode.UNREACHABLE_SWITCH_CASE: [
+    RemoveDeadCode.new,
+  ],
+  WarningCode.UNUSED_CATCH_CLAUSE: [
+    RemoveUnusedCatchClause.new,
+  ],
+  WarningCode.UNUSED_CATCH_STACK: [
+    RemoveUnusedCatchStack.new,
+  ],
+  WarningCode.UNUSED_ELEMENT: [
+    RemoveUnusedElement.new,
+  ],
+  WarningCode.UNUSED_ELEMENT_PARAMETER: [
+    RemoveUnusedParameter.new,
+  ],
+  WarningCode.UNUSED_FIELD: [
+    RemoveUnusedField.new,
+  ],
+  WarningCode.UNUSED_IMPORT: [
+    RemoveUnusedImport.new,
+  ],
+  WarningCode.UNUSED_LABEL: [
+    RemoveUnusedLabel.new,
+  ],
+  WarningCode.UNUSED_LOCAL_VARIABLE: [
+    RemoveUnusedLocalVariable.new,
+  ],
+  WarningCode.UNUSED_SHOWN_NAME: [
+    RemoveNameFromCombinator.new,
+  ],
+};
+
+final _builtInParseLintProducers = {
+  LintNames.prefer_generic_function_type_aliases: [
+    ConvertToGenericFunctionSyntax.new,
+  ],
+  LintNames.slash_for_doc_comments: [
+    ConvertDocumentationIntoLine.new,
+  ],
+  LintNames.unnecessary_const: [
+    RemoveUnnecessaryConst.new,
+  ],
+  LintNames.unnecessary_new: [
+    RemoveUnnecessaryNew.new,
+  ],
+  LintNames.unnecessary_string_escapes: [
+    RemoveUnnecessaryStringEscape.new,
+  ],
+  LintNames.use_function_type_syntax_for_parameters: [
+    ConvertToGenericFunctionSyntax.new,
+  ],
+};
+
+/// Registers each mapping of diagnostic -> list-of-producers with
+/// [FixProcessor].
+void registerBuiltInProducers() {
+  FixProcessor.lintMultiProducerMap.addAll(_builtInLintMultiProducers);
+  FixProcessor.lintProducerMap.addAll(_builtInLintProducers);
+  FixProcessor.nonLintMultiProducerMap.addAll(_builtInNonLintMultiProducers);
+  FixProcessor.nonLintProducerMap.addAll(_builtInNonLintProducers);
+  FixProcessor.parseLintProducerMap.addAll(_builtInParseLintProducers);
+}
 
 /// A fix contributor that provides the default set of fixes for Dart files.
 class DartFixContributor implements FixContributor {
@@ -395,1516 +1731,6 @@
   }
 }
 
-/// The computer for Dart fixes.
-class FixProcessor extends BaseProcessor {
-  /// Cached results of [canBulkFix].
-  static final Map<ErrorCode, bool> _bulkFixableErrorCodes = {};
-
-  static final Map<String, List<MultiProducerGenerator>> lintMultiProducerMap =
-      {
-    LintNames.deprecated_member_use_from_same_package: [
-      DataDriven.new,
-    ],
-    LintNames.deprecated_member_use_from_same_package_with_message: [
-      DataDriven.new,
-    ],
-    LintNames.comment_references: [
-      ImportLibrary.forType,
-    ],
-  };
-
-  /// A map from the names of lint rules to a list of the generators that are
-  /// used to create correction producers. The generators are then used to build
-  /// fixes for those diagnostics. The generators used for non-lint diagnostics
-  /// are in the [nonLintProducerMap].
-  ///
-  /// The keys of the map are the unique names of the lint codes without the
-  /// `LintCode.` prefix. Generally the unique name is the same as the name of
-  /// the lint, so most of the keys are constants defined by [LintNames]. But
-  /// when a lint produces multiple codes, each with a different unique name,
-  /// the unique name must be used here.
-  static final Map<String, List<ProducerGenerator>> lintProducerMap = {
-    LintNames.always_declare_return_types: [
-      AddReturnType.new,
-    ],
-    LintNames.always_put_control_body_on_new_line: [
-      UseCurlyBraces.nonBulk,
-    ],
-    LintNames.always_put_required_named_parameters_first: [
-      MakeRequiredNamedParametersFirst.new,
-    ],
-    LintNames.always_specify_types: [
-      AddTypeAnnotation.bulkFixable,
-    ],
-    LintNames.always_use_package_imports: [
-      ConvertToPackageImport.new,
-    ],
-    LintNames.annotate_overrides: [
-      AddOverride.new,
-    ],
-    LintNames.annotate_redeclares: [
-      AddRedeclare.new,
-    ],
-    LintNames.avoid_annotating_with_dynamic: [
-      RemoveTypeAnnotation.other,
-    ],
-    LintNames.avoid_empty_else: [
-      RemoveEmptyElse.new,
-    ],
-    LintNames.avoid_escaping_inner_quotes: [
-      ConvertQuotes.new,
-    ],
-    LintNames.avoid_function_literals_in_foreach_calls: [
-      ConvertForEachToForLoop.new,
-    ],
-    LintNames.avoid_init_to_null: [
-      RemoveInitializer.bulkFixable,
-    ],
-    LintNames.avoid_multiple_declarations_per_line: [
-      SplitMultipleDeclarations.new,
-    ],
-    LintNames.avoid_null_checks_in_equality_operators: [
-      RemoveComparison.new,
-    ],
-    LintNames.avoid_print: [
-      MakeConditionalOnDebugMode.new,
-      RemovePrint.new,
-    ],
-    LintNames.avoid_private_typedef_functions: [
-      InlineTypedef.new,
-    ],
-    LintNames.avoid_redundant_argument_values: [
-      RemoveArgument.new,
-    ],
-    LintNames.avoid_relative_lib_imports: [
-      ConvertToPackageImport.new,
-    ],
-    LintNames.avoid_renaming_method_parameters: [
-      RenameMethodParameter.new,
-    ],
-    LintNames.avoid_return_types_on_setters: [
-      RemoveTypeAnnotation.other,
-    ],
-    LintNames.avoid_returning_null_for_void: [
-      RemoveReturnedValue.new,
-    ],
-    LintNames.avoid_single_cascade_in_expression_statements: [
-      // TODO(brianwilkerson): This fix should be applied to some non-lint
-      //  diagnostics and should also be available as an assist.
-      ReplaceCascadeWithDot.new,
-    ],
-    LintNames.avoid_types_as_parameter_names: [
-      ConvertToOnType.new,
-    ],
-    LintNames.avoid_types_on_closure_parameters: [
-      ReplaceWithIdentifier.new,
-      RemoveTypeAnnotation.other,
-    ],
-    LintNames.avoid_unused_constructor_parameters: [
-      RemoveUnusedParameter.new,
-    ],
-    LintNames.avoid_unnecessary_containers: [
-      FlutterRemoveWidget.new,
-    ],
-    LintNames.avoid_void_async: [
-      ReplaceReturnTypeFuture.new,
-    ],
-    LintNames.await_only_futures: [
-      RemoveAwait.new,
-    ],
-    LintNames.cascade_invocations: [
-      ConvertToCascade.new,
-    ],
-    LintNames.cast_nullable_to_non_nullable: [
-      AddNullCheck.withoutAssignabilityCheck,
-    ],
-    LintNames.combinators_ordering: [
-      SortCombinators.new,
-    ],
-    LintNames.constant_identifier_names: [
-      RenameToCamelCase.new,
-    ],
-    LintNames.curly_braces_in_flow_control_structures: [
-      UseCurlyBraces.new,
-    ],
-    LintNames.dangling_library_doc_comments: [
-      MoveDocCommentToLibraryDirective.new,
-    ],
-    LintNames.diagnostic_describe_all_properties: [
-      AddDiagnosticPropertyReference.new,
-    ],
-    LintNames.directives_ordering: [
-      OrganizeImports.new,
-    ],
-    LintNames.discarded_futures: [
-      AddAsync.new,
-      WrapInUnawaited.new,
-    ],
-    LintNames.empty_catches: [
-      RemoveEmptyCatch.new,
-    ],
-    LintNames.empty_constructor_bodies: [
-      RemoveEmptyConstructorBody.new,
-    ],
-    LintNames.empty_statements: [
-      RemoveEmptyStatement.new,
-      ReplaceWithBrackets.new,
-    ],
-    LintNames.eol_at_end_of_file: [
-      AddEolAtEndOfFile.new,
-    ],
-    LintNames.exhaustive_cases: [
-      AddMissingEnumLikeCaseClauses.new,
-    ],
-    LintNames.flutter_style_todos: [
-      ConvertToFlutterStyleTodo.new,
-    ],
-    LintNames.hash_and_equals: [
-      CreateMethod.equalsOrHashCode,
-    ],
-    LintNames.implicit_call_tearoffs: [
-      AddExplicitCall.new,
-    ],
-    LintNames.implicit_reopen: [
-      AddReopen.new,
-    ],
-    LintNames.invalid_case_patterns: [
-      AddConst.new,
-    ],
-    LintNames.leading_newlines_in_multiline_strings: [
-      AddLeadingNewlineToString.new,
-    ],
-    LintNames.library_annotations: [
-      MoveAnnotationToLibraryDirective.new,
-    ],
-    LintNames.no_duplicate_case_values: [
-      RemoveDuplicateCase.new,
-    ],
-    LintNames.no_leading_underscores_for_library_prefixes: [
-      RemoveLeadingUnderscore.new,
-    ],
-    LintNames.no_literal_bool_comparisons: [
-      ConvertToBooleanExpression.new,
-    ],
-    LintNames.no_leading_underscores_for_local_identifiers: [
-      RemoveLeadingUnderscore.new,
-    ],
-    LintNames.non_constant_identifier_names: [
-      RenameToCamelCase.new,
-    ],
-    LintNames.noop_primitive_operations: [
-      RemoveInvocation.new,
-    ],
-    LintNames.null_check_on_nullable_type_parameter: [
-      ReplaceNullCheckWithCast.new,
-    ],
-    LintNames.null_closures: [
-      ReplaceNullWithClosure.new,
-    ],
-    LintNames.omit_local_variable_types: [
-      ReplaceWithVar.new,
-    ],
-    LintNames.prefer_adjacent_string_concatenation: [
-      RemoveOperator.new,
-    ],
-    LintNames.prefer_collection_literals: [
-      ConvertToMapLiteral.new,
-      ConvertToSetLiteral.new,
-    ],
-    LintNames.prefer_conditional_assignment: [
-      ReplaceWithConditionalAssignment.new,
-    ],
-    LintNames.prefer_const_constructors: [
-      AddConst.new,
-      ReplaceNewWithConst.new,
-    ],
-    LintNames.prefer_const_constructors_in_immutables: [
-      AddConst.new,
-    ],
-    LintNames.prefer_const_declarations: [
-      ReplaceFinalWithConst.new,
-    ],
-    LintNames.prefer_const_literals_to_create_immutables: [
-      AddConst.new,
-    ],
-    LintNames.prefer_contains: [
-      ConvertToContains.new,
-    ],
-    LintNames.prefer_double_quotes: [
-      ConvertToDoubleQuotes.new,
-    ],
-    LintNames.prefer_expression_function_bodies: [
-      ConvertToExpressionFunctionBody.new,
-    ],
-    LintNames.prefer_final_fields: [
-      MakeFinal.new,
-    ],
-    LintNames.prefer_final_in_for_each: [
-      MakeFinal.new,
-    ],
-    LintNames.prefer_final_locals: [
-      MakeFinal.new,
-    ],
-    LintNames.prefer_final_parameters: [
-      MakeFinal.new,
-    ],
-    LintNames.prefer_for_elements_to_map_fromIterable: [
-      ConvertMapFromIterableToForLiteral.new,
-    ],
-    LintNames.prefer_function_declarations_over_variables: [
-      ConvertToFunctionDeclaration.new,
-    ],
-    LintNames.prefer_generic_function_type_aliases: [
-      ConvertToGenericFunctionSyntax.new,
-    ],
-    LintNames.prefer_if_elements_to_conditional_expressions: [
-      ConvertConditionalExpressionToIfElement.new,
-    ],
-    LintNames.prefer_if_null_operators: [
-      ConvertToIfNull.new,
-    ],
-    LintNames.prefer_initializing_formals: [
-      ConvertToInitializingFormal.new,
-    ],
-    LintNames.prefer_inlined_adds: [
-      ConvertAddAllToSpread.new,
-      InlineInvocation.new,
-    ],
-    LintNames.prefer_int_literals: [
-      ConvertToIntLiteral.new,
-    ],
-    LintNames.prefer_interpolation_to_compose_strings: [
-      ReplaceWithInterpolation.new,
-    ],
-    LintNames.prefer_is_empty: [
-      ReplaceWithIsEmpty.new,
-    ],
-    LintNames.prefer_is_not_empty: [
-      UseIsNotEmpty.new,
-    ],
-    LintNames.prefer_is_not_operator: [
-      ConvertIntoIsNot.new,
-    ],
-    LintNames.prefer_iterable_whereType: [
-      ConvertToWhereType.new,
-    ],
-    LintNames.prefer_null_aware_operators: [
-      ConvertToNullAware.new,
-    ],
-    LintNames.prefer_relative_imports: [
-      ConvertToRelativeImport.new,
-    ],
-    LintNames.prefer_single_quotes: [
-      ConvertToSingleQuotes.new,
-    ],
-    LintNames.prefer_spread_collections: [
-      ConvertAddAllToSpread.new,
-    ],
-    LintNames.prefer_typing_uninitialized_variables: [
-      AddTypeAnnotation.bulkFixable,
-    ],
-    LintNames.prefer_void_to_null: [
-      ReplaceNullWithVoid.new,
-    ],
-    LintNames.require_trailing_commas: [
-      AddTrailingComma.new,
-    ],
-    LintNames.sized_box_for_whitespace: [
-      ReplaceContainerWithSizedBox.new,
-    ],
-    LintNames.slash_for_doc_comments: [
-      ConvertDocumentationIntoLine.new,
-    ],
-    LintNames.sort_child_properties_last: [
-      SortChildPropertyLast.new,
-    ],
-    LintNames.sort_constructors_first: [
-      SortConstructorFirst.new,
-    ],
-    LintNames.sort_unnamed_constructors_first: [
-      SortUnnamedConstructorFirst.new,
-    ],
-    LintNames.type_annotate_public_apis: [
-      AddTypeAnnotation.bulkFixable,
-    ],
-    LintNames.type_init_formals: [
-      RemoveTypeAnnotation.other,
-    ],
-    LintNames.type_literal_in_constant_pattern: [
-      ConvertToConstantPattern.new,
-      ConvertToWildcardPattern.new,
-    ],
-    LintNames.unawaited_futures: [
-      AddAwait.unawaited,
-      WrapInUnawaited.new,
-    ],
-    LintNames.unnecessary_brace_in_string_interps: [
-      RemoveInterpolationBraces.new,
-    ],
-    LintNames.unnecessary_breaks: [
-      RemoveBreak.new,
-    ],
-    LintNames.unnecessary_const: [
-      RemoveUnnecessaryConst.new,
-    ],
-    LintNames.unnecessary_constructor_name: [
-      RemoveConstructorName.new,
-    ],
-    LintNames.unnecessary_final: [
-      ReplaceFinalWithVar.new,
-    ],
-    LintNames.unnecessary_getters_setters: [
-      MakeFieldPublic.new,
-    ],
-    LintNames.unnecessary_lambdas: [
-      ReplaceWithTearOff.new,
-    ],
-    LintNames.unnecessary_late: [
-      RemoveUnnecessaryLate.new,
-    ],
-    LintNames.unnecessary_library_directive: [
-      RemoveUnnecessaryLibraryDirective.new,
-    ],
-    LintNames.unnecessary_new: [
-      RemoveUnnecessaryNew.new,
-    ],
-    LintNames.unnecessary_null_aware_assignments: [
-      RemoveAssignment.new,
-    ],
-    LintNames.unnecessary_null_checks: [
-      RemoveNonNullAssertion.new,
-    ],
-    LintNames.unnecessary_null_in_if_null_operators: [
-      RemoveIfNullOperator.new,
-    ],
-    LintNames.unnecessary_nullable_for_final_variable_declarations: [
-      RemoveQuestionMark.new,
-    ],
-    LintNames.unnecessary_overrides: [
-      RemoveMethodDeclaration.new,
-    ],
-    LintNames.unnecessary_parenthesis: [
-      RemoveUnnecessaryParentheses.new,
-    ],
-    LintNames.unnecessary_raw_strings: [
-      RemoveUnnecessaryRawString.new,
-    ],
-    LintNames.unnecessary_string_escapes: [
-      RemoveUnnecessaryStringEscape.new,
-    ],
-    LintNames.unnecessary_string_interpolations: [
-      RemoveUnnecessaryStringInterpolation.new,
-    ],
-    LintNames.unnecessary_to_list_in_spreads: [
-      RemoveToList.new,
-    ],
-    LintNames.unnecessary_this: [
-      RemoveThisExpression.new,
-    ],
-    LintNames.unreachable_from_main: [
-      RemoveUnusedElement.new,
-    ],
-    LintNames.use_decorated_box: [
-      ReplaceWithDecoratedBox.new,
-    ],
-    LintNames.use_enums: [
-      ConvertClassToEnum.new,
-    ],
-    LintNames.use_full_hex_values_for_flutter_colors: [
-      ReplaceWithEightDigitHex.new,
-    ],
-    LintNames.use_function_type_syntax_for_parameters: [
-      ConvertToGenericFunctionSyntax.new,
-    ],
-    LintNames.use_key_in_widget_constructors: [
-      AddKeyToConstructors.new,
-    ],
-    LintNames.use_raw_strings: [
-      ConvertToRawString.new,
-    ],
-    LintNames.use_rethrow_when_possible: [
-      UseRethrow.new,
-    ],
-    LintNames.use_string_in_part_of_directives: [
-      ReplaceWithPartOrUriEmpty.new,
-    ],
-    LintNames.use_super_parameters: [
-      ConvertToSuperParameters.new,
-    ],
-  };
-
-  /// A map from error codes to a list of generators used to create multiple
-  /// correction producers used to build fixes for those diagnostics. The
-  /// generators used for lint rules are in the [lintMultiProducerMap].
-  static const Map<ErrorCode, List<MultiProducerGenerator>>
-      nonLintMultiProducerMap = {
-    CompileTimeErrorCode.AMBIGUOUS_EXTENSION_MEMBER_ACCESS: [
-      AddExtensionOverride.new,
-    ],
-    CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.CAST_TO_NON_TYPE: [
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.CONST_WITH_NON_TYPE: [
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.EXTENDS_NON_CLASS: [
-      DataDriven.new,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS: [
-      AddMissingParameter.new,
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED: [
-      AddMissingParameter.new,
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.IMPLEMENTS_NON_CLASS: [
-      DataDriven.new,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.IMPLICIT_SUPER_INITIALIZER_MISSING_ARGUMENTS: [
-      AddSuperConstructorInvocation.new,
-    ],
-    CompileTimeErrorCode.INVALID_ANNOTATION: [
-      ImportLibrary.forTopLevelVariable,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.INVALID_OVERRIDE: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.INVALID_OVERRIDE_SETTER: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.MIXIN_OF_NON_CLASS: [
-      DataDriven.new,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.NEW_WITH_NON_TYPE: [
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.NEW_WITH_UNDEFINED_CONSTRUCTOR_DEFAULT: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_EXPLICIT: [
-      AddSuperConstructorInvocation.new,
-    ],
-    CompileTimeErrorCode.NO_DEFAULT_SUPER_CONSTRUCTOR_IMPLICIT: [
-      AddSuperConstructorInvocation.new,
-      CreateConstructorSuper.new,
-    ],
-    CompileTimeErrorCode.NON_TYPE_IN_CATCH_CLAUSE: [
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.NON_TYPE_AS_TYPE_ARGUMENT: [
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.NOT_A_TYPE: [
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_NAME_PLURAL: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_NAME_SINGULAR: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_PLURAL: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS_SINGULAR: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.TYPE_TEST_WITH_UNDEFINED_NAME: [
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.UNDEFINED_ANNOTATION: [
-      ImportLibrary.forTopLevelVariable,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.UNDEFINED_CLASS: [
-      DataDriven.new,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.UNDEFINED_CONSTRUCTOR_IN_INITIALIZER_DEFAULT: [
-      AddSuperConstructorInvocation.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_EXTENSION_GETTER: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_FUNCTION: [
-      DataDriven.new,
-      ImportLibrary.forExtension,
-      ImportLibrary.forFunction,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.UNDEFINED_GETTER: [
-      DataDriven.new,
-      ImportLibrary.forExtensionMember,
-      ImportLibrary.forTopLevelVariable,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.UNDEFINED_IDENTIFIER: [
-      DataDriven.new,
-      ImportLibrary.forExtension,
-      ImportLibrary.forExtensionMember,
-      ImportLibrary.forFunction,
-      ImportLibrary.forTopLevelVariable,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.UNDEFINED_METHOD: [
-      DataDriven.new,
-      ImportLibrary.forExtensionMember,
-      ImportLibrary.forFunction,
-      ImportLibrary.forType,
-    ],
-    CompileTimeErrorCode.UNDEFINED_NAMED_PARAMETER: [
-      ChangeArgumentName.new,
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_OPERATOR: [
-      ImportLibrary.forExtensionMember,
-    ],
-    CompileTimeErrorCode.UNDEFINED_PREFIXED_NAME: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_SETTER: [
-      DataDriven.new,
-      // TODO(brianwilkerson): Support ImportLibrary for non-extension members.
-      ImportLibrary.forExtensionMember,
-    ],
-    CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_EXTENSION: [
-      DataDriven.new,
-    ],
-    CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD: [
-      DataDriven.new,
-    ],
-    WarningCode.DEPRECATED_EXPORT_USE: [
-      DataDriven.new,
-    ],
-    HintCode.DEPRECATED_MEMBER_USE: [
-      DataDriven.new,
-    ],
-    HintCode.DEPRECATED_MEMBER_USE_WITH_MESSAGE: [
-      DataDriven.new,
-    ],
-    WarningCode.OVERRIDE_ON_NON_OVERRIDING_METHOD: [
-      DataDriven.new,
-    ],
-  };
-
-  /// A map from error codes to a list of the generators that are used to create
-  /// correction producers. The generators are then used to build fixes for
-  /// those diagnostics. The generators used for lint rules are in the
-  /// [lintProducerMap].
-  static const Map<ErrorCode, List<ProducerGenerator>> nonLintProducerMap = {
-    CompileTimeErrorCode.ABSTRACT_FIELD_INITIALIZER: [
-      RemoveAbstract.new,
-      RemoveInitializer.new,
-    ],
-    CompileTimeErrorCode.ABSTRACT_FIELD_CONSTRUCTOR_INITIALIZER: [
-      RemoveAbstract.new,
-      RemoveInitializer.new,
-    ],
-    CompileTimeErrorCode.ASSERT_IN_REDIRECTING_CONSTRUCTOR: [
-      RemoveAssertion.new,
-    ],
-    CompileTimeErrorCode.ASSIGNMENT_TO_FINAL: [
-      MakeFieldNotFinal.new,
-      AddLate.new,
-    ],
-    CompileTimeErrorCode.ASSIGNMENT_TO_FINAL_LOCAL: [
-      MakeVariableNotFinal.new,
-    ],
-    CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE: [
-      AddExplicitCast.new,
-      AddNullCheck.new,
-      WrapInText.new,
-    ],
-    CompileTimeErrorCode.ASYNC_FOR_IN_WRONG_CONTEXT: [
-      AddAsync.new,
-    ],
-    CompileTimeErrorCode.AWAIT_IN_WRONG_CONTEXT: [
-      AddAsync.new,
-    ],
-    CompileTimeErrorCode.BODY_MIGHT_COMPLETE_NORMALLY: [
-      AddAsync.missingReturn,
-    ],
-    CompileTimeErrorCode.CAST_TO_NON_TYPE: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-      CreateMixin.new,
-    ],
-    CompileTimeErrorCode.CONCRETE_CLASS_WITH_ABSTRACT_MEMBER: [
-      ConvertIntoBlockBody.missingBody,
-      CreateNoSuchMethod.new,
-      MakeClassAbstract.new,
-    ],
-    CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE: [
-      RemoveConst.new,
-      RemoveNew.new,
-    ],
-    CompileTimeErrorCode.CONST_INSTANCE_FIELD: [
-      AddStatic.new,
-    ],
-    CompileTimeErrorCode.CONST_WITH_NON_CONST: [
-      RemoveConst.new,
-    ],
-    CompileTimeErrorCode.CONST_WITH_NON_TYPE: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-    ],
-    CompileTimeErrorCode.CONSTANT_PATTERN_WITH_NON_CONSTANT_EXPRESSION: [
-      AddConst.new,
-    ],
-    CompileTimeErrorCode.DEFAULT_VALUE_ON_REQUIRED_PARAMETER: [
-      RemoveDefaultValue.new,
-      RemoveRequired.new,
-    ],
-    CompileTimeErrorCode.EMPTY_MAP_PATTERN: [
-      ReplaceEmptyMapPattern.any,
-      ReplaceEmptyMapPattern.empty,
-    ],
-    CompileTimeErrorCode.ENUM_WITH_ABSTRACT_MEMBER: [
-      ConvertIntoBlockBody.missingBody,
-    ],
-    CompileTimeErrorCode.EXTENDS_DISALLOWED_CLASS: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.EXTENDS_NON_CLASS: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.EXTENDS_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.EXTENSION_OVERRIDE_ACCESS_TO_STATIC_MEMBER: [
-      ReplaceWithExtensionName.new,
-    ],
-    CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS: [
-      CreateConstructor.new,
-    ],
-    CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED: [
-      CreateConstructor.new,
-      ConvertToNamedArguments.new,
-    ],
-    CompileTimeErrorCode.FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.FINAL_CLASS_IMPLEMENTED_OUTSIDE_OF_LIBRARY: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.FINAL_NOT_INITIALIZED: [
-      AddLate.new,
-      CreateConstructorForFinalFields.requiredNamed,
-      CreateConstructorForFinalFields.requiredPositional,
-    ],
-    CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_1: [
-      AddFieldFormalParameters.new,
-    ],
-    CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_2: [
-      AddFieldFormalParameters.new,
-    ],
-    CompileTimeErrorCode.FINAL_NOT_INITIALIZED_CONSTRUCTOR_3_PLUS: [
-      AddFieldFormalParameters.new,
-    ],
-    CompileTimeErrorCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE: [
-      ReplaceReturnTypeStream.new,
-    ],
-    CompileTimeErrorCode.ILLEGAL_ASYNC_RETURN_TYPE: [
-      ReplaceReturnTypeFuture.new,
-    ],
-    CompileTimeErrorCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE: [
-      ReplaceReturnTypeIterable.new,
-    ],
-    CompileTimeErrorCode.IMPLEMENTS_DISALLOWED_CLASS: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.IMPLEMENTS_NON_CLASS: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-    ],
-    CompileTimeErrorCode.IMPLEMENTS_REPEATED: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.IMPLEMENTS_SUPER_CLASS: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.IMPLEMENTS_TYPE_ALIAS_EXPANDS_TO_TYPE_PARAMETER: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.IMPLICIT_SUPER_INITIALIZER_MISSING_ARGUMENTS: [
-      AddSuperParameter.new,
-    ],
-    CompileTimeErrorCode.INITIALIZING_FORMAL_FOR_NON_EXISTENT_FIELD: [
-      ChangeTo.field,
-      CreateField.new,
-    ],
-    CompileTimeErrorCode.INSTANCE_ACCESS_TO_STATIC_MEMBER: [
-      ChangeToStaticAccess.new,
-    ],
-    CompileTimeErrorCode.INTEGER_LITERAL_IMPRECISE_AS_DOUBLE: [
-      ChangeToNearestPreciseValue.new,
-    ],
-    CompileTimeErrorCode.INVALID_ANNOTATION: [
-      ChangeTo.annotation,
-      CreateClass.new,
-    ],
-    CompileTimeErrorCode.INVALID_ASSIGNMENT: [
-      AddExplicitCast.new,
-      AddNullCheck.new,
-      ChangeTypeAnnotation.new,
-      MakeVariableNullable.new,
-    ],
-    CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION: [
-      RemoveParenthesesInGetterInvocation.new,
-    ],
-    CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER: [
-      AddRequiredKeyword.new,
-      MakeVariableNullable.new,
-    ],
-    CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER_POSITIONAL: [
-      MakeVariableNullable.new,
-    ],
-    CompileTimeErrorCode.MISSING_DEFAULT_VALUE_FOR_PARAMETER_WITH_ANNOTATION: [
-      AddRequiredKeyword.new,
-    ],
-    CompileTimeErrorCode.MISSING_REQUIRED_ARGUMENT: [
-      AddMissingRequiredArgument.new,
-    ],
-    CompileTimeErrorCode.MIXIN_APPLICATION_NOT_IMPLEMENTED_INTERFACE: [
-      ExtendClassForMixin.new,
-    ],
-    CompileTimeErrorCode.MIXIN_OF_DISALLOWED_CLASS: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.MIXIN_OF_NON_CLASS: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-    ],
-    CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_DISALLOWED_CLASS: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.MIXIN_SUPER_CLASS_CONSTRAINT_NON_INTERFACE: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    CompileTimeErrorCode.NEW_WITH_NON_TYPE: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-    ],
-    CompileTimeErrorCode.NEW_WITH_UNDEFINED_CONSTRUCTOR: [
-      CreateConstructor.new,
-    ],
-    CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FIVE_PLUS:
-        [
-      CreateMissingOverrides.new,
-      CreateNoSuchMethod.new,
-      MakeClassAbstract.new,
-    ],
-    CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_FOUR: [
-      CreateMissingOverrides.new,
-      CreateNoSuchMethod.new,
-      MakeClassAbstract.new,
-    ],
-    CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE: [
-      CreateMissingOverrides.new,
-      CreateNoSuchMethod.new,
-      MakeClassAbstract.new,
-    ],
-    CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_THREE: [
-      CreateMissingOverrides.new,
-      CreateNoSuchMethod.new,
-      MakeClassAbstract.new,
-    ],
-    CompileTimeErrorCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_TWO: [
-      CreateMissingOverrides.new,
-      CreateNoSuchMethod.new,
-      MakeClassAbstract.new,
-    ],
-    CompileTimeErrorCode.NON_BOOL_CONDITION: [
-      AddNeNull.new,
-      AddAwait.nonBool,
-    ],
-    CompileTimeErrorCode.NON_CONST_GENERATIVE_ENUM_CONSTRUCTOR: [
-      AddConst.new,
-    ],
-    CompileTimeErrorCode.NON_CONSTANT_MAP_PATTERN_KEY: [
-      AddConst.new,
-    ],
-    CompileTimeErrorCode.NON_CONSTANT_RELATIONAL_PATTERN_EXPRESSION: [
-      AddConst.new,
-    ],
-    CompileTimeErrorCode.NON_EXHAUSTIVE_SWITCH_EXPRESSION: [
-      AddMissingSwitchCases.new,
-    ],
-    CompileTimeErrorCode.NON_EXHAUSTIVE_SWITCH_STATEMENT: [
-      AddMissingSwitchCases.new,
-    ],
-    CompileTimeErrorCode.NON_FINAL_FIELD_IN_ENUM: [
-      MakeFinal.new,
-    ],
-    CompileTimeErrorCode.NON_TYPE_AS_TYPE_ARGUMENT: [
-      CreateClass.new,
-      CreateMixin.new,
-    ],
-    CompileTimeErrorCode.NOT_A_TYPE: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-      CreateMixin.new,
-    ],
-    CompileTimeErrorCode.NOT_INITIALIZED_NON_NULLABLE_INSTANCE_FIELD: [
-      AddLate.new,
-    ],
-    CompileTimeErrorCode.NULLABLE_TYPE_IN_EXTENDS_CLAUSE: [
-      RemoveQuestionMark.new,
-    ],
-    CompileTimeErrorCode.NULLABLE_TYPE_IN_IMPLEMENTS_CLAUSE: [
-      RemoveQuestionMark.new,
-    ],
-    CompileTimeErrorCode.NULLABLE_TYPE_IN_ON_CLAUSE: [
-      RemoveQuestionMark.new,
-    ],
-    CompileTimeErrorCode.NULLABLE_TYPE_IN_WITH_CLAUSE: [
-      RemoveQuestionMark.new,
-    ],
-    CompileTimeErrorCode.OBSOLETE_COLON_FOR_DEFAULT_VALUE: [
-      ReplaceColonWithEquals.new
-    ],
-    CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_FUNCTION: [
-      MakeReturnTypeNullable.new,
-      ReplaceReturnType.new,
-    ],
-    CompileTimeErrorCode.RETURN_OF_INVALID_TYPE_FROM_METHOD: [
-      MakeReturnTypeNullable.new,
-      ReplaceReturnType.new,
-    ],
-    CompileTimeErrorCode
-        .SUPER_FORMAL_PARAMETER_TYPE_IS_NOT_SUBTYPE_OF_ASSOCIATED: [
-      RemoveTypeAnnotation.other,
-    ],
-    CompileTimeErrorCode.SUPER_FORMAL_PARAMETER_WITHOUT_ASSOCIATED_NAMED: [
-      ChangeTo.superFormalParameter,
-    ],
-    CompileTimeErrorCode.SUPER_INVOCATION_NOT_LAST: [
-      MakeSuperInvocationLast.new,
-    ],
-    CompileTimeErrorCode.SWITCH_CASE_COMPLETES_NORMALLY: [
-      AddSwitchCaseBreak.new,
-    ],
-    CompileTimeErrorCode.TYPE_TEST_WITH_UNDEFINED_NAME: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-      CreateMixin.new,
-    ],
-    CompileTimeErrorCode.UNCHECKED_INVOCATION_OF_NULLABLE_VALUE: [
-      AddNullCheck.new,
-    ],
-    CompileTimeErrorCode.UNCHECKED_METHOD_INVOCATION_OF_NULLABLE_VALUE: [
-      AddNullCheck.new,
-      ExtractLocalVariable.new,
-      ReplaceWithNullAware.single,
-    ],
-    CompileTimeErrorCode.UNCHECKED_OPERATOR_INVOCATION_OF_NULLABLE_VALUE: [
-      AddNullCheck.new,
-    ],
-    CompileTimeErrorCode.UNCHECKED_PROPERTY_ACCESS_OF_NULLABLE_VALUE: [
-      AddNullCheck.new,
-      ExtractLocalVariable.new,
-      ReplaceWithNullAware.single,
-    ],
-    CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_AS_CONDITION: [
-      AddNullCheck.new,
-    ],
-    CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_AS_ITERATOR: [
-      AddNullCheck.new,
-    ],
-    CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_IN_SPREAD: [
-      AddNullCheck.new,
-      ConvertToNullAwareSpread.new,
-    ],
-    CompileTimeErrorCode.UNCHECKED_USE_OF_NULLABLE_VALUE_IN_YIELD_EACH: [
-      AddNullCheck.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_ANNOTATION: [
-      ChangeTo.annotation,
-      CreateClass.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_CLASS: [
-      ChangeTo.classOrMixin,
-      CreateClass.new,
-      CreateMixin.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_CLASS_BOOLEAN: [
-      ReplaceBooleanWithBool.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_ENUM_CONSTANT: [
-      AddEnumConstant.new,
-      ChangeTo.getterOrSetter,
-    ],
-    CompileTimeErrorCode.UNDEFINED_ENUM_CONSTRUCTOR_NAMED: [
-      CreateConstructor.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_ENUM_CONSTRUCTOR_UNNAMED: [
-      CreateConstructor.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_EXTENSION_GETTER: [
-      ChangeTo.getterOrSetter,
-      CreateGetter.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_EXTENSION_METHOD: [
-      ChangeTo.method,
-      CreateMethod.method,
-    ],
-    CompileTimeErrorCode.UNDEFINED_EXTENSION_SETTER: [
-      ChangeTo.getterOrSetter,
-      CreateSetter.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_FUNCTION: [
-      ChangeTo.function,
-      CreateClass.new,
-      CreateFunction.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_GETTER: [
-      ChangeTo.getterOrSetter,
-      CreateClass.new,
-      CreateField.new,
-      CreateGetter.new,
-      CreateLocalVariable.new,
-      CreateMethodOrFunction.new,
-      CreateMixin.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_IDENTIFIER: [
-      ChangeTo.getterOrSetter,
-      CreateClass.new,
-      CreateField.new,
-      CreateGetter.new,
-      CreateLocalVariable.new,
-      CreateMethodOrFunction.new,
-      CreateMixin.new,
-      CreateSetter.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_IDENTIFIER_AWAIT: [
-      AddAsync.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_METHOD: [
-      ChangeTo.method,
-      CreateClass.new,
-      CreateFunction.new,
-      CreateMethod.method,
-    ],
-    CompileTimeErrorCode.UNDEFINED_NAMED_PARAMETER: [
-      AddMissingParameterNamed.new,
-      ConvertFlutterChild.new,
-      ConvertFlutterChildren.new,
-    ],
-    CompileTimeErrorCode.UNDEFINED_SETTER: [
-      ChangeTo.getterOrSetter,
-      CreateField.new,
-      CreateSetter.new,
-    ],
-    CompileTimeErrorCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER: [
-      // TODO(brianwilkerson): Consider adding fixes to create a field, getter,
-      //  method or setter. The existing _addFix methods would need to be
-      //  updated so that only the appropriate subset is generated.
-      QualifyReference.new,
-    ],
-    CompileTimeErrorCode
-        .UNQUALIFIED_REFERENCE_TO_STATIC_MEMBER_OF_EXTENDED_TYPE: [
-      // TODO(brianwilkerson): Consider adding fixes to create a field, getter,
-      //  method or setter. The existing producers would need to be updated so
-      //  that only the appropriate subset is generated.
-      QualifyReference.new,
-    ],
-    CompileTimeErrorCode.URI_DOES_NOT_EXIST: [
-      CreateFile.new,
-    ],
-    ParserErrorCode.VARIABLE_PATTERN_KEYWORD_IN_DECLARATION_CONTEXT: [
-      RemoveVar.new,
-    ],
-    CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR: [
-      MoveTypeArgumentsToClass.new,
-      RemoveTypeArguments.new,
-    ],
-    CompileTimeErrorCode.YIELD_OF_INVALID_TYPE: [
-      MakeReturnTypeNullable.new,
-    ],
-    FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_EXTENDS: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_IMPLEMENTS: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    FfiCode.SUBTYPE_OF_STRUCT_CLASS_IN_WITH: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    HintCode.DEPRECATED_COLON_FOR_DEFAULT_VALUE: [
-      ReplaceColonWithEquals.new,
-    ],
-    HintCode.DIVISION_OPTIMIZATION: [
-      UseEffectiveIntegerDivision.new,
-    ],
-    HintCode.UNNECESSARY_IMPORT: [
-      RemoveUnusedImport.new,
-    ],
-    ParserErrorCode.ABSTRACT_CLASS_MEMBER: [
-      RemoveAbstract.bulkFixable,
-    ],
-    ParserErrorCode.DEFAULT_IN_SWITCH_EXPRESSION: [
-      ReplaceWithWildcard.new,
-    ],
-    ParserErrorCode.EXPECTED_TOKEN: [
-      InsertSemicolon.new,
-      ReplaceWithArrow.new,
-    ],
-    ParserErrorCode.EXTENSION_DECLARES_CONSTRUCTOR: [
-      RemoveConstructor.new,
-    ],
-    ParserErrorCode.GETTER_WITH_PARAMETERS: [
-      RemoveParametersInGetterDeclaration.new,
-    ],
-    ParserErrorCode.INVALID_CONSTANT_PATTERN_BINARY: [
-      AddConst.new,
-    ],
-    ParserErrorCode.INVALID_CONSTANT_PATTERN_GENERIC: [
-      AddConst.new,
-    ],
-    ParserErrorCode.INVALID_CONSTANT_PATTERN_NEGATION: [
-      AddConst.new,
-    ],
-    ParserErrorCode.INVALID_INSIDE_UNARY_PATTERN: [
-      SurroundWithParentheses.new,
-    ],
-    ParserErrorCode.LATE_PATTERN_VARIABLE_DECLARATION: [
-      RemoveLate.new,
-    ],
-    ParserErrorCode.MISSING_CONST_FINAL_VAR_OR_TYPE: [
-      AddTypeAnnotation.new,
-    ],
-    ParserErrorCode.MISSING_FUNCTION_BODY: [
-      ConvertIntoBlockBody.missingBody,
-    ],
-    ParserErrorCode.MIXIN_DECLARES_CONSTRUCTOR: [
-      RemoveConstructor.new,
-    ],
-    ParserErrorCode.PATTERN_ASSIGNMENT_DECLARES_VARIABLE: [
-      RemoveVarKeyword.new,
-    ],
-    ParserErrorCode.RECORD_LITERAL_ONE_POSITIONAL_NO_TRAILING_COMMA: [
-      AddTrailingComma.new,
-    ],
-    ParserErrorCode.RECORD_TYPE_ONE_POSITIONAL_NO_TRAILING_COMMA: [
-      AddTrailingComma.new,
-    ],
-    ParserErrorCode.VAR_AND_TYPE: [
-      RemoveTypeAnnotation.fixVarAndType,
-      RemoveVar.new,
-    ],
-    ParserErrorCode.VAR_AS_TYPE_NAME: [
-      ReplaceVarWithDynamic.new,
-    ],
-    ParserErrorCode.VAR_RETURN_TYPE: [
-      RemoveVar.new,
-    ],
-    StaticWarningCode.DEAD_NULL_AWARE_EXPRESSION: [
-      RemoveDeadIfNull.new,
-    ],
-    StaticWarningCode.INVALID_NULL_AWARE_OPERATOR: [
-      ReplaceWithNotNullAware.new,
-    ],
-    StaticWarningCode.INVALID_NULL_AWARE_OPERATOR_AFTER_SHORT_CIRCUIT: [
-      ReplaceWithNotNullAware.new,
-    ],
-    StaticWarningCode.MISSING_ENUM_CONSTANT_IN_SWITCH: [
-      AddMissingEnumCaseClauses.new,
-    ],
-    StaticWarningCode.UNNECESSARY_NON_NULL_ASSERTION: [
-      RemoveNonNullAssertion.new,
-    ],
-    StaticWarningCode.UNNECESSARY_NULL_CHECK_PATTERN: [
-      RemoveQuestionMark.new,
-    ],
-    StaticWarningCode.UNNECESSARY_NULL_ASSERT_PATTERN: [
-      RemoveNonNullAssertion.new,
-    ],
-    WarningCode.BODY_MIGHT_COMPLETE_NORMALLY_NULLABLE: [
-      AddReturnNull.new,
-    ],
-    WarningCode.DEAD_CODE: [
-      RemoveDeadCode.new,
-    ],
-    WarningCode.DEAD_CODE_CATCH_FOLLOWING_CATCH: [
-      // TODO(brianwilkerson): Add a fix to move the unreachable catch clause to
-      //  a place where it can be reached (when possible).
-      RemoveDeadCode.new,
-    ],
-    WarningCode.DEAD_CODE_ON_CATCH_SUBTYPE: [
-      // TODO(brianwilkerson): Add a fix to move the unreachable catch clause to
-      //  a place where it can be reached (when possible).
-      RemoveDeadCode.new,
-    ],
-    WarningCode.DEPRECATED_IMPLEMENTS_FUNCTION: [
-      RemoveNameFromDeclarationClause.new,
-    ],
-    WarningCode.DEPRECATED_NEW_IN_COMMENT_REFERENCE: [
-      RemoveDeprecatedNewInCommentReference.new,
-    ],
-    WarningCode.DUPLICATE_HIDDEN_NAME: [
-      RemoveNameFromCombinator.new,
-    ],
-    WarningCode.DUPLICATE_IMPORT: [
-      RemoveUnusedImport.new,
-    ],
-    WarningCode.DUPLICATE_SHOWN_NAME: [
-      RemoveNameFromCombinator.new,
-    ],
-    WarningCode.INVALID_ANNOTATION_TARGET: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_FACTORY_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_IMMUTABLE_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_INTERNAL_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_LITERAL_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_NON_VIRTUAL_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_REQUIRED_NAMED_PARAM: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_REQUIRED_OPTIONAL_POSITIONAL_PARAM: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_REQUIRED_POSITIONAL_PARAM: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_SEALED_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_VISIBILITY_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.INVALID_VISIBLE_FOR_OVERRIDING_ANNOTATION: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_ONE: [
-      CreateMissingOverrides.new,
-    ],
-    WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_TWO: [
-      CreateMissingOverrides.new,
-    ],
-    WarningCode.MISSING_OVERRIDE_OF_MUST_BE_OVERRIDDEN_THREE_PLUS: [
-      CreateMissingOverrides.new,
-    ],
-    WarningCode.MISSING_REQUIRED_PARAM: [
-      AddMissingRequiredArgument.new,
-    ],
-    WarningCode.MISSING_REQUIRED_PARAM_WITH_DETAILS: [
-      AddMissingRequiredArgument.new,
-    ],
-    WarningCode.MUST_CALL_SUPER: [
-      AddCallSuper.new,
-    ],
-    WarningCode.NULLABLE_TYPE_IN_CATCH_CLAUSE: [
-      RemoveQuestionMark.new,
-    ],
-    WarningCode.OVERRIDE_ON_NON_OVERRIDING_FIELD: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.OVERRIDE_ON_NON_OVERRIDING_GETTER: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.OVERRIDE_ON_NON_OVERRIDING_METHOD: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.OVERRIDE_ON_NON_OVERRIDING_SETTER: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.RECORD_LITERAL_ONE_POSITIONAL_NO_TRAILING_COMMA: [
-      AddTrailingComma.new,
-    ],
-    WarningCode.REDECLARE_ON_NON_REDECLARING_MEMBER: [
-      RemoveAnnotation.new,
-    ],
-    WarningCode.SDK_VERSION_GT_GT_GT_OPERATOR: [
-      UpdateSdkConstraints.version_2_14_0,
-    ],
-    WarningCode.TEXT_DIRECTION_CODE_POINT_IN_COMMENT: [
-      RemoveCharacter.new,
-      ReplaceWithUnicodeEscape.new,
-    ],
-    WarningCode.TEXT_DIRECTION_CODE_POINT_IN_LITERAL: [
-      RemoveCharacter.new,
-      ReplaceWithUnicodeEscape.new,
-    ],
-    WarningCode.TYPE_CHECK_IS_NOT_NULL: [
-      UseNotEqNull.new,
-    ],
-    WarningCode.TYPE_CHECK_IS_NULL: [
-      UseEqEqNull.new,
-    ],
-    WarningCode.UNDEFINED_HIDDEN_NAME: [
-      RemoveNameFromCombinator.new,
-    ],
-    WarningCode.UNDEFINED_SHOWN_NAME: [
-      RemoveNameFromCombinator.new,
-    ],
-    WarningCode.UNNECESSARY_CAST: [
-      RemoveUnnecessaryCast.new,
-    ],
-    WarningCode.UNNECESSARY_FINAL: [
-      RemoveUnnecessaryFinal.new,
-    ],
-    WarningCode.UNNECESSARY_NAN_COMPARISON_FALSE: [
-      RemoveComparison.new,
-      ReplaceWithIsNan.new,
-    ],
-    WarningCode.UNNECESSARY_NAN_COMPARISON_TRUE: [
-      RemoveComparison.new,
-      ReplaceWithIsNan.new,
-    ],
-    WarningCode.UNNECESSARY_NULL_COMPARISON_FALSE: [
-      RemoveComparison.new,
-    ],
-    WarningCode.UNNECESSARY_NULL_COMPARISON_TRUE: [
-      RemoveComparison.new,
-    ],
-    WarningCode.UNNECESSARY_QUESTION_MARK: [
-      RemoveQuestionMark.new,
-    ],
-    WarningCode.UNNECESSARY_SET_LITERAL: [
-      ConvertIntoBlockBody.setLiteral,
-    ],
-    WarningCode.UNNECESSARY_TYPE_CHECK_FALSE: [
-      RemoveComparison.typeCheck,
-    ],
-    WarningCode.UNNECESSARY_TYPE_CHECK_TRUE: [
-      RemoveComparison.typeCheck,
-    ],
-    WarningCode.UNNECESSARY_WILDCARD_PATTERN: [
-      RemoveUnnecessaryWildcardPattern.new,
-    ],
-    WarningCode.UNREACHABLE_SWITCH_CASE: [
-      RemoveDeadCode.new,
-    ],
-    WarningCode.UNUSED_CATCH_CLAUSE: [
-      RemoveUnusedCatchClause.new,
-    ],
-    WarningCode.UNUSED_CATCH_STACK: [
-      RemoveUnusedCatchStack.new,
-    ],
-    WarningCode.UNUSED_ELEMENT: [
-      RemoveUnusedElement.new,
-    ],
-    WarningCode.UNUSED_ELEMENT_PARAMETER: [
-      RemoveUnusedParameter.new,
-    ],
-    WarningCode.UNUSED_FIELD: [
-      RemoveUnusedField.new,
-    ],
-    WarningCode.UNUSED_IMPORT: [
-      RemoveUnusedImport.new,
-    ],
-    WarningCode.UNUSED_LABEL: [
-      RemoveUnusedLabel.new,
-    ],
-    WarningCode.UNUSED_LOCAL_VARIABLE: [
-      RemoveUnusedLocalVariable.new,
-    ],
-    WarningCode.UNUSED_SHOWN_NAME: [
-      RemoveNameFromCombinator.new,
-    ],
-  };
-
-  /// A map from error codes to a list of fix generators that work with only
-  /// parsed results.
-  static final Map<String, List<ProducerGenerator>> parseLintProducerMap = {
-    LintNames.prefer_generic_function_type_aliases: [
-      ConvertToGenericFunctionSyntax.new,
-    ],
-    LintNames.slash_for_doc_comments: [
-      ConvertDocumentationIntoLine.new,
-    ],
-    LintNames.unnecessary_const: [
-      RemoveUnnecessaryConst.new,
-    ],
-    LintNames.unnecessary_new: [
-      RemoveUnnecessaryNew.new,
-    ],
-    LintNames.unnecessary_string_escapes: [
-      RemoveUnnecessaryStringEscape.new,
-    ],
-    LintNames.use_function_type_syntax_for_parameters: [
-      ConvertToGenericFunctionSyntax.new,
-    ],
-  };
-
-  final DartFixContext fixContext;
-
-  final List<Fix> fixes = <Fix>[];
-
-  FixProcessor(this.fixContext)
-      : super(
-          resolvedResult: fixContext.resolveResult,
-          workspace: fixContext.workspace,
-        );
-
-  Future<List<Fix>> compute() async {
-    await _addFromProducers();
-    return fixes;
-  }
-
-  Future<Fix?> computeFix() async {
-    await _addFromProducers();
-    fixes.sort(Fix.compareFixes);
-    return fixes.isNotEmpty ? fixes.first : null;
-  }
-
-  void _addFixFromBuilder(ChangeBuilder builder, CorrectionProducer producer) {
-    var change = builder.sourceChange;
-    if (change.edits.isEmpty) {
-      return;
-    }
-
-    var kind = producer.fixKind;
-    if (kind == null) {
-      return;
-    }
-
-    change.id = kind.id;
-    change.message = formatList(kind.message, producer.fixArguments);
-    fixes.add(Fix(kind, change));
-  }
-
-  Future<void> _addFromProducers() async {
-    var error = fixContext.error;
-    var context = CorrectionProducerContext.createResolved(
-      dartFixContext: fixContext,
-      diagnostic: error,
-      resolvedResult: resolvedResult,
-      selectionOffset: fixContext.error.offset,
-      selectionLength: fixContext.error.length,
-      workspace: workspace,
-    );
-    if (context == null) {
-      return;
-    }
-
-    Future<void> compute(CorrectionProducer producer) async {
-      producer.configure(context);
-      var builder = ChangeBuilder(
-          workspace: context.workspace, eol: context.utils.endOfLine);
-      try {
-        await producer.compute(builder);
-        _addFixFromBuilder(builder, producer);
-      } on ConflictingEditException catch (exception, stackTrace) {
-        // Handle the exception by (a) not adding a fix based on the producer
-        // and (b) logging the exception.
-        fixContext.instrumentationService.logException(exception, stackTrace);
-      }
-    }
-
-    var errorCode = error.errorCode;
-    if (errorCode is LintCode) {
-      var generators = lintProducerMap[errorCode.uniqueLintName] ?? [];
-      for (var generator in generators) {
-        await compute(generator());
-      }
-      var multiGenerators = lintMultiProducerMap[errorCode.uniqueLintName];
-      if (multiGenerators != null) {
-        for (var multiGenerator in multiGenerators) {
-          var multiProducer = multiGenerator();
-          multiProducer.configure(context);
-          for (var producer in await multiProducer.producers) {
-            await compute(producer);
-          }
-        }
-      }
-    } else {
-      var generators = nonLintProducerMap[errorCode] ?? [];
-      for (var generator in generators) {
-        await compute(generator());
-      }
-      var multiGenerators = nonLintMultiProducerMap[errorCode];
-      if (multiGenerators != null) {
-        for (var multiGenerator in multiGenerators) {
-          var multiProducer = multiGenerator();
-          multiProducer.configure(context);
-          for (var producer in await multiProducer.producers) {
-            await compute(producer);
-          }
-        }
-      }
-    }
-
-    if (errorCode is LintCode ||
-        errorCode is HintCode ||
-        errorCode is WarningCode) {
-      var generators = [
-        IgnoreDiagnosticOnLine.new,
-        IgnoreDiagnosticInFile.new,
-      ];
-      for (var generator in generators) {
-        await compute(generator());
-      }
-    }
-  }
-
-  /// Returns whether [errorCode] is an error that can be fixed in bulk.
-  static bool canBulkFix(ErrorCode errorCode) {
-    bool hasBulkFixProducers(List<ProducerGenerator>? producers) {
-      return producers != null &&
-          producers.any((producer) => producer().canBeAppliedInBulk);
-    }
-
-    return _bulkFixableErrorCodes.putIfAbsent(errorCode, () {
-      if (errorCode is LintCode) {
-        final producers = FixProcessor.lintProducerMap[errorCode.name];
-        if (hasBulkFixProducers(producers)) {
-          return true;
-        }
-
-        return FixProcessor.lintMultiProducerMap.containsKey(errorCode.name);
-      }
-
-      final producers = FixProcessor.nonLintProducerMap[errorCode];
-      if (hasBulkFixProducers(producers)) {
-        return true;
-      }
-
-      // We can't do detailed checks on multi-producers because the set of
-      // producers may vary depending on the resolved unit (we must configure
-      // them before we can determine the producers).
-      return FixProcessor.nonLintMultiProducerMap.containsKey(errorCode) ||
-          BulkFixProcessor.nonLintMultiProducerMap.containsKey(errorCode);
-    });
-  }
-
-  /// Associate the given correction producer [generator] with the lint with the
-  /// given [lintName].
-  static void registerFixForLint(String lintName, ProducerGenerator generator) {
-    lintProducerMap.putIfAbsent(lintName, () => []).add(generator);
-  }
-}
-
 /// [_FixState] that is still empty.
 class _EmptyFixState implements _FixState {
   @override
@@ -1939,12 +1765,3 @@
     required this.fixCount,
   });
 }
-
-extension on LintCode {
-  String get uniqueLintName {
-    if (uniqueName.startsWith('LintCode.')) {
-      return uniqueName.substring(9);
-    }
-    return uniqueName;
-  }
-}
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_processor.dart b/pkg/analysis_server/lib/src/services/correction/fix_processor.dart
new file mode 100644
index 0000000..27872da
--- /dev/null
+++ b/pkg/analysis_server/lib/src/services/correction/fix_processor.dart
@@ -0,0 +1,211 @@
+// Copyright (c) 2024, 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 'package:analysis_server/plugin/edit/fix/fix_core.dart';
+import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
+import 'package:analysis_server/src/services/correction/base_processor.dart';
+import 'package:analysis_server/src/services/correction/bulk_fix_processor.dart';
+import 'package:analysis_server/src/services/correction/dart/abstract_producer.dart';
+import 'package:analysis_server/src/services/correction/dart/ignore_diagnostic.dart';
+import 'package:analysis_server/src/services/linter/lint_names.dart';
+import 'package:analyzer/error/error.dart';
+import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/generated/java_core.dart';
+import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
+import 'package:analyzer_plugin/utilities/change_builder/conflicting_edit_exception.dart';
+
+/// A function that can be executed to create a multi-correction producer.
+typedef MultiProducerGenerator = MultiCorrectionProducer Function();
+
+/// A function that can be executed to create a correction producer.
+typedef ProducerGenerator = CorrectionProducer Function();
+
+/// The computer for Dart fixes.
+class FixProcessor extends BaseProcessor {
+  /// Cached results of [canBulkFix].
+  static final Map<ErrorCode, bool> _bulkFixableErrorCodes = {};
+
+  static final Map<String, List<MultiProducerGenerator>> lintMultiProducerMap =
+      {};
+
+  /// A map from the names of lint rules to a list of the generators that are
+  /// used to create correction producers. The generators are then used to build
+  /// fixes for those diagnostics. The generators used for non-lint diagnostics
+  /// are in the [nonLintProducerMap].
+  ///
+  /// The keys of the map are the unique names of the lint codes without the
+  /// `LintCode.` prefix. Generally the unique name is the same as the name of
+  /// the lint, so most of the keys are constants defined by [LintNames]. But
+  /// when a lint produces multiple codes, each with a different unique name,
+  /// the unique name must be used here.
+  static final Map<String, List<ProducerGenerator>> lintProducerMap = {};
+
+  /// A map from error codes to a list of generators used to create multiple
+  /// correction producers used to build fixes for those diagnostics. The
+  /// generators used for lint rules are in the [lintMultiProducerMap].
+  static final Map<ErrorCode, List<MultiProducerGenerator>>
+      nonLintMultiProducerMap = {};
+
+  /// A map from error codes to a list of the generators that are used to create
+  /// correction producers. The generators are then used to build fixes for
+  /// those diagnostics. The generators used for lint rules are in the
+  /// [lintProducerMap].
+  static final Map<ErrorCode, List<ProducerGenerator>> nonLintProducerMap = {};
+
+  /// A map from error codes to a list of fix generators that work with only
+  /// parsed results.
+  static final Map<String, List<ProducerGenerator>> parseLintProducerMap = {};
+
+  final DartFixContext fixContext;
+
+  final List<Fix> fixes = <Fix>[];
+
+  FixProcessor(this.fixContext)
+      : super(
+          resolvedResult: fixContext.resolveResult,
+          workspace: fixContext.workspace,
+        );
+
+  Future<List<Fix>> compute() async {
+    await _addFromProducers();
+    return fixes;
+  }
+
+  Future<Fix?> computeFix() async {
+    await _addFromProducers();
+    fixes.sort(Fix.compareFixes);
+    return fixes.isNotEmpty ? fixes.first : null;
+  }
+
+  void _addFixFromBuilder(ChangeBuilder builder, CorrectionProducer producer) {
+    var change = builder.sourceChange;
+    if (change.edits.isEmpty) {
+      return;
+    }
+
+    var kind = producer.fixKind;
+    if (kind == null) {
+      return;
+    }
+
+    change.id = kind.id;
+    change.message = formatList(kind.message, producer.fixArguments);
+    fixes.add(Fix(kind, change));
+  }
+
+  Future<void> _addFromProducers() async {
+    var error = fixContext.error;
+    var context = CorrectionProducerContext.createResolved(
+      dartFixContext: fixContext,
+      diagnostic: error,
+      resolvedResult: resolvedResult,
+      selectionOffset: fixContext.error.offset,
+      selectionLength: fixContext.error.length,
+      workspace: workspace,
+    );
+    if (context == null) {
+      return;
+    }
+
+    Future<void> compute(CorrectionProducer producer) async {
+      producer.configure(context);
+      var builder = ChangeBuilder(
+          workspace: context.workspace, eol: context.utils.endOfLine);
+      try {
+        await producer.compute(builder);
+        _addFixFromBuilder(builder, producer);
+      } on ConflictingEditException catch (exception, stackTrace) {
+        // Handle the exception by (a) not adding a fix based on the producer
+        // and (b) logging the exception.
+        fixContext.instrumentationService.logException(exception, stackTrace);
+      }
+    }
+
+    var errorCode = error.errorCode;
+    List<ProducerGenerator>? generators;
+    List<MultiProducerGenerator>? multiGenerators;
+    if (errorCode is LintCode) {
+      var uniqueLintName = errorCode.uniqueLintName;
+      generators = lintProducerMap[uniqueLintName];
+      multiGenerators = lintMultiProducerMap[uniqueLintName];
+    } else {
+      generators = nonLintProducerMap[errorCode];
+      multiGenerators = nonLintMultiProducerMap[errorCode];
+    }
+
+    if (generators != null) {
+      for (var generator in generators) {
+        await compute(generator());
+      }
+    }
+    if (multiGenerators != null) {
+      for (var multiGenerator in multiGenerators) {
+        var multiProducer = multiGenerator();
+        multiProducer.configure(context);
+        for (var producer in await multiProducer.producers) {
+          await compute(producer);
+        }
+      }
+    }
+
+    if (errorCode is LintCode ||
+        errorCode is HintCode ||
+        errorCode is WarningCode) {
+      var generators = [
+        IgnoreDiagnosticOnLine.new,
+        IgnoreDiagnosticInFile.new,
+      ];
+      for (var generator in generators) {
+        await compute(generator());
+      }
+    }
+  }
+
+  /// Returns whether [errorCode] is an error that can be fixed in bulk.
+  static bool canBulkFix(ErrorCode errorCode) {
+    bool hasBulkFixProducers(List<ProducerGenerator>? producers) {
+      return producers != null &&
+          producers.any((producer) => producer().canBeAppliedInBulk);
+    }
+
+    return _bulkFixableErrorCodes.putIfAbsent(errorCode, () {
+      if (errorCode is LintCode) {
+        final producers = FixProcessor.lintProducerMap[errorCode.name];
+        if (hasBulkFixProducers(producers)) {
+          return true;
+        }
+
+        return FixProcessor.lintMultiProducerMap.containsKey(errorCode.name);
+      }
+
+      final producers = FixProcessor.nonLintProducerMap[errorCode];
+      if (hasBulkFixProducers(producers)) {
+        return true;
+      }
+
+      // We can't do detailed checks on multi-producers because the set of
+      // producers may vary depending on the resolved unit (we must configure
+      // them before we can determine the producers).
+      return FixProcessor.nonLintMultiProducerMap.containsKey(errorCode) ||
+          BulkFixProcessor.nonLintMultiProducerMap.containsKey(errorCode);
+    });
+  }
+
+  /// Associate the given correction producer [generator] with the lint with the
+  /// given [lintName].
+  static void registerFixForLint(String lintName, ProducerGenerator generator) {
+    lintProducerMap.putIfAbsent(lintName, () => []).add(generator);
+  }
+}
+
+extension LintCodeExtension on LintCode {
+  static const _lintCodePrefixLength = 'LintCode.'.length;
+
+  String get uniqueLintName {
+    if (uniqueName.startsWith('LintCode.')) {
+      return uniqueName.substring(_lintCodePrefixLength);
+    }
+    return uniqueName;
+  }
+}
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index ed2378b..4576ad2 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analysis_server/src/protocol_server.dart';
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
 import 'package:analyzer/dart/analysis/analysis_context.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/dart/analysis/session.dart';
@@ -200,6 +201,7 @@
       registerLintRules();
       _lintRulesAreRegistered = true;
     }
+    registerBuiltInProducers();
 
     setupResourceProvider();
 
diff --git a/pkg/analysis_server/test/edit/bulk_fixes_test.dart b/pkg/analysis_server/test/edit/bulk_fixes_test.dart
index 4634cc1..748785e 100644
--- a/pkg/analysis_server/test/edit/bulk_fixes_test.dart
+++ b/pkg/analysis_server/test/edit/bulk_fixes_test.dart
@@ -4,6 +4,7 @@
 
 import 'package:analysis_server/protocol/protocol.dart';
 import 'package:analysis_server/protocol/protocol_generated.dart';
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
 import 'package:analysis_server/src/services/linter/lint_names.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer_plugin/protocol/protocol_common.dart';
@@ -407,6 +408,7 @@
   Future<void> setUp() async {
     super.setUp();
     registerLintRules();
+    registerBuiltInProducers();
     await setRoots(included: [workspaceRootPath], excluded: []);
   }
 
diff --git a/pkg/analysis_server/test/edit/fixes_test.dart b/pkg/analysis_server/test/edit/fixes_test.dart
index 026e1ae..7a9b503 100644
--- a/pkg/analysis_server/test/edit/fixes_test.dart
+++ b/pkg/analysis_server/test/edit/fixes_test.dart
@@ -5,6 +5,7 @@
 import 'package:analysis_server/protocol/protocol_generated.dart';
 import 'package:analysis_server/src/analysis_server.dart';
 import 'package:analysis_server/src/plugin/plugin_manager.dart';
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/instrumentation/service.dart';
 import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
@@ -28,6 +29,7 @@
   @override
   Future<void> setUp() async {
     super.setUp();
+    registerBuiltInProducers();
     await setRoots(included: [workspaceRootPath], excluded: []);
   }
 
diff --git a/pkg/analysis_server/test/lsp/code_actions_abstract.dart b/pkg/analysis_server/test/lsp/code_actions_abstract.dart
index 4a67f4d..fae81e5 100644
--- a/pkg/analysis_server/test/lsp/code_actions_abstract.dart
+++ b/pkg/analysis_server/test/lsp/code_actions_abstract.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analysis_server/lsp_protocol/protocol.dart';
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
 import 'package:analyzer/src/test_utilities/test_code_format.dart';
 import 'package:collection/collection.dart';
 import 'package:test/test.dart';
@@ -147,6 +148,7 @@
     // before initializing.
     setApplyEditSupport();
     setDocumentChangesSupport();
+    registerBuiltInProducers();
   }
 
   /// Initializes the server with some basic configuration and expects to find
diff --git a/pkg/analysis_server/test/src/cider/cider_service.dart b/pkg/analysis_server/test/src/cider/cider_service.dart
index b1a3cb8..f0f4196 100644
--- a/pkg/analysis_server/test/src/cider/cider_service.dart
+++ b/pkg/analysis_server/test/src/cider/cider_service.dart
@@ -4,6 +4,7 @@
 
 import 'dart:convert';
 
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
 import 'package:analyzer/src/dart/analysis/byte_store.dart';
 import 'package:analyzer/src/dart/analysis/performance_logger.dart';
 import 'package:analyzer/src/dart/micro/resolve_file.dart';
@@ -54,6 +55,7 @@
 
   void setUp() {
     registerLintRules();
+    registerBuiltInProducers();
 
     logger = PerformanceLog(logBuffer);
 
diff --git a/pkg/analysis_server/test/src/g3/fixes_test.dart b/pkg/analysis_server/test/src/g3/fixes_test.dart
index a83839d..400e548 100644
--- a/pkg/analysis_server/test/src/g3/fixes_test.dart
+++ b/pkg/analysis_server/test/src/g3/fixes_test.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analysis_server/src/g3/fixes.dart';
+import 'package:analysis_server/src/services/correction/fix_internal.dart';
 import 'package:analysis_server/src/services/linter/lint_names.dart';
 import 'package:analyzer/file_system/file_system.dart';
 import 'package:analyzer/src/test_utilities/mock_sdk.dart';
@@ -23,6 +24,7 @@
 
   void setUp() {
     registerLintRules();
+    registerBuiltInProducers();
     createMockSdk(
       resourceProvider: resourceProvider,
       root: sdkRoot,
diff --git a/pkg/analysis_server/test/src/services/correction/fix/data_driven/data_driven_test.dart b/pkg/analysis_server/test/src/services/correction/fix/data_driven/data_driven_test.dart
index 7a0087b..239f069 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/data_driven/data_driven_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/data_driven/data_driven_test.dart
@@ -5,7 +5,7 @@
 import 'package:analysis_server/src/services/correction/bulk_fix_processor.dart';
 import 'package:analysis_server/src/services/correction/dart/data_driven.dart';
 import 'package:analysis_server/src/services/correction/fix/data_driven/transform_set_manager.dart';
-import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
diff --git a/pkg/analysis_server/test/src/services/correction/fix/fix_in_file_test.dart b/pkg/analysis_server/test/src/services/correction/fix/fix_in_file_test.dart
index dd02bfb..b38a11b 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/fix_in_file_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/fix_in_file_test.dart
@@ -2,7 +2,7 @@
 // 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 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:analysis_server/src/services/linter/lint_names.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analysis_server/test/src/services/correction/fix/fix_processor_map_test.dart b/pkg/analysis_server/test/src/services/correction/fix/fix_processor_map_test.dart
index 738a27eb..d69f2ca 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/fix_processor_map_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/fix_processor_map_test.dart
@@ -3,7 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analysis_server/src/services/correction/dart/abstract_producer.dart';
-import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:test/test.dart';
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
diff --git a/pkg/analysis_server/tool/bulk_fix/supported_diagnostics.dart b/pkg/analysis_server/tool/bulk_fix/supported_diagnostics.dart
index b2eab4e..a0f4fc8 100644
--- a/pkg/analysis_server/tool/bulk_fix/supported_diagnostics.dart
+++ b/pkg/analysis_server/tool/bulk_fix/supported_diagnostics.dart
@@ -2,7 +2,7 @@
 // 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 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 import 'package:analyzer/error/error.dart';
 
 import 'parse_utils.dart';
diff --git a/pkg/analysis_server/tool/bulk_fix/supported_lints.dart b/pkg/analysis_server/tool/bulk_fix/supported_lints.dart
index 13d920e..f017ac5 100644
--- a/pkg/analysis_server/tool/bulk_fix/supported_lints.dart
+++ b/pkg/analysis_server/tool/bulk_fix/supported_lints.dart
@@ -2,7 +2,7 @@
 // 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 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analysis_server/src/services/correction/fix_processor.dart';
 
 /// Print lints that are bulk-fixable in a format that can be included in
 /// analysis options.
diff --git a/pkg/analysis_server/tool/presubmit/verify_error_fix_status.dart b/pkg/analysis_server/tool/presubmit/verify_error_fix_status.dart
index e2857c8..f603f2e 100644
--- a/pkg/analysis_server/tool/presubmit/verify_error_fix_status.dart
+++ b/pkg/analysis_server/tool/presubmit/verify_error_fix_status.dart
@@ -7,6 +7,7 @@
 import 'package:analysis_server/src/services/correction/fix/analysis_options/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/services/correction/fix_processor.dart';
 import 'package:analyzer/error/error.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
 import 'package:analyzer/src/error/codes.dart';
@@ -43,6 +44,7 @@
   }
   statusInfo!; // This is non-null when `error` is `null`.
   registerLintRules();
+  registerBuiltInProducers();
   var lintRuleCodes = {
     for (var rule in Registry.ruleRegistry.rules) ...rule.lintCodes,
   };
