verify that `extract_method` doesn't modify macro-generated files

Change-Id: If3c73a4e6fcbad97ddcb5c8f78121f80fc580035
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/354965
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/test/services/refactoring/legacy/extract_method_test.dart b/pkg/analysis_server/test/services/refactoring/legacy/extract_method_test.dart
index aa6df5d..f19cabc 100644
--- a/pkg/analysis_server/test/services/refactoring/legacy/extract_method_test.dart
+++ b/pkg/analysis_server/test/services/refactoring/legacy/extract_method_test.dart
@@ -1680,6 +1680,29 @@
 ''');
   }
 
+  Future<void> test_singleExpression_occurrences_referencedInMacro() async {
+    addMacros([declareInTypeMacro()]);
+
+    await indexTestUnit('''
+import 'macros.dart';
+    
+void f() {
+  print('!');
+}
+
+@DeclareInType("  void m() { print('!'); }")
+class A { }
+''');
+
+    _createRefactoringForString("print('!');");
+    await assertRefactoringConditionsOK();
+    var refactoringChange = await refactoring.createChange();
+
+    // Verify that `test.macro.dart` is unmodified.
+    expect(refactoringChange.edits.map((e) => e.file),
+        unorderedEquals(['/home/test/lib/test.dart']));
+  }
+
   Future<void> test_singleExpression_parameter_functionTypeAlias() async {
     await indexTestUnit('''
 typedef R Foo<S, R>(S s);