Migration: add tests for some implicit coercion corner cases

Bug: https://github.com/dart-lang/sdk/issues/47848
Change-Id: I5d04be8f379e35b70b86437940dd9b04c26e8174
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222028
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/nnbd_migration/test/api_test.dart b/pkg/nnbd_migration/test/api_test.dart
index 182d33a..a2bbb70 100644
--- a/pkg/nnbd_migration/test/api_test.dart
+++ b/pkg/nnbd_migration/test/api_test.dart
@@ -954,6 +954,25 @@
     });
   }
 
+  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/47848')
+  Future<void> test_call_tearoff_futureOr() async {
+    var content = '''
+import 'dart:async';
+class C {
+  void call() {}
+}
+FutureOr<void Function()> f(C c) => c;
+''';
+    var expected = '''
+import 'dart:async';
+class C {
+  void call() {}
+}
+FutureOr<void Function()> f(C c) => c;
+''';
+    await _checkSingleFileChanges(content, expected);
+  }
+
   Future<void> test_call_tearoff_inherited() async {
     var content = '''
 class B {
@@ -1006,6 +1025,23 @@
     await _checkSingleFileChanges(content, expected);
   }
 
+  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/47848')
+  Future<void> test_call_tearoff_raw_function() async {
+    var content = '''
+class C {
+  void call() {}
+}
+Function f(C c) => c;
+''';
+    var expected = '''
+class C {
+  void call() {}
+}
+Function f(C c) => c;
+''';
+    await _checkSingleFileChanges(content, expected);
+  }
+
   Future<void> test_catch_simple() async {
     var content = '''
 void f() {