Migrator: do not generate edit details twice on rerun

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

Change-Id: I99a23e5922a716bbd0c83e7c0f620686840ccd4c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172300
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/nnbd_migration/lib/src/front_end/non_nullable_fix.dart b/pkg/nnbd_migration/lib/src/front_end/non_nullable_fix.dart
index 7b21c71..136711e 100644
--- a/pkg/nnbd_migration/lib/src/front_end/non_nullable_fix.dart
+++ b/pkg/nnbd_migration/lib/src/front_end/non_nullable_fix.dart
@@ -122,7 +122,7 @@
   /// file, and the analysis_options.yaml file, each only if necessary.
   ///
   /// [neededPackages] is a map whose keys are the names of packages that should
-  /// be dependend upon by the package's pubspec, and whose values are the
+  /// be depended upon by the package's pubspec, and whose values are the
   /// minimum required versions of those packages.
   void processPackage(Folder pkgFolder, Map<String, Version> neededPackages) {
     var pubspecFile = pkgFolder.getChildAssumingFile('pubspec.yaml');
@@ -156,7 +156,6 @@
   Future<MigrationState> rerun() async {
     reset();
     var state = await rerunFunction();
-    await state.refresh(_logger);
     return state;
   }
 
diff --git a/pkg/nnbd_migration/lib/src/preview/preview_site.dart b/pkg/nnbd_migration/lib/src/preview/preview_site.dart
index f433446..4fabe98 100644
--- a/pkg/nnbd_migration/lib/src/preview/preview_site.dart
+++ b/pkg/nnbd_migration/lib/src/preview/preview_site.dart
@@ -364,7 +364,9 @@
 
   Future<void> rerunMigration() async {
     migrationState = await rerunFunction();
-    reset();
+    if (!migrationState.hasErrors) {
+      reset();
+    }
   }
 
   void reset() {