diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_function_declaration.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_function_declaration.dart
index 70a4183..674fb9b 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_function_declaration.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_function_declaration.dart
@@ -4,6 +4,7 @@
 
 import 'package:analysis_server/src/services/correction/fix.dart';
 import 'package:analysis_server_plugin/edit/dart/correction_producer.dart';
+import 'package:analyzer/dart/ast/token.dart';
 import 'package:analyzer/dart/ast/visitor.dart';
 import 'package:analyzer/dart/element/element.dart';
 import 'package:analyzer/dart/element/type.dart';
@@ -42,7 +43,14 @@
     var variables = parent.variables;
 
     var grandParent = parent.parent;
-    if (grandParent is! VariableDeclarationStatement) return;
+    Token grandParentSemicolon;
+    if (grandParent is VariableDeclarationStatement) {
+      grandParentSemicolon = grandParent.semicolon;
+    } else if (grandParent is FieldDeclaration) {
+      grandParentSemicolon = grandParent.semicolon;
+    } else {
+      return;
+    }
 
     var previous = _previous(variables, node);
     var next = _next(variables, node);
@@ -152,7 +160,7 @@
         }
       } else if (initializer is FunctionExpression &&
           initializer.body is BlockFunctionBody) {
-        builder.addDeletion(range.token(grandParent.semicolon));
+        builder.addDeletion(range.token(grandParentSemicolon));
       }
     });
   }
diff --git a/pkg/analysis_server/test/src/services/correction/fix/convert_to_function_declaration_test.dart b/pkg/analysis_server/test/src/services/correction/fix/convert_to_function_declaration_test.dart
index ff8caf2..44aa9b2 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/convert_to_function_declaration_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/convert_to_function_declaration_test.dart
@@ -113,6 +113,27 @@
 ''');
   }
 
+  Future<void> test_class_field() async {
+    await resolveTestCode('''
+class F {
+  final v1 = () => 42;
+
+  void f() {
+    v1();
+  }
+}
+''');
+    await assertHasFix('''
+class F {
+  int v1() => 42;
+
+  void f() {
+    v1();
+  }
+}
+''');
+  }
+
   Future<void> test_declaration_different() async {
     await resolveTestCode('''
 void f() {
