#1243 Runtime type checks added for nnbd tests
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t001.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t001.dart
index a92e39d..5e3ce46 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t001.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t001.dart
@@ -29,5 +29,7 @@
 
 void main() {
   Expect.isTrue(D().f is Object Function(Object));
-  Expect.isTrue(D().f is Object? Function(Object?));
+  Expect.isFalse(D().f is Object? Function(Object?));
+  checkType(checkIs<Object Function(Object)>, true, D().f);
+  checkType(checkIs<Object? Function(Object?)>, false, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t002.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t002.dart
index 132918d..a8a7970 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t002.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t002.dart
@@ -25,4 +25,5 @@
 
 void main() {
   Expect.isTrue(D().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t010.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t010.dart
index 57e8b93..44ab497 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t010.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t010.dart
@@ -28,4 +28,6 @@
 void main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t011.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t011.dart
index ed11de1..acf59bf 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t011.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t011.dart
@@ -28,4 +28,6 @@
 void main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t012.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t012.dart
index 4419296..8967768 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t012.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t012.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is int? Function(int?));
   Expect.isTrue(D2().f is int? Function(int?));
+  checkType(checkIs<int? Function(int?)>, true, D1().f);
+  checkType(checkIs<int? Function(int?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t015.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t015.dart
index 0cab544..c2fc3e4 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t015.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t015.dart
@@ -26,4 +26,5 @@
 
 main() {
   Expect.isTrue(D().f is int Function(int));
+  checkType(checkIs<int Function(int)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t017.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t017.dart
index 108ab4e..741f723 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t017.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t017.dart
@@ -25,4 +25,5 @@
 
 main() {
   Expect.isTrue(D().f is int? Function(int?));
+  checkType(checkIs<int? Function(int?)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t018.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t018.dart
index 75b1642..3d2871d 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t018.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t018.dart
@@ -27,4 +27,6 @@
 main() {
   Expect.isTrue(D1().f is int? Function(int?));
   Expect.isTrue(D2().f is int? Function(int?));
+  checkType(checkIs<int? Function(int?)>, true, D1().f);
+  checkType(checkIs<int? Function(int?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t022.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t022.dart
index bccab7d..549155f 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t022.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t022.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is Function Function(Function));
   Expect.isTrue(D2().f is Function Function(Function));
+  checkType(checkIs<Function Function(Function)>, true, D1().f);
+  checkType(checkIs<Function Function(Function)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t026.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t026.dart
index d94113b..c76d1d9 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t026.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t026.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t029.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t029.dart
index 4532e20..dacafe3 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t029.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t029.dart
@@ -31,7 +31,11 @@
 main() {
   Expect.isTrue(in_dynamic1().f is Object? Function(Object?));
   Expect.isTrue(in_dynamic2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, in_dynamic1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, in_dynamic2().f);
 
   Expect.isTrue(in_void1().f is Object? Function(Object?));
   Expect.isTrue(in_void2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, in_void1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, in_void2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t030.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t030.dart
index c4bd137..4fc1940 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t030.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t030.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is Object Function(Object));
   Expect.isTrue(D2().f is Object Function(Object));
+  checkType(checkIs<Object Function(Object)>, true, D1().f);
+  checkType(checkIs<Object Function(Object)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t036.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t036.dart
index a9dc62f..1f9f55b 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t036.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t036.dart
@@ -25,4 +25,5 @@
 
 main() {
   Expect.isTrue(D().f is Function? Function(Function?));
+  checkType(checkIs<Function? Function(Function?)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t037.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t037.dart
index c187d79..58ae549 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t037.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t037.dart
@@ -25,4 +25,5 @@
 
 main() {
   Expect.isTrue(D().f is Function Function(Function));
+  checkType(checkIs<Function Function(Function)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t039.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t039.dart
index b3ad5f4..7d5509d 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t039.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t039.dart
@@ -25,4 +25,5 @@
 
 main() {
   Expect.isTrue(D().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t042.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t042.dart
index 680196e..2466840 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t042.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t042.dart
@@ -28,4 +28,6 @@
 void main() {
   Expect.isTrue(D1().f is dynamic Function(dynamic));
   Expect.isTrue(D2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, D1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t043.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t043.dart
index 344a3b0..d35ebb1 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t043.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t043.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t046.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t046.dart
index ef51f8a..890c9bf 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t046.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t046.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is dynamic Function(dynamic));
   Expect.isTrue(D2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, D1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t047.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t047.dart
index ae1f816..f1651f3 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t047.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t047.dart
@@ -27,4 +27,6 @@
 main() {
   Expect.isTrue(D1().f is dynamic Function(dynamic));
   Expect.isTrue(D2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, D1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t048.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t048.dart
index 7fa0efa..b28098e 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t048.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t048.dart
@@ -25,4 +25,5 @@
 
 void main() {
   Expect.isTrue(D().f is void Function(void));
+  checkType(checkIs<void Function(void)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t051.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t051.dart
index 515cef3..c97d12d 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t051.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t051.dart
@@ -26,4 +26,6 @@
 main() {
   Expect.isTrue(D1().f is void Function(void));
   Expect.isTrue(D2().f is void Function(void));
+  checkType(checkIs<void Function(void)>, true, D1().f);
+  checkType(checkIs<void Function(void)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t052.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t052.dart
index d65a8b8..e408878 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t052.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t052.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is void Function(void));
   Expect.isTrue(D2().f is void Function(void));
+  checkType(checkIs<void Function(void)>, true, D1().f);
+  checkType(checkIs<void Function(void)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t055.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t055.dart
index 8250ece..8e895e0 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t055.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t055.dart
@@ -31,7 +31,11 @@
 main() {
   Expect.isTrue(in_FutureOr().f is dynamic Function(dynamic));
   Expect.isTrue(in_FutureOr1().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, in_FutureOr().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, in_FutureOr1().f);
 
   Expect.isTrue(in_FutureOr_FutureOr().f is dynamic Function(dynamic));
   Expect.isTrue(in_FutureOr_FutureOr1().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, in_FutureOr_FutureOr().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, in_FutureOr_FutureOr1().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t057.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t057.dart
index 53f4d1f..ea0c45d 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t057.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t057.dart
@@ -25,4 +25,5 @@
 
 void main() {
   Expect.isTrue(D().f is Null Function(Null));
+  checkType(checkIs<Null Function(Null)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t062.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t062.dart
index 33b95c3..6d06bd0 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t062.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t062.dart
@@ -26,4 +26,5 @@
 
 void main() {
   Expect.isTrue(D().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t064.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t064.dart
index ec8462a..f8d78e8 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t064.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t064.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t067.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t067.dart
index f59d5d9..8ae1a10 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t067.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t067.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is dynamic Function(dynamic));
   Expect.isTrue(D2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, D1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t068.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t068.dart
index da506b4..7b0694e 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t068.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t068.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is FutureOr Function(FutureOr));
   Expect.isTrue(D2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t070.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t070.dart
index 4b1a46d..5e169dd 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t070.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t070.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is FutureOr Function(FutureOr));
   Expect.isTrue(D2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t071.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t071.dart
index 66bbbb9..dd83640 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t071.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t071.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t072.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t072.dart
index 2240e0d..c52f96c 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t072.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t072.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is FutureOr Function(FutureOr));
   Expect.isTrue(D2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t074.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t074.dart
index 03fe56e..7e915d1 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t074.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t074.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is FutureOr Function(FutureOr));
   Expect.isTrue(D2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t075.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t075.dart
index 2527902..6bee702 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t075.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t075.dart
@@ -26,4 +26,5 @@
 
 void main() {
   Expect.isTrue(D().f is FutureOr<int> Function(FutureOr<int>));
+  checkType(checkIs<FutureOr<int> Function(FutureOr<int>)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t076.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t076.dart
index 97e8a7a..1a9f5f7 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t076.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t076.dart
@@ -26,4 +26,5 @@
 
 void main() {
   Expect.isTrue(D().f is FutureOr<int?> Function(FutureOr<int?>));
+  checkType(checkIs<FutureOr<int?> Function(FutureOr<int?>)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t077.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t077.dart
index 7d6f22e..3d2b951 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t077.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t077.dart
@@ -26,4 +26,5 @@
 
 void main() {
   Expect.isTrue(D().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
+  checkType(checkIs<FutureOr<FutureOr> Function(FutureOr<FutureOr>)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t085.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t085.dart
index c261f1d..417d7fd 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t085.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t085.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is FutureOr<int?> Function(FutureOr<int>));
   Expect.isTrue(D2().f is FutureOr<int?> Function(FutureOr<int>));
+  checkType(checkIs<FutureOr<int?> Function(FutureOr<int?>)>, true, D1().f);
+  checkType(checkIs<FutureOr<int?> Function(FutureOr<int?>)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t086.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t086.dart
index dc4720c..6196c90 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t086.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t086.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
   Expect.isTrue(D2().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
+  checkType(checkIs<FutureOr<FutureOr> Function(FutureOr<FutureOr>)>, true, D1().f);
+  checkType(checkIs<FutureOr<FutureOr> Function(FutureOr<FutureOr>)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t089.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t089.dart
index 1713372..f3d168f 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t089.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t089.dart
@@ -28,4 +28,5 @@
 
 void main() {
   Expect.isTrue(D1().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, D1().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t092.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t092.dart
index 20882c5..55dea64 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t092.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t092.dart
@@ -29,4 +29,6 @@
 void main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t097.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t097.dart
index e66ea74..f1060ed 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t097.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t097.dart
@@ -25,4 +25,5 @@
 
 main() {
   Expect.isTrue(D().f is Function? Function(Function?));
+  checkType(checkIs<Function? Function(Function?)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t100.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t100.dart
index 25804d8..f1e5d3c 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t100.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t100.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(D1().f is dynamic Function(dynamic));
   Expect.isTrue(D2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, D1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t102.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t102.dart
index 69cea86..3de9586 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t102.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t102.dart
@@ -29,4 +29,6 @@
 void main() {
   Expect.isTrue(D1().f is FutureOr Function(FutureOr));
   Expect.isTrue(D2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t108.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t108.dart
index ef946bb..08dc3a1 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t108.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t108.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is Object? Function(Object?));
   Expect.isTrue(D2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, D1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t112.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t112.dart
index 221cc29..07ee2e6 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t112.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t112.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(D1().f is FutureOr<int> Function(FutureOr<int>));
   Expect.isTrue(D2().f is FutureOr<int> Function(FutureOr<int>));
+  checkType(checkIs<FutureOr<int> Function(FutureOr<int>)>, true, D1().f);
+  checkType(checkIs<FutureOr<int> Function(FutureOr<int>)>, true, D2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t115.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t115.dart
index c8c0f75..1808721 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t115.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t115.dart
@@ -30,4 +30,7 @@
   Expect.isTrue(in_int().f is int? Function(int?));
   Expect.isTrue(in_Function().f is Function? Function(Function?));
   Expect.isTrue(in_Object().f is Object? Function(Object?));
+  checkType(checkIs<int? Function(int?)>, true, in_int().f);
+  checkType(checkIs<Function? Function(Function?)>, true, in_Function().f);
+  checkType(checkIs<Object? Function(Object?)>, true, in_Object().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t116.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t116.dart
index 4c80f3d..d9bb577 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t116.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t116.dart
@@ -29,4 +29,7 @@
   Expect.isTrue(in_dynamic().f is dynamic Function(dynamic));
   Expect.isTrue(in_void().f is void Function(void));
   Expect.isTrue(in_Null().f is Null Function(Null));
+  checkType(checkIs<dynamic Function(dynamic)>, true, in_dynamic().f);
+  checkType(checkIs<void Function(void)>, true, in_void().f);
+  checkType(checkIs<Null Function(Null)>, true, in_Null().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t117.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t117.dart
index d2affb3..069240c 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t117.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t117.dart
@@ -30,4 +30,7 @@
   Expect.isTrue(C1().f is FutureOr Function(FutureOr));
   Expect.isTrue(C2().f is FutureOr<int?> Function(FutureOr<int?>));
   Expect.isTrue(C3().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C1().f);
+  checkType(checkIs<FutureOr<int?> Function(FutureOr<int?>)>, true, C2().f);
+  checkType(checkIs<FutureOr<FutureOr> Function(FutureOr<FutureOr>)>, true, C3().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t118.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t118.dart
index cfed37f..bb412ae 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t118.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t118.dart
@@ -21,4 +21,5 @@
 
 main() {
   Expect.isTrue(C().f is Never Function(Never));
+  checkType(checkIs<Never Function(Never)>, true, C().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t119.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t119.dart
index 36521b5..77ea40b 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t119.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t119.dart
@@ -26,4 +26,5 @@
 
 void main() {
   Expect.isTrue(D().f is Never Function(Never));
+  checkType(checkIs<Never Function(Never)>, true, D().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t121.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t121.dart
index 313b0a0..a28a1a1 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t121.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t121.dart
@@ -25,4 +25,6 @@
 main() {
   Expect.isTrue(C1().f is dynamic Function(dynamic));
   Expect.isTrue(C2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, C1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t122.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t122.dart
index 8732b6e..a03890f 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t122.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t122.dart
@@ -26,4 +26,6 @@
 main() {
   Expect.isTrue(C1().f is Object? Function(Object?));
   Expect.isTrue(C2().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, C1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t124.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t124.dart
index c38e2bf..bcfb5fc 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t124.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t124.dart
@@ -32,4 +32,8 @@
   Expect.isTrue(C2().f is Object? Function(Object?));
   Expect.isTrue(C3().f is Object? Function(Object?));
   Expect.isTrue(C4().f is Object? Function(Object?));
+  checkType(checkIs<Object? Function(Object?)>, true, C1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, C2().f);
+  checkType(checkIs<Object? Function(Object?)>, true, C3().f);
+  checkType(checkIs<Object? Function(Object?)>, true, C4().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t130.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t130.dart
index 9d4fe8a..24f4204 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t130.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t130.dart
@@ -26,4 +26,6 @@
 main() {
   Expect.isTrue(C1().f is dynamic Function(dynamic));
   Expect.isTrue(C2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, C1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t134.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t134.dart
index 5173cd0..f17fc98 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t134.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t134.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(C1().f is dynamic Function(dynamic));
   Expect.isTrue(C2().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, C1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t139.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t139.dart
index 7477dd6..a8fe6dc 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t139.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t139.dart
@@ -30,7 +30,10 @@
 main() {
   Expect.isTrue(C1().f is dynamic Function(dynamic));
   Expect.isTrue(C2().f is dynamic Function(dynamic));
-
   Expect.isTrue(C3().f is dynamic Function(dynamic));
   Expect.isTrue(C4().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, C1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C2().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C3().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C4().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t147.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t147.dart
index 9454833..9adeb8e 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t147.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t147.dart
@@ -31,7 +31,10 @@
 main() {
   Expect.isTrue(C1().f is FutureOr Function(FutureOr));
   Expect.isTrue(C2().f is FutureOr Function(FutureOr));
-
   Expect.isTrue(C3().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
   Expect.isTrue(C4().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C2().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C3().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C4().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t148.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t148.dart
index d442114..aaff7f7 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t148.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t148.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(C1().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
   Expect.isTrue(C2().f is FutureOr<FutureOr> Function(FutureOr<FutureOr>));
+  checkType(checkIs<FutureOr<FutureOr> Function(FutureOr<FutureOr>)>, true, C1().f);
+  checkType(checkIs<FutureOr<FutureOr> Function(FutureOr<FutureOr>)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t149.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t149.dart
index e5b5cd3..4835bd3 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t149.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t149.dart
@@ -27,4 +27,6 @@
 main() {
   Expect.isTrue(C1().f is FutureOr Function(FutureOr));
   Expect.isTrue(C2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t156.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t156.dart
index 9cf0f2a..a991550 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t156.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t156.dart
@@ -25,4 +25,6 @@
 main() {
   Expect.isTrue(C1().f is Null Function(Null));
   Expect.isTrue(C2().f is Null Function(Null));
+  checkType(checkIs<Null Function(Null)>, true, C1().f);
+  checkType(checkIs<Null Function(Null)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t158.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t158.dart
index 375e849..85f8256 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t158.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t158.dart
@@ -34,4 +34,8 @@
   Expect.isTrue(C2().f is dynamic Function(dynamic));
   Expect.isTrue(C3().f is dynamic Function(dynamic));
   Expect.isTrue(C4().f is dynamic Function(dynamic));
+  checkType(checkIs<dynamic Function(dynamic)>, true, C1().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C2().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C3().f);
+  checkType(checkIs<dynamic Function(dynamic)>, true, C4().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t159.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t159.dart
index dd9453a..b2e1943 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t159.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t159.dart
@@ -34,5 +34,8 @@
   Expect.isTrue(C2().f is Object? Function(Object?));
   Expect.isTrue(C3().f is Object? Function(Object?));
   Expect.isTrue(C4().f is Object? Function(Object?));
-
+  checkType(checkIs<Object? Function(Object?)>, true, C1().f);
+  checkType(checkIs<Object? Function(Object?)>, true, C2().f);
+  checkType(checkIs<Object? Function(Object?)>, true, C3().f);
+  checkType(checkIs<Object? Function(Object?)>, true, C4().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t160.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t160.dart
index 77bf376..1b86c7a 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t160.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t160.dart
@@ -29,4 +29,6 @@
 main() {
   Expect.isTrue(C1().f is FutureOr Function(FutureOr));
   Expect.isTrue(C2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t162.dart b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t162.dart
index 9b55a80..1fe0fcc 100644
--- a/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t162.dart
+++ b/LanguageFeatures/nnbd/weak/overriding/override_checking_A06_t162.dart
@@ -28,4 +28,6 @@
 main() {
   Expect.isTrue(C1().f is FutureOr Function(FutureOr));
   Expect.isTrue(C2().f is FutureOr Function(FutureOr));
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C1().f);
+  checkType(checkIs<FutureOr Function(FutureOr)>, true, C2().f);
 }
diff --git a/LanguageFeatures/nnbd/weak/syntax_A08_t01.dart b/LanguageFeatures/nnbd/weak/syntax_A08_t01.dart
index ddb5022..2cc6702 100644
--- a/LanguageFeatures/nnbd/weak/syntax_A08_t01.dart
+++ b/LanguageFeatures/nnbd/weak/syntax_A08_t01.dart
@@ -13,7 +13,7 @@
 /// The same is true for { int ? - 3 : 3 } if we allow this.
 ///
 /// @description Check that { a as bool ? - 3 : 3 } is parsed as
-/// { (a as bool) ? - 3 : 3 }
+/// { (a as bool) ? - 3 : 3 } and the same is true for { a is int ? - 3 : 3 }.
 /// @author sgrekhov@unipro.ru
 
 // Requirements=nnbd-weak
diff --git a/LanguageFeatures/nnbd/weak/type_reification_A01_t01.dart b/LanguageFeatures/nnbd/weak/type_reification_A01_t01.dart
index c5322aa..08a3c39 100644
--- a/LanguageFeatures/nnbd/weak/type_reification_A01_t01.dart
+++ b/LanguageFeatures/nnbd/weak/type_reification_A01_t01.dart
@@ -18,6 +18,10 @@
   Expect.isTrue(a is A?);
   Expect.isFalse(a is A1);
   Expect.isFalse(a is A1?);
+  checkType(checkIs<A>, true, a);
+  checkType(checkIs<A?>, true, a);
+  checkType(checkIs<A1>, false, a);
+  checkType(checkIs<A1?>, false, a);
 
   var b1 = B();
   Expect.equals(typeOf<B<dynamic>>(), b1.runtimeType);
@@ -25,6 +29,10 @@
   Expect.isTrue(b1 is B?);
   Expect.isTrue(b1 is B<Object?>);
   Expect.isFalse(b1 is B<A>);
+  checkType(checkIs<B>, true, b1);
+  checkType(checkIs<B?>, true, b1);
+  checkType(checkIs<B<Object?>>, true, b1);
+  checkType(checkIs<B<A>>, false, b1);
 
   var b2 = B<A>();
   Expect.equals(typeOf<B<A>>(), b2.runtimeType);
@@ -34,4 +42,10 @@
   Expect.isTrue(b2 is B?);
   Expect.isTrue(b2 is B<A?>);
   Expect.isFalse(b2 is B<A1>);
+  checkType(checkIs<B<A>>, true, b2);
+  checkType(checkIs<B<A>?>, true, b2);
+  checkType(checkIs<B>, true, b2);
+  checkType(checkIs<B?>, true, b2);
+  checkType(checkIs<B<A?>>, true, b2);
+  checkType(checkIs<B<A1>>, false, b2);
 }
diff --git a/LanguageFeatures/nnbd/weak/type_reification_A01_t03.dart b/LanguageFeatures/nnbd/weak/type_reification_A01_t03.dart
index 7fdd027..9416cfb 100644
--- a/LanguageFeatures/nnbd/weak/type_reification_A01_t03.dart
+++ b/LanguageFeatures/nnbd/weak/type_reification_A01_t03.dart
@@ -16,41 +16,71 @@
   Expect.isTrue(test1 is F1);
   Expect.isTrue(test2 is F1);
   Expect.isFalse(test3 is F1);
+  checkType(checkIs<F1>, true, test1);
+  checkType(checkIs<F1>, true, test2);
+  checkType(checkIs<F1>, false, test3);
 
   Expect.isTrue(test1 is F1?);
   Expect.isTrue(test2 is F1?);
   Expect.isFalse(test3 is F1?);
+  checkType(checkIs<F1?>, true, test1);
+  checkType(checkIs<F1?>, true, test2);
+  checkType(checkIs<F1?>, false, test3);
 
   Expect.isFalse(test1 is F2);
   Expect.isFalse(test2 is F2);
   Expect.isFalse(test3 is F2);
+  checkType(checkIs<F2>, false, test1);
+  checkType(checkIs<F2>, false, test2);
+  checkType(checkIs<F2>, false, test3);
 
   Expect.isFalse(test4 is F1);
   Expect.isFalse(test5 is F1);
   Expect.isFalse(test6 is F1);
+  checkType(checkIs<F1>, false, test4);
+  checkType(checkIs<F1>, false, test5);
+  checkType(checkIs<F1>, false, test6);
 
   Expect.isFalse(test4 is F1?);
   Expect.isFalse(test5 is F1?);
   Expect.isFalse(test6 is F1?);
+  checkType(checkIs<F1?>, false, test4);
+  checkType(checkIs<F1?>, false, test5);
+  checkType(checkIs<F1?>, false, test6);
 
   Expect.isFalse(test4 is F2);
   Expect.isFalse(test5 is F2);
   Expect.isTrue(test6 is F2);
+  checkType(checkIs<F2>, false, test4);
+  checkType(checkIs<F2>, false, test5);
+  checkType(checkIs<F2>, true, test6);
 
   Expect.isFalse(test4 is F2?);
   Expect.isFalse(test5 is F2?);
   Expect.isTrue(test6 is F2?);
+  checkType(checkIs<F2?>, false, test4);
+  checkType(checkIs<F2?>, false, test5);
+  checkType(checkIs<F2?>, true, test6);
 
   Expect.isTrue(test4 is F2<int, B, A1>);
   Expect.isTrue(test4 is F2<int?, B?, A1?>);
   Expect.isTrue(test4 is F2<int, B<Object?>, A1>);
   Expect.isTrue(test4 is F2<int, B<Object>, A1>);
+  checkType(checkIs<F2<int, B, A1>>, true, test4);
+  checkType(checkIs<F2<int?, B?, A1?>>, true, test4);
+  checkType(checkIs<F2<int, B<Object?>, A1>>, true, test4);
+  checkType(checkIs<F2<int, B<Object>, A1>>, true, test4);
 
   Expect.isTrue(test3 is F3<A1?>);
+  checkType(checkIs<F3<A1?>>, true, test3);
 
   Expect.isTrue(test7 is F4<int?>);
   Expect.isFalse(test7 is F4<String?>);
+  checkType(checkIs<F4<int?>>, true, test7);
+  checkType(checkIs<F4<String?>>, false, test7);
 
   Expect.isTrue(test7 is F4<int>);
   Expect.isFalse(test7 is F4<String>);
+  checkType(checkIs<F4<int>>, true, test7);
+  checkType(checkIs<F4<String>>, false, test7);
 }
diff --git a/LanguageFeatures/nnbd/weak/type_reification_A01_t05.dart b/LanguageFeatures/nnbd/weak/type_reification_A01_t05.dart
index fb79736..e51addc 100644
--- a/LanguageFeatures/nnbd/weak/type_reification_A01_t05.dart
+++ b/LanguageFeatures/nnbd/weak/type_reification_A01_t05.dart
@@ -21,4 +21,10 @@
   Expect.isTrue(a is A?);
   Expect.isFalse(a is A1);
   Expect.isFalse(a is A1?);
+  checkType(checkIs<AliasA>, true, a);
+  checkType(checkIs<AliasA?>, true, a);
+  checkType(checkIs<A>, true, a);
+  checkType(checkIs<A?>, true, a);
+  checkType(checkIs<A1>, false, a);
+  checkType(checkIs<A1?>, false, a);
 }