diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart
index 38fa836..4c04dd2 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_null_check.dart
@@ -43,11 +43,18 @@
       toType = target.staticParameterElement.type;
     } else if (parent is IndexExpression) {
       toType = parent.realTarget.staticType;
+    } else if ((parent is PrefixedIdentifier && target == parent.prefix) ||
+        (parent is PropertyAccess && target == parent.target) ||
+        (parent is MethodInvocation && target == parent.target) ||
+        (parent is FunctionExpressionInvocation && target == parent.function)) {
+      // No need to set the `toType` because there isn't any need for a type
+      // check.
     } else {
       return;
     }
-    if (!typeSystem.isAssignableTo(
-        toType, typeSystem.promoteToNonNull(fromType))) {
+    if (toType != null &&
+        !typeSystem.isAssignableTo(
+            toType, typeSystem.promoteToNonNull(fromType))) {
       // The reason that `fromType` can't be assigned to `toType` is more than
       // just because it's nullable, in which case a null check won't fix the
       // problem.
diff --git a/pkg/analysis_server/test/src/services/correction/fix/add_null_check_test.dart b/pkg/analysis_server/test/src/services/correction/fix/add_null_check_test.dart
index 4dd8288..b445c7e 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/add_null_check_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/add_null_check_test.dart
@@ -97,6 +97,21 @@
 ''');
   }
 
+  Future<void> test_functionExpressionInvocation() async {
+    await resolveTestCode('''
+int f(C c) => c.func();
+class C {
+  int Function()? get func => null;
+}
+''');
+    await assertHasFix('''
+int f(C c) => c.func!();
+class C {
+  int Function()? get func => null;
+}
+''');
+  }
+
   Future<void> test_indexExpression() async {
     await resolveTestCode('''
 void f (List<String>? args) {
@@ -134,4 +149,31 @@
 ''');
     await assertNoFix();
   }
+
+  Future<void> test_methodInvocation() async {
+    await resolveTestCode('''
+String f(String? s) => s.substring(0);
+''');
+    await assertHasFix('''
+String f(String? s) => s!.substring(0);
+''');
+  }
+
+  Future<void> test_prefixedIdentifier() async {
+    await resolveTestCode('''
+int f(String? s) => s.length;
+''');
+    await assertHasFix('''
+int f(String? s) => s!.length;
+''');
+  }
+
+  Future<void> test_propertyAccess() async {
+    await resolveTestCode('''
+int f(String? s) => (s).length;
+''');
+    await assertHasFix('''
+int f(String? s) => (s)!.length;
+''');
+  }
 }
diff --git a/tools/VERSION b/tools/VERSION
index 8f009ce..10a1937 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 12
 PATCH 0
-PRERELEASE 186
+PRERELEASE 187
 PRERELEASE_PATCH 0
\ No newline at end of file
