fix in file support for UNNECESSARY_NON_NULL_ASSERTIONs

Fixes https://github.com/dart-lang/sdk/issues/45769

Change-Id: I533969b7a7acc6258ad38e9ee45c5441921d7af7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196025
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_non_null_assertion.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_non_null_assertion.dart
index 75a93be..39814eb 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/remove_non_null_assertion.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_non_null_assertion.dart
@@ -15,6 +15,9 @@
   FixKind get fixKind => DartFixKind.REMOVE_NON_NULL_ASSERTION;
 
   @override
+  FixKind get multiFixKind => DartFixKind.REMOVE_NON_NULL_ASSERTION_MULTI;
+
+  @override
   Future<void> compute(ChangeBuilder builder) async {
     final expression = node;
 
diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
index 98dfce5..041bda6 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
@@ -585,6 +585,10 @@
       'dart.fix.remove.nonNullAssertion',
       DartFixKindPriority.DEFAULT,
       "Remove the '!'");
+  static const REMOVE_NON_NULL_ASSERTION_MULTI = FixKind(
+      'dart.fix.remove.nonNullAssertion.multi',
+      DartFixKindPriority.IN_FILE,
+      "Remove '!'s in file");
   static const REMOVE_OPERATOR = FixKind('dart.fix.remove.operator',
       DartFixKindPriority.DEFAULT, 'Remove the operator');
   static const REMOVE_OPERATOR_MULTI = FixKind(
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 2eeadb5..280732a 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -381,8 +381,7 @@
     ],
     StaticWarningCode.UNNECESSARY_NON_NULL_ASSERTION: [
       FixInfo(
-        // todo (pq): consider adding
-        canBeAppliedToFile: false,
+        canBeAppliedToFile: true,
         canBeBulkApplied: true,
         generators: [
           RemoveNonNullAssertion.newInstance,